Skip to content

Commit 53c901e

Browse files
committed
fix: escape custom delimiters when ignoring expressions
1 parent d23bf91 commit 53c901e

File tree

4 files changed

+8
-8
lines changed

4 files changed

+8
-8
lines changed

lib/escape.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
*/
1212
function escapeRegexpString (input) {
1313
// match Operators
14-
const match = /[|\\{}()[\]^$+*?.]/
14+
const match = /[|\\{}()[\]^$+*?.]/g
1515

1616
return input.replace(match, '\\$&')
1717
}

lib/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,8 +148,8 @@ module.exports = function postHTMLExpressions (options) {
148148
delimitersSettings[1] = delimiters[0]
149149
}
150150

151-
delimitersReplace = new RegExp(`@${delimitersSettings[1].text[0]}`, 'g')
152-
unescapeDelimitersReplace = new RegExp(`@${delimitersSettings[0].text[0]}`, 'g')
151+
delimitersReplace = new RegExp(`@${escapeRegexpString(delimitersSettings[1].text[0])}`, 'g')
152+
unescapeDelimitersReplace = new RegExp(`@${escapeRegexpString(delimitersSettings[0].text[0])}`, 'g')
153153

154154
// kick off the parsing
155155
return function (tree) {
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
x {% test %} x {% 1 + 1 %} x
2-
<p class="x {% test %} x">x {% test %} x</p>
3-
{{% 'x&x' %}}
1+
x %[ test ]% x %[ 1 + 1 ]% x
2+
<p class="x %[ test ]% x">x %[ test ]% x</p>
3+
%[[ 'x&x' ]]%

test/test-core.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ test('Unescaped', (t) => {
5454

5555
test('Delimiters', (t) => {
5656
return process(t, 'custom_delimiters', {
57-
delimiters: ['{%', '%}'],
58-
unescapeDelimiters: ['{{%', '%}}'],
57+
delimiters: ['%[', ']%'],
58+
unescapeDelimiters: ['%[[', ']]%'],
5959
locals: { test: 'wow' }
6060
})
6161
})

0 commit comments

Comments
 (0)