hugolib: Allow forward slash in shortcode names

Fixes #4886
This commit is contained in:
Bjørn Erik Pedersen 2018-06-28 16:06:16 +02:00
parent 282f6035e7
commit de37455ec7
No known key found for this signature in database
GPG key ID: 330E6E2BD4859D8F
2 changed files with 5 additions and 0 deletions

View file

@ -464,6 +464,8 @@ Loop:
for { for {
switch r := l.next(); { switch r := l.next(); {
case isAlphaNumericOrHyphen(r): case isAlphaNumericOrHyphen(r):
// Allow forward slash inside names to make it possible to create namespaces.
case r == '/':
default: default:
l.backup() l.backup()
word := l.input[l.start:l.pos] word := l.input[l.start:l.pos]

View file

@ -33,6 +33,7 @@ var (
tstSC1 = item{tScName, 0, "sc1"} tstSC1 = item{tScName, 0, "sc1"}
tstSC2 = item{tScName, 0, "sc2"} tstSC2 = item{tScName, 0, "sc2"}
tstSC3 = item{tScName, 0, "sc3"} tstSC3 = item{tScName, 0, "sc3"}
tstSCSlash = item{tScName, 0, "sc/sub"}
tstParam1 = item{tScParam, 0, "param1"} tstParam1 = item{tScParam, 0, "param1"}
tstParam2 = item{tScParam, 0, "param2"} tstParam2 = item{tScParam, 0, "param2"}
tstVal = item{tScParamVal, 0, "Hello World"} tstVal = item{tScParamVal, 0, "Hello World"}
@ -45,6 +46,8 @@ var shortCodeLexerTests = []shortCodeLexerTest{
{"no markup", `{{< sc1 >}}`, []item{tstLeftNoMD, tstSC1, tstRightNoMD, tstEOF}}, {"no markup", `{{< sc1 >}}`, []item{tstLeftNoMD, tstSC1, tstRightNoMD, tstEOF}},
{"with EOL", "{{< sc1 \n >}}", []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}}, {"simple with markup", `{{% sc1 %}}`, []item{tstLeftMD, tstSC1, tstRightMD, tstEOF}},
{"with spaces", `{{< sc1 >}}`, []item{tstLeftNoMD, tstSC1, tstRightNoMD, tstEOF}}, {"with spaces", `{{< sc1 >}}`, []item{tstLeftNoMD, tstSC1, tstRightNoMD, tstEOF}},
{"mismatched rightDelim", `{{< sc1 %}}`, []item{tstLeftNoMD, tstSC1, {"mismatched rightDelim", `{{< sc1 %}}`, []item{tstLeftNoMD, tstSC1,