summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--hugolib/shortcodeparser.go2
-rw-r--r--hugolib/shortcodeparser_test.go3
2 files changed, 5 insertions, 0 deletions
diff --git a/hugolib/shortcodeparser.go b/hugolib/shortcodeparser.go
index c57ff9b3c..32aa8b47a 100644
--- a/hugolib/shortcodeparser.go
+++ b/hugolib/shortcodeparser.go
@@ -464,6 +464,8 @@ Loop:
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]
diff --git a/hugolib/shortcodeparser_test.go b/hugolib/shortcodeparser_test.go
index 45cf69baa..532c8e739 100644
--- a/hugolib/shortcodeparser_test.go
+++ b/hugolib/shortcodeparser_test.go
@@ -33,6 +33,7 @@ var (
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"}
@@ -45,6 +46,8 @@ var shortCodeLexerTests = []shortCodeLexerTest{
{"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}},
{"mismatched rightDelim", `{{< sc1 %}}`, []item{tstLeftNoMD, tstSC1,