diff --git a/site/layouts/shortcodes/gh.html b/site/layouts/shortcodes/gh.html index 5059998ef..09a719694 100644 --- a/site/layouts/shortcodes/gh.html +++ b/site/layouts/shortcodes/gh.html @@ -1,44 +1,25 @@ {{- /* - Usage: `gh type="foo" value="bar" text="foobar"`, where: + Usage: gh "foo", where foo can be: - * type: "issue", "pull", "pr", "pull request", "commit"/"hash", "user" - default: "issue" - * value or val: Required - `type`s value, i.e. 1 - * text: the link's text; default for PRs/Issues #number, @user for users + * "pr 1" -> #1 + * "issue 2" -> #2 + * "@XhmikosR" -> @XhmikosR + * "a3b09530fb31cfe6bd14d49965c19e8f89c1b023" -> a3b0953 + * "a3b0953" -> a3b0953 - Examples: - - * gh type=pr val=1 or gh val=1 -> #1 - * gh type=issue val=2-> #2 - * gh type=user value=XhmikosR -> @XhmikosR - * gh type=commit (or hash) value="a3b09530fb31cfe6bd14d49965c19e8f89c1b023" -> a3b0953 - * gh type=commit (or hash) value="a3b0953" -> a3b0953 - - Quotes are not always needed, but Hugo can choke on some characters like @, in which case wrap the parameter with quotes. + Quotes are not always needed, but Hugo can choke on some characters like @, in which case wrap the parameter with quotes. Also, they are needed for PR and Issue */ -}} -{{- $type := .Get "type" | default "pr" -}} -{{- $is_pr := or (eq $type "pull") (eq $type "pr") (eq $type "pull request") -}} -{{- $text := .Get "text" -}} -{{- $value := or (.Get "value") (.Get "val") -}} -{{- $commit := or (.Get "commit") (.Get "hash") -}} - -{{- if not $text -}} - {{- if eq $type "user" -}} - {{- $text = printf "@%s" $value -}} - {{- $type = "" -}} - {{- else if (or $is_pr (eq $type "issue")) -}} - {{- $text = printf "#%s" $value -}} - {{- if eq $type "issue" -}} - {{- $type = "issues" -}} - {{- else -}} - {{- $type = "pull" -}} - {{- end -}} - {{- else if (and (or $commit (eq (len $value) 7) (eq (len $value) 40))) -}} - {{- $text = printf "%s" (substr $value 0 7) -}} - {{- $type = "commit" -}} +{{ range .Params -}} + {{- if hasPrefix . "@" -}} + {{ . }} + {{- else if hasPrefix (. | lower) "pr" -}} + #{{ trim (substr . 2) " " }} + {{- else if hasPrefix (. | lower) "issue" -}} + #{{ trim (substr . (len "issue")) " " }} + {{- else if or (eq (len .) 7) (eq (len .) 40) -}} + {{ trim (substr . 0 7) " " }} {{- else -}} - {{- errorf `Wrong parameter passed in %q shortcode: %s` $.Name $.Position -}} + {{ errorf `Wrong parameter passed in %q shortcode: %s` $.Name $.Position }} {{- end -}} {{- end -}} - -{{ $text }} \ No newline at end of file