ref: de37455ec73cffd039b44e8f6c62d2884b1d6bbd
parent: 282f6035e7c36f8550d91033e3a66718468c6c8b
author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
date: Thu Jun 28 12:06:16 EDT 2018
hugolib: Allow forward slash in shortcode names Fixes #4886
--- a/hugolib/shortcodeparser.go
+++ b/hugolib/shortcodeparser.go
@@ -464,6 +464,8 @@
for { switch r := l.next(); {case isAlphaNumericOrHyphen(r):
+ // Allow forward slash inside names to make it possible to create namespaces.
+ case r == '/':
default:
l.backup()
word := l.input[l.start:l.pos]
--- a/hugolib/shortcodeparser_test.go
+++ b/hugolib/shortcodeparser_test.go
@@ -33,6 +33,7 @@
tstSC1 = item{tScName, 0, "sc1"} tstSC2 = item{tScName, 0, "sc2"} tstSC3 = item{tScName, 0, "sc3"}+ tstSCSlash = item{tScName, 0, "sc/sub"} tstParam1 = item{tScParam, 0, "param1"} tstParam2 = item{tScParam, 0, "param2"} tstVal = item{tScParamVal, 0, "Hello World"}@@ -44,6 +45,8 @@
{"text", `to be or not`, []item{{tText, 0, "to be or not"}, tstEOF}}, {"no markup", `{{< sc1 >}}`, []item{tstLeftNoMD, tstSC1, tstRightNoMD, tstEOF}}, {"with EOL", "{{< sc1 \n >}}", []item{tstLeftNoMD, tstSC1, tstRightNoMD, tstEOF}},+
+ {"forward slash inside name", `{{< sc/sub >}}`, []item{tstLeftNoMD, tstSCSlash, tstRightNoMD, tstEOF}}, {"simple with markup", `{{% sc1 %}}`, []item{tstLeftMD, tstSC1, tstRightMD, tstEOF}}, {"with spaces", `{{< sc1 >}}`, []item{tstLeftNoMD, tstSC1, tstRightNoMD, tstEOF}},--
⑨