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