From b1cd3735b443a5c0ab721f47bff1ebacf74486ee Mon Sep 17 00:00:00 2001 From: Thomas Allmer Date: Tue, 23 Mar 2021 07:57:07 +0100 Subject: [PATCH] fix(publish-docs): images need to stay images when adjusting links --- .changeset/tall-walls-marry.md | 5 +++++ packages-node/publish-docs/src/PublishDocs.js | 13 ++++++------- .../publish-docs/test-node/PublishDocs.test.js | 9 +++++++++ .../fixtures/adjust-links/docs/red/assets/image.svg | 1 + .../fixtures/adjust-links/docs/red/details.md | 2 ++ 5 files changed, 23 insertions(+), 7 deletions(-) create mode 100644 .changeset/tall-walls-marry.md create mode 100644 packages-node/publish-docs/test-node/fixtures/adjust-links/docs/red/assets/image.svg diff --git a/.changeset/tall-walls-marry.md b/.changeset/tall-walls-marry.md new file mode 100644 index 000000000..a2b69491e --- /dev/null +++ b/.changeset/tall-walls-marry.md @@ -0,0 +1,5 @@ +--- +'publish-docs': patch +--- + +Images need to stay images when adjusting links diff --git a/packages-node/publish-docs/src/PublishDocs.js b/packages-node/publish-docs/src/PublishDocs.js index e9a62dc33..616240c1c 100644 --- a/packages-node/publish-docs/src/PublishDocs.js +++ b/packages-node/publish-docs/src/PublishDocs.js @@ -48,7 +48,8 @@ function rewriteLinksInMdContent(mdContent, filePath, { gitHubUrl, gitRootDir }) * @param {string} title * @param {string} text */ - const mdLink = (href, title, text) => `[${text}](${rewrite(href)}${title ? ` ${title}` : ''})`; + const mdLink = (href, title, text) => + `[${text}](${rewrite(href)}${title ? ` ${title.trim()}` : ''})`; /** @type {string[]} */ const resultLinks = []; @@ -61,6 +62,10 @@ function rewriteLinksInMdContent(mdContent, filePath, { gitHubUrl, gitRootDir }) const parts = link.match(new RegExp(linkPattern)); if (parts) { newLink = mdLink(parts[2], parts[3], parts[1]); + if (parts[0][0] === '!') { + // is an image + newLink = `!${newLink}`; + } } resultLinks.push(newLink); }); @@ -134,12 +139,6 @@ export class PublishDocs { await fs.promises.mkdir(targetDir, { recursive: true }); } await fs.copy(sourceDir, targetDir); - - // const assets = await listFiles(this.options.copyDir, this.options.gitRootDir); - // for (const asset of assets) { - // await fs.promises.mkdir(targetDir, { recursive: true }); - // await fs.promises.copyFile(asset, path.join(targetDir, path.basename(asset))); - // } } async execute() { diff --git a/packages-node/publish-docs/test-node/PublishDocs.test.js b/packages-node/publish-docs/test-node/PublishDocs.test.js index 3cac90ae7..4ee1feef7 100644 --- a/packages-node/publish-docs/test-node/PublishDocs.test.js +++ b/packages-node/publish-docs/test-node/PublishDocs.test.js @@ -60,6 +60,15 @@ describe('PublishDocs', () => { 'Dos not touch [external](https://google.com) links.', ].join(EOL), ); + + const details = await readOutput('docs/details.md'); + expect(details).to.equal( + [ + '# details.md', + '', + `![Some Image](https://github.com/ing-bank/lion/blob/1234/docs/red/assets/image.svg 'the title')`, + ].join(EOL), + ); delete process.env.GITHUB_SHA; }); diff --git a/packages-node/publish-docs/test-node/fixtures/adjust-links/docs/red/assets/image.svg b/packages-node/publish-docs/test-node/fixtures/adjust-links/docs/red/assets/image.svg new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/packages-node/publish-docs/test-node/fixtures/adjust-links/docs/red/assets/image.svg @@ -0,0 +1 @@ + diff --git a/packages-node/publish-docs/test-node/fixtures/adjust-links/docs/red/details.md b/packages-node/publish-docs/test-node/fixtures/adjust-links/docs/red/details.md index 8addb3b5d..fd4e03128 100644 --- a/packages-node/publish-docs/test-node/fixtures/adjust-links/docs/red/details.md +++ b/packages-node/publish-docs/test-node/fixtures/adjust-links/docs/red/details.md @@ -1 +1,3 @@ # details.md + +![Some Image](./assets/image.svg 'the title')