From 7a65b981475bc743044df790207962a7ccc85337 Mon Sep 17 00:00:00 2001 From: Nick Evans Date: Mon, 1 Apr 2019 15:24:21 -0500 Subject: [PATCH 1/4] Snippet path should not be split on space --- lib/markdown/snippet.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/markdown/snippet.js b/lib/markdown/snippet.js index b21c0df93a..4e8ff9d552 100644 --- a/lib/markdown/snippet.js +++ b/lib/markdown/snippet.js @@ -24,7 +24,7 @@ module.exports = function snippet (md, options = {}) { const start = pos + 3 const end = state.skipSpacesBack(max, pos) const rawPath = state.src.slice(start, end).trim().replace(/^@/, root) - const filename = rawPath.split(/[{\s]/).shift() + const filename = rawPath.split(/{/).shift() const content = fs.existsSync(filename) ? fs.readFileSync(filename).toString() : 'Not found: ' + filename const meta = rawPath.replace(filename, '') From 610c733f8c230d977c18664631e075cd290f1253 Mon Sep 17 00:00:00 2001 From: Nick Evans Date: Mon, 1 Apr 2019 15:24:50 -0500 Subject: [PATCH 2/4] Add tests for snippets not splitting paht on space --- test/markdown/__snapshots__/snippet.spec.js.snap | 7 +++++++ test/markdown/fragments/code-snippet-with-space-in-path.md | 1 + test/markdown/fragments/snippet with spaces.js | 3 +++ test/markdown/snippet.spec.js | 6 ++++++ 4 files changed, 17 insertions(+) create mode 100644 test/markdown/fragments/code-snippet-with-space-in-path.md create mode 100644 test/markdown/fragments/snippet with spaces.js diff --git a/test/markdown/__snapshots__/snippet.spec.js.snap b/test/markdown/__snapshots__/snippet.spec.js.snap index 3c97bcddcc..8be19d9f3f 100644 --- a/test/markdown/__snapshots__/snippet.spec.js.snap +++ b/test/markdown/__snapshots__/snippet.spec.js.snap @@ -24,3 +24,10 @@ exports[`snippet import snippet with highlight single line 1`] = `
export default function () { // .. } `; + +exports[`snippet import snipets when the file has a space in the file path 1`] = ` +
export default function () {
+  // ..
+}
+
+`; diff --git a/test/markdown/fragments/code-snippet-with-space-in-path.md b/test/markdown/fragments/code-snippet-with-space-in-path.md new file mode 100644 index 0000000000..9b176f650e --- /dev/null +++ b/test/markdown/fragments/code-snippet-with-space-in-path.md @@ -0,0 +1 @@ +<<< @/test/markdown/fragments/snippet with spaces.js diff --git a/test/markdown/fragments/snippet with spaces.js b/test/markdown/fragments/snippet with spaces.js new file mode 100644 index 0000000000..575039d1ec --- /dev/null +++ b/test/markdown/fragments/snippet with spaces.js @@ -0,0 +1,3 @@ +export default function () { + // .. +} diff --git a/test/markdown/snippet.spec.js b/test/markdown/snippet.spec.js index 0131132916..e99ed956ad 100644 --- a/test/markdown/snippet.spec.js +++ b/test/markdown/snippet.spec.js @@ -23,4 +23,10 @@ describe('snippet', () => { const output = mdH.render(input) expect(output).toMatchSnapshot() }) + + test('import snipets when the file has a space in the file path', async () => { + const input = await getFragment('code-snippet-with-space-in-path') + const output = mdH.render(input) + expect(output).toMatchSnapshot() + }) }) From facf3d490c4f22032cac7c96f1a539bfc6a08928 Mon Sep 17 00:00:00 2001 From: Nick Evans Date: Wed, 3 Apr 2019 07:58:26 -0500 Subject: [PATCH 3/4] Trim snippet path --- lib/markdown/snippet.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/markdown/snippet.js b/lib/markdown/snippet.js index 4e8ff9d552..b8d93fc753 100644 --- a/lib/markdown/snippet.js +++ b/lib/markdown/snippet.js @@ -24,7 +24,7 @@ module.exports = function snippet (md, options = {}) { const start = pos + 3 const end = state.skipSpacesBack(max, pos) const rawPath = state.src.slice(start, end).trim().replace(/^@/, root) - const filename = rawPath.split(/{/).shift() + const filename = rawPath.split(/{/).shift().trim() const content = fs.existsSync(filename) ? fs.readFileSync(filename).toString() : 'Not found: ' + filename const meta = rawPath.replace(filename, '') From 1b2472c7b4a59a9253c8f4bcee4e3c27d1d6df7d Mon Sep 17 00:00:00 2001 From: Nick Evans Date: Wed, 3 Apr 2019 07:58:44 -0500 Subject: [PATCH 4/4] Test for snippets w space between path & highlight --- test/markdown/__snapshots__/snippet.spec.js.snap | 16 +++++++++------- .../fragments/code-snippet-with-space-in-path.md | 2 +- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/test/markdown/__snapshots__/snippet.spec.js.snap b/test/markdown/__snapshots__/snippet.spec.js.snap index 8be19d9f3f..f2f3ae5d89 100644 --- a/test/markdown/__snapshots__/snippet.spec.js.snap +++ b/test/markdown/__snapshots__/snippet.spec.js.snap @@ -1,5 +1,14 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`snippet import snipets when the file has a space in the file path 1`] = ` +
+
 
+
+
+
+
export default function () { // .. } +`; + exports[`snippet import snippet 1`] = `
export default function () {
   // ..
@@ -24,10 +33,3 @@ exports[`snippet import snippet with highlight single line 1`] = `
   
export default function () { // .. } `; - -exports[`snippet import snipets when the file has a space in the file path 1`] = ` -
export default function () {
-  // ..
-}
-
-`; diff --git a/test/markdown/fragments/code-snippet-with-space-in-path.md b/test/markdown/fragments/code-snippet-with-space-in-path.md index 9b176f650e..57351aadbf 100644 --- a/test/markdown/fragments/code-snippet-with-space-in-path.md +++ b/test/markdown/fragments/code-snippet-with-space-in-path.md @@ -1 +1 @@ -<<< @/test/markdown/fragments/snippet with spaces.js +<<< @/test/markdown/fragments/snippet with spaces.js {1}