From 4a9f1294f7cb0721b643b5168c89c3f31572f659 Mon Sep 17 00:00:00 2001 From: Gabriel Arazas Date: Sun, 9 Apr 2023 13:41:11 +0800 Subject: [PATCH] Update GitHub link default captions --- .../lib/asciidoctor/github-link-inline-macro/README.adoc | 9 ++++++--- .../asciidoctor/github-link-inline-macro/extension.rb | 2 ++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/gems/lib/asciidoctor/github-link-inline-macro/README.adoc b/gems/lib/asciidoctor/github-link-inline-macro/README.adoc index d1c6cb5..88a1883 100644 --- a/gems/lib/asciidoctor/github-link-inline-macro/README.adoc +++ b/gems/lib/asciidoctor/github-link-inline-macro/README.adoc @@ -20,22 +20,25 @@ If caption is missing, the link text will be the namespace (i.e., `$OWNER/$REPO` There are optional attributes for this macro. - `rev` is the commit/branch/tag of the repo to be linked. +When given no caption, it will update the default caption with `$OWNER/$REPO@$REV`. - `path` is the filepath to be linked within the repo. - `issue` accepts the issue number to be linked in the GitHub repo. Take note `issue` is exclusive to other attributes and has more precedence. For example, if `issue` and `rev` are both present, the link for issue will be the result. ++ +When given no caption, it will update the default caption with `$OWNER/$REPO#$ISSUE`. == Example usage -- `github:foo-dogsquared/website` will link to link:https://github.com/foo-dogsquared/website[my website repository]. +- `github:foo-dogsquared/website[]` will link to link:https://github.com/foo-dogsquared/website[my website repository] with the link text `foo-dogsquared/website`. -- `github:NixOS/nixpkgs[nixpkgs nixos-unstable branch, rev=nixos-unstable]` should link to the link:https://github.com/NixOS/nixpkgs/tree/nixos-unstable[NixOS unstable branch of nixpkgs] with a custom link text. +- `github:NixOS/nixpkgs[nixpkgs nixos-unstable branch, rev=nixos-unstable]` should link to the link:https://github.com/NixOS/nixpkgs/tree/nixos-unstable[NixOS unstable branch of nixpkgs] with a caption of `nixpkgs nixos-unstable branch`. - `github:errata-ai/vale[Vale v2.3.0 README, path=README.md, rev=v2.3.0]` should link to the link:https://github.com/errata-ai/vale/blob/v2.3.0/README.md[README of Vale v2.3.0]. -- `github:neovim/neovim[Neovim cannot open large files properly, issue=614]` should link to https://github.com/neovim/neovim/issues/614[an issue of Neovim]. +- `github:neovim/neovim[Neovim cannot open large files properly, issue=614]` should link to https://github.com/neovim/neovim/issues/614[an issue of Neovim] with `Neovim cannot open large files properly` as the link text. - `github:neovim/neovim[Neovim cannot open large files properly, issue=614, rev=master]` should still link to https://github.com/neovim/neovim/issues/614[an issue of Neovim] since `issue` has more precedence over `rev`. diff --git a/gems/lib/asciidoctor/github-link-inline-macro/extension.rb b/gems/lib/asciidoctor/github-link-inline-macro/extension.rb index 0194f0b..16c2014 100644 --- a/gems/lib/asciidoctor/github-link-inline-macro/extension.rb +++ b/gems/lib/asciidoctor/github-link-inline-macro/extension.rb @@ -16,9 +16,11 @@ class GitHubLinkInlineMacro < Asciidoctor::Extensions::InlineMacroProcessor if attrs.key? 'issue' uri.path += %(/issues/#{attrs['issue']}) + text << "##{attrs['issue']}" if text == target else uri.path += %(/tree/#{attrs['rev']}) if attrs.key? 'rev' uri.path += %(/#{attrs['path']}) if attrs.key? 'path' + text << "@#{attrs['rev']}" if text == target end target = uri.to_s