git: 1d899c1c6f - main - PackagesMacro: Extend the syntax to category/name@flavor[pkgname]
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 19 Mar 2023 16:12:30 UTC
The branch main has been updated by lwhsu: URL: https://cgit.FreeBSD.org/doc/commit/?id=1d899c1c6fc6b000411cc45fc2823caefc5af7e2 commit 1d899c1c6fc6b000411cc45fc2823caefc5af7e2 Author: Li-Wen Hsu <lwhsu@FreeBSD.org> AuthorDate: 2023-03-19 16:09:25 +0000 Commit: Li-Wen Hsu <lwhsu@FreeBSD.org> CommitDate: 2023-03-19 16:09:25 +0000 PackagesMacro: Extend the syntax to category/name@flavor[pkgname] The package macro creates a link to the web interface of the port's origin directory in the ports repository. Extend its usage to cover the case when we want to refer to a speicifed flavor of a port. For example, if we want to refer the aarch64-gcc12 pacakge, in the past we can only specify its origin port, like `pacakge:devel/freebsd-gcc12`, and unable to add the `@aarch64` flavor suffix because it creates a broken link. This change makes it strip the suffix after `@` and accept a parameter of package name as link text. If not provided, use the origin as the original behavior. Thus we can have this kind of notation: package:devel/freebsd-gcc12@aarch64[aarch64-gcc12] which creates linkt to: https://cgit.freebsd.org/ports/tree/devel/freebsd-gcc12/ with link text: aarch64-gcc12 Reviewed by: carlavilla, dbaio Differential Revision: https://reviews.freebsd.org/D39067 --- shared/lib/PackagesMacro/extension.rb | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/shared/lib/PackagesMacro/extension.rb b/shared/lib/PackagesMacro/extension.rb index 20969ca3c0..5476995c49 100644 --- a/shared/lib/PackagesMacro/extension.rb +++ b/shared/lib/PackagesMacro/extension.rb @@ -6,14 +6,23 @@ class PackagesMacro < Asciidoctor::Extensions::InlineMacroProcessor use_dsl named :package + name_positional_attributes 'pkgname' def process parent, target, attrs - packagename = target + pkgorigin = target - target = %(https://cgit.freebsd.org/ports/tree/#{target}/pkg-descr) - parent.document.register :links, target + if pkgorigin.include?("@") + pkgorigin = pkgorigin[0..pkgorigin.index("@")-1] + end - %(<a class="package" href="#{target}">#{packagename}</a>) + pkgname = if (pkgname = attrs['pkgname']) + "#{pkgname}" + else + "#{target}" + end + + url = %(https://cgit.freebsd.org/ports/tree/#{pkgorigin}/) + + %(<a class="package" href="#{url}">#{pkgname}</a>) end end -