From 1cde865a117dbe5fa5aca14b3c6c26a5a7b31a1c Mon Sep 17 00:00:00 2001 From: Ika Date: Sun, 12 Nov 2017 00:08:24 +0800 Subject: [PATCH] fix(markdown): no extra whitespace between non-cjk and cjk-punctuation (#3244) * fix(markdown): no extra whitespace between non-cjk and cjk-punctuation * fix: no node v4 unsupported feature --- src/util.js | 5 ++++- tests/markdown_paragraph/__snapshots__/jsfmt.spec.js.snap | 8 ++++++++ tests/markdown_paragraph/cjk.md | 2 ++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/util.js b/src/util.js index 04a4461d..e3558cb6 100644 --- a/src/util.js +++ b/src/util.js @@ -6,7 +6,10 @@ const escapeStringRegexp = require("escape-string-regexp"); const getCjkRegex = require("cjk-regex"); const cjkRegex = getCjkRegex(); -const cjkPunctuationRegex = getCjkRegex.punctuations(); + +// the `g` flag is dangerous in RegExp#test() +// https://stackoverflow.com/a/21373261 +const cjkPunctuationRegex = new RegExp(getCjkRegex.punctuations().source, ""); function isExportDeclaration(node) { if (node) { diff --git a/tests/markdown_paragraph/__snapshots__/jsfmt.spec.js.snap b/tests/markdown_paragraph/__snapshots__/jsfmt.spec.js.snap index 0fa02c32..7de9c9d1 100644 --- a/tests/markdown_paragraph/__snapshots__/jsfmt.spec.js.snap +++ b/tests/markdown_paragraph/__snapshots__/jsfmt.spec.js.snap @@ -6,6 +6,8 @@ exports[`cjk.md 1`] = ` 這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph! 全  形 空白全  形 空白全  形 空白全  形 空白全  形 空白全  形 空白全  形 空白全  形 空白 + +扩展运算符(spread)是三个点(\`...\`)。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 這是一段很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長 很長的段落 @@ -24,6 +26,8 @@ English 混合著中文的一段 Paragraph! 全  形 空白全  形 空白全  形 空白全  形 空白全  形 空白 全  形 空白全  形 空白全  形 空白 +扩展运算符(spread)是三个点(\`...\`)。 + `; exports[`cjk.md 2`] = ` @@ -32,6 +36,8 @@ exports[`cjk.md 2`] = ` 這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph! 全  形 空白全  形 空白全  形 空白全  形 空白全  形 空白全  形 空白全  形 空白全  形 空白 + +扩展运算符(spread)是三个点(\`...\`)。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 這是一段很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長很長的段落 @@ -39,6 +45,8 @@ exports[`cjk.md 2`] = ` 全  形 空白全  形 空白全  形 空白全  形 空白全  形 空白全  形 空白全  形 空白全  形 空白 +扩展运算符(spread)是三个点(\`...\`)。 + `; exports[`inline-nodes.md 1`] = ` diff --git a/tests/markdown_paragraph/cjk.md b/tests/markdown_paragraph/cjk.md index 4205f4b0..290d0f29 100644 --- a/tests/markdown_paragraph/cjk.md +++ b/tests/markdown_paragraph/cjk.md @@ -3,3 +3,5 @@ 這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph!這是一個English混合著中文的一段Paragraph! 全  形 空白全  形 空白全  形 空白全  形 空白全  形 空白全  形 空白全  形 空白全  形 空白 + +扩展运算符(spread)是三个点(`...`)。