From 8a40c0032cf1a7a13e5e184007e2c2ae73a22e9d Mon Sep 17 00:00:00 2001 From: Xavi Ivars Date: Mon, 8 Jul 2019 17:07:57 +0200 Subject: [PATCH 1/2] Fix remark-transformer when using assetPrefix --- .../__snapshots__/extend-node.js.snap | 7 +++++ .../src/__tests__/extend-node.js | 30 ++++++++++++++++++- .../src/extend-node-type.js | 11 +++---- 3 files changed, 42 insertions(+), 6 deletions(-) diff --git a/packages/gatsby-transformer-remark/src/__tests__/__snapshots__/extend-node.js.snap b/packages/gatsby-transformer-remark/src/__tests__/__snapshots__/extend-node.js.snap index e5ad6d5194d97..9b78409d98cad 100644 --- a/packages/gatsby-transformer-remark/src/__tests__/__snapshots__/extend-node.js.snap +++ b/packages/gatsby-transformer-remark/src/__tests__/__snapshots__/extend-node.js.snap @@ -473,6 +473,13 @@ Object { } `; +exports[`Links are correctly prefixed when assetPrefix is used correctly prefixes links 1`] = ` +Object { + "html": "

This is a link.

+

This is a reference

", +} +`; + exports[`Table of contents is generated correctly from schema correctly generates table of contents 1`] = ` Object { "frontmatter": Object { diff --git a/packages/gatsby-transformer-remark/src/__tests__/extend-node.js b/packages/gatsby-transformer-remark/src/__tests__/extend-node.js index 97f9aced07103..f83dfc4f2630b 100644 --- a/packages/gatsby-transformer-remark/src/__tests__/extend-node.js +++ b/packages/gatsby-transformer-remark/src/__tests__/extend-node.js @@ -921,6 +921,34 @@ final text`, }) describe(`Links are correctly prefixed`, () => { + const assetPrefix = `` + const basePath = `/prefix` + const pathPrefix = assetPrefix + basePath + + bootstrapTest( + `correctly prefixes links`, + ` +This is [a link](/path/to/page1). + +This is [a reference] + +[a reference]: /path/to/page2 +`, + `html`, + node => { + expect(node).toMatchSnapshot() + expect(node.html).toMatch(``) + expect(node.html).toMatch(``) + }, + { additionalParameters: { pathPrefix: pathPrefix, basePath: basePath } } + ) +}) + +describe(`Links are correctly prefixed when assetPrefix is used`, () => { + const assetPrefix = `https://example.com/assets` + const basePath = `/prefix` + const pathPrefix = assetPrefix + basePath + bootstrapTest( `correctly prefixes links`, ` @@ -936,7 +964,7 @@ This is [a reference] expect(node.html).toMatch(``) expect(node.html).toMatch(``) }, - { additionalParameters: { pathPrefix: `/prefix` } } + { additionalParameters: { pathPrefix: pathPrefix, basePath: basePath } } ) }) diff --git a/packages/gatsby-transformer-remark/src/extend-node-type.js b/packages/gatsby-transformer-remark/src/extend-node-type.js index b77f1bd99c7bd..a69fa20d28e0b 100644 --- a/packages/gatsby-transformer-remark/src/extend-node-type.js +++ b/packages/gatsby-transformer-remark/src/extend-node-type.js @@ -94,6 +94,7 @@ const SpaceMarkdownNodeTypesSet = new Set([ module.exports = ( { type, + basePath, pathPrefix, getNode, getNodesByType, @@ -108,7 +109,7 @@ module.exports = ( return {} } pluginsCacheStr = pluginOptions.plugins.map(p => p.name).join(``) - pathPrefixCacheStr = pathPrefix || `` + pathPrefixCacheStr = basePath || `` const getCache = safeGetCache({ cache, getCache: possibleGetCache }) @@ -203,7 +204,7 @@ module.exports = ( }) const markdownAST = remark.parse(markdownNode.internal.content) - if (pathPrefix) { + if (basePath) { // Ensure relative links include `pathPrefix` visit(markdownAST, [`link`, `definition`], node => { if ( @@ -211,7 +212,7 @@ module.exports = ( node.url.startsWith(`/`) && !node.url.startsWith(`//`) ) { - node.url = withPathPrefix(node.url, pathPrefix) + node.url = withPathPrefix(node.url, basePath) } }) } @@ -259,7 +260,7 @@ module.exports = ( markdownNode, getNode, files: fileNodes, - pathPrefix, + basePath, reporter, cache: getCache(plugin.name), getCache, @@ -322,7 +323,7 @@ module.exports = ( return null } node.url = [ - pathPrefix, + basePath, _.get(markdownNode, appliedTocOptions.pathToSlugField), node.url, ] From f5ffd60c42f20652642f4f3bc6342c6d89171d28 Mon Sep 17 00:00:00 2001 From: Xavi Ivars Date: Wed, 10 Jul 2019 12:44:43 +0200 Subject: [PATCH 2/2] Add tests for relative links --- .../__snapshots__/extend-node.js.snap | 7 ++++++ .../src/__tests__/extend-node.js | 24 +++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/packages/gatsby-transformer-remark/src/__tests__/__snapshots__/extend-node.js.snap b/packages/gatsby-transformer-remark/src/__tests__/__snapshots__/extend-node.js.snap index 9b78409d98cad..392079257b4e7 100644 --- a/packages/gatsby-transformer-remark/src/__tests__/__snapshots__/extend-node.js.snap +++ b/packages/gatsby-transformer-remark/src/__tests__/__snapshots__/extend-node.js.snap @@ -480,6 +480,13 @@ Object { } `; +exports[`Relative links keep being relative relative links are not prefixed 1`] = ` +Object { + "html": "

This is a link.

+

This is a reference

", +} +`; + exports[`Table of contents is generated correctly from schema correctly generates table of contents 1`] = ` Object { "frontmatter": Object { diff --git a/packages/gatsby-transformer-remark/src/__tests__/extend-node.js b/packages/gatsby-transformer-remark/src/__tests__/extend-node.js index f83dfc4f2630b..179273e52699c 100644 --- a/packages/gatsby-transformer-remark/src/__tests__/extend-node.js +++ b/packages/gatsby-transformer-remark/src/__tests__/extend-node.js @@ -920,6 +920,30 @@ final text`, ) }) +describe(`Relative links keep being relative`, () => { + const assetPrefix = `` + const basePath = `/prefix` + const pathPrefix = assetPrefix + basePath + + bootstrapTest( + `relative links are not prefixed`, + ` +This is [a link](path/to/page1). + +This is [a reference] + +[a reference]: ./path/to/page2 +`, + `html`, + node => { + expect(node).toMatchSnapshot() + expect(node.html).toMatch(``) + expect(node.html).toMatch(``) + }, + { additionalParameters: { pathPrefix: pathPrefix, basePath: basePath } } + ) +}) + describe(`Links are correctly prefixed`, () => { const assetPrefix = `` const basePath = `/prefix`