mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
parser: Final (!) fix for issue with escaped JSON front matter
Fixes #3682
This commit is contained in:
parent
84db6c74a0
commit
7f82b41a24
2 changed files with 6 additions and 1 deletions
|
@ -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 {
|
||||
|
|
Loading…
Reference in a new issue