mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-16 20:53:59 +02:00
parser: Final (!) fix for issue with escaped JSON front matter
Fixes #3682
This commit is contained in:
@@ -337,7 +337,6 @@ func extractFrontMatterDelims(r *bufio.Reader, left, right []byte) (fm []byte, e
|
||||
if escapeState != 1 {
|
||||
inQuote = !inQuote
|
||||
}
|
||||
escapeState = 0
|
||||
case '\\':
|
||||
escapeState++
|
||||
case left[len(left)-1]:
|
||||
@@ -403,6 +402,10 @@ func extractFrontMatterDelims(r *bufio.Reader, left, right []byte) (fm []byte, e
|
||||
return buf.Bytes(), nil
|
||||
}
|
||||
|
||||
if c != '\\' {
|
||||
escapeState = 0
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -305,6 +305,8 @@ func TestExtractFrontMatterDelim(t *testing.T) {
|
||||
{`{ "title": "\"Foo\"" }`, `{ "title": "\"Foo\"" }`, noErrExpected},
|
||||
{`{ "title": "\"Foo\"\"" }`, `{ "title": "\"Foo\"\"" }`, noErrExpected},
|
||||
{`{ "url": "http:\/\/example.com\/play\/url?id=1" }`, `{ "url": "http:\/\/example.com\/play\/url?id=1" }`, noErrExpected},
|
||||
{`{ "test": "\"New\r\nString\"" }`, `{ "test": "\"New\r\nString\"" }`, noErrExpected},
|
||||
{`{ "test": "RTS\/RPG" }`, `{ "test": "RTS\/RPG" }`, noErrExpected},
|
||||
}
|
||||
|
||||
for i, test := range tests {
|
||||
|
Reference in New Issue
Block a user