From ae45b3201ba03303a2feb5a347b18fda818a569a Mon Sep 17 00:00:00 2001 From: Snyk bot Date: Sun, 11 Oct 2020 06:50:01 +0300 Subject: [PATCH 1/6] fix: upgrade debug from 4.1.1 to 4.3.0 (#1390) Snyk has created this PR to upgrade debug from 4.1.1 to 4.3.0. See this package in npm: https://www.npmjs.com/package/debug See this project in Snyk: https://app.snyk.io/org/anikethsaha/project/6efe7e04-4e52-497e-8ad5-570733cc577a?utm_source=github&utm_medium=upgrade-pr --- packages/docsify-server-renderer/package-lock.json | 8 ++++---- packages/docsify-server-renderer/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/docsify-server-renderer/package-lock.json b/packages/docsify-server-renderer/package-lock.json index b9037a58..5d0a9fe1 100644 --- a/packages/docsify-server-renderer/package-lock.json +++ b/packages/docsify-server-renderer/package-lock.json @@ -16,11 +16,11 @@ } }, "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.0.tgz", + "integrity": "sha512-jjO6JD2rKfiZQnBoRzhRTbXjHLGLfH+UtGkWLc/UXAh/rzZMyjbgn0NcfFpqT8nd1kTtFnDiJcrIFkq4UKeJVg==", "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "delegate": { diff --git a/packages/docsify-server-renderer/package.json b/packages/docsify-server-renderer/package.json index d4110aec..aeed1a1b 100644 --- a/packages/docsify-server-renderer/package.json +++ b/packages/docsify-server-renderer/package.json @@ -15,7 +15,7 @@ "test": "echo 'hello'" }, "dependencies": { - "debug": "^4.1.1", + "debug": "^4.3.0", "docsify": "^4.11.6", "dompurify": "^2.0.17", "node-fetch": "^2.6.0", From 25bc9b7eb7e878a6a50ed5f91d33d6a75f9811b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B2=88=E5=94=81?= <52o@qq52o.cn> Date: Wed, 14 Oct 2020 12:39:56 +0800 Subject: [PATCH 2/6] fix: Can't search homepage content (#1391) * fix: Can't search homepage content * fix: when pathNamespaces does not exist * add test * update test to fix windows ci --- src/plugins/search/search.js | 3 +++ test/e2e/sidebar.test.js | 16 ++++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 test/e2e/sidebar.test.js diff --git a/src/plugins/search/search.js b/src/plugins/search/search.js index 18fb88ea..5c7f38bc 100644 --- a/src/plugins/search/search.js +++ b/src/plugins/search/search.js @@ -226,6 +226,9 @@ export function init(config, vm) { namespaceSuffix = matches[0]; } } + paths.unshift(namespaceSuffix + '/'); + } else { + paths.unshift('/'); } const expireKey = resolveExpireKey(config.namespace) + namespaceSuffix; diff --git a/test/e2e/sidebar.test.js b/test/e2e/sidebar.test.js new file mode 100644 index 00000000..3b58bdf5 --- /dev/null +++ b/test/e2e/sidebar.test.js @@ -0,0 +1,16 @@ +const docsifyInit = require('../helpers/docsify-init'); + +// Suite +// ----------------------------------------------------------------------------- +describe('Sidebar Tests', function() { + // Tests + // --------------------------------------------------------------------------- + test('search readme', async () => { + await docsifyInit(); + await page.goto(DOCS_URL + '/#/quickstart'); + await page.fill('input[type=search]', 'Please consider donating'); + expect( + await page.innerText('.results-panel > .matching-post > a > h2') + ).toEqual('Donate'); + }); +}); From c9d4f7abc94a2cbc4bb558013775df380c1c8376 Mon Sep 17 00:00:00 2001 From: Koy Date: Thu, 15 Oct 2020 09:13:35 +0800 Subject: [PATCH 3/6] fix: the sidebar links to another site. (#1336) * fix : the sidebar links to another site --- src/core/render/compiler.js | 12 ++++++------ src/core/render/compiler/headline.js | 12 ++++++------ src/core/render/utils.js | 10 ++++++++++ test/unit/render-util.test.js | 15 +++++++++++++++ 4 files changed, 37 insertions(+), 12 deletions(-) create mode 100644 test/unit/render-util.test.js diff --git a/src/core/render/compiler.js b/src/core/render/compiler.js index 17e0a814..55750772 100644 --- a/src/core/render/compiler.js +++ b/src/core/render/compiler.js @@ -5,7 +5,7 @@ import { tree as treeTpl } from './tpl'; import { genTree } from './gen-tree'; import { slugify } from './slugify'; import { emojify } from './emojify'; -import { getAndRemoveConfig } from './utils'; +import { getAndRemoveConfig, removeAtag } from './utils'; import { imageCompiler } from './compiler/image'; import { highlightCodeCompiler } from './compiler/code'; import { paragraphCompiler } from './compiler/paragraph'; @@ -206,29 +206,29 @@ export class Compiler { */ origin.heading = renderer.heading = function(text, level) { let { str, config } = getAndRemoveConfig(text); - const nextToc = { level, title: str }; + const nextToc = { level, title: removeAtag(str) }; if (//g.test(str)) { str = str.replace('', ''); - nextToc.title = str; + nextToc.title = removeAtag(str); nextToc.ignoreSubHeading = true; } if (/{docsify-ignore}/g.test(str)) { str = str.replace('{docsify-ignore}', ''); - nextToc.title = str; + nextToc.title = removeAtag(str); nextToc.ignoreSubHeading = true; } if (//g.test(str)) { str = str.replace('', ''); - nextToc.title = str; + nextToc.title = removeAtag(str); nextToc.ignoreAllSubs = true; } if (/{docsify-ignore-all}/g.test(str)) { str = str.replace('{docsify-ignore-all}', ''); - nextToc.title = str; + nextToc.title = removeAtag(str); nextToc.ignoreAllSubs = true; } diff --git a/src/core/render/compiler/headline.js b/src/core/render/compiler/headline.js index 48ae9e8c..61e4b3fb 100644 --- a/src/core/render/compiler/headline.js +++ b/src/core/render/compiler/headline.js @@ -1,32 +1,32 @@ -import { getAndRemoveConfig } from '../utils'; +import { getAndRemoveConfig, removeAtag } from '../utils'; import { slugify } from './slugify'; export const headingCompiler = ({ renderer, router, _self }) => (renderer.code = (text, level) => { let { str, config } = getAndRemoveConfig(text); - const nextToc = { level, title: str }; + const nextToc = { level, title: removeAtag(str) }; if (//g.test(str)) { str = str.replace('', ''); - nextToc.title = str; + nextToc.title = removeAtag(str); nextToc.ignoreSubHeading = true; } if (/{docsify-ignore}/g.test(str)) { str = str.replace('{docsify-ignore}', ''); - nextToc.title = str; + nextToc.title = removeAtag(str); nextToc.ignoreSubHeading = true; } if (//g.test(str)) { str = str.replace('', ''); - nextToc.title = str; + nextToc.title = removeAtag(str); nextToc.ignoreAllSubs = true; } if (/{docsify-ignore-all}/g.test(str)) { str = str.replace('{docsify-ignore-all}', ''); - nextToc.title = str; + nextToc.title = removeAtag(str); nextToc.ignoreAllSubs = true; } diff --git a/src/core/render/utils.js b/src/core/render/utils.js index 100d595c..bd892c65 100644 --- a/src/core/render/utils.js +++ b/src/core/render/utils.js @@ -38,3 +38,13 @@ export function getAndRemoveConfig(str = '') { return { str, config }; } + +/** + * Remove the tag from sidebar when the header with link, details see issue 1069 + * @param {string} str The string to deal with. + * + * @return {string} str The string after delete the element. + */ +export function removeAtag(str = '') { + return str.replace(/(<\/?a.*?>)/gi, ''); +} diff --git a/test/unit/render-util.test.js b/test/unit/render-util.test.js new file mode 100644 index 00000000..3a82a0f9 --- /dev/null +++ b/test/unit/render-util.test.js @@ -0,0 +1,15 @@ +const { removeAtag } = require(`${SRC_PATH}/core/render/utils`); + +// Suite +// ----------------------------------------------------------------------------- +describe('core/render/utils', () => { + // removeAtag() + // --------------------------------------------------------------------------- + describe('removeAtag()', () => { + test('removeAtag from a link', () => { + const result = removeAtag('content'); + + expect(result).toEqual('content'); + }); + }); +}); From ee550d0c51f222851854c7cd7e9e6f76e26eb6f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B2=88=E5=94=81?= <52o@qq52o.cn> Date: Thu, 15 Oct 2020 17:41:21 +0800 Subject: [PATCH 4/6] fix: search on homepage test (#1398) * fix: ci build * reset * test * update * fix test * fix * Add multi-page search test * rename Co-authored-by: John Hildenbiddle --- test/e2e/search.test.js | 38 ++++++++++++++++++++++++++++++++++++++ test/e2e/sidebar.test.js | 16 ---------------- 2 files changed, 38 insertions(+), 16 deletions(-) create mode 100644 test/e2e/search.test.js delete mode 100644 test/e2e/sidebar.test.js diff --git a/test/e2e/search.test.js b/test/e2e/search.test.js new file mode 100644 index 00000000..3866b425 --- /dev/null +++ b/test/e2e/search.test.js @@ -0,0 +1,38 @@ +const docsifyInit = require('../helpers/docsify-init'); + +// Suite +// ----------------------------------------------------------------------------- +describe('Search Plugin Tests', function() { + // Tests + // --------------------------------------------------------------------------- + test('search readme', async () => { + const docsifyInitConfig = { + markdown: { + homepage: ` + # Hello World + + This is the homepage. + `, + sidebar: ` + - [Home page](/) + - [Test Page](test) + `, + }, + routes: { + '/test.md': ` + # Test Page + + This is a custom route. + `, + }, + scriptURLs: ['/lib/plugins/search.min.js'], + }; + + await docsifyInit(docsifyInitConfig); + await page.fill('input[type=search]', 'hello'); + await expect(page).toEqualText('.results-panel h2', 'Hello World'); + await page.click('.clear-button'); + await page.fill('input[type=search]', 'test'); + await expect(page).toEqualText('.results-panel h2', 'Test Page'); + }); +}); diff --git a/test/e2e/sidebar.test.js b/test/e2e/sidebar.test.js deleted file mode 100644 index 3b58bdf5..00000000 --- a/test/e2e/sidebar.test.js +++ /dev/null @@ -1,16 +0,0 @@ -const docsifyInit = require('../helpers/docsify-init'); - -// Suite -// ----------------------------------------------------------------------------- -describe('Sidebar Tests', function() { - // Tests - // --------------------------------------------------------------------------- - test('search readme', async () => { - await docsifyInit(); - await page.goto(DOCS_URL + '/#/quickstart'); - await page.fill('input[type=search]', 'Please consider donating'); - expect( - await page.innerText('.results-panel > .matching-post > a > h2') - ).toEqual('Donate'); - }); -}); From 1863d8edb70da234bf7f211986ba71706351682f Mon Sep 17 00:00:00 2001 From: Snyk bot Date: Thu, 15 Oct 2020 14:40:56 +0300 Subject: [PATCH 5/6] fix: upgrade dompurify from 2.0.17 to 2.1.0 (#1397) Snyk has created this PR to upgrade dompurify from 2.0.17 to 2.1.0. See this package in npm: https://www.npmjs.com/package/dompurify See this project in Snyk: https://app.snyk.io/org/anikethsaha/project/6efe7e04-4e52-497e-8ad5-570733cc577a?utm_source=github&utm_medium=upgrade-pr --- packages/docsify-server-renderer/package-lock.json | 6 +++--- packages/docsify-server-renderer/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/docsify-server-renderer/package-lock.json b/packages/docsify-server-renderer/package-lock.json index 5d0a9fe1..0ea6b5ba 100644 --- a/packages/docsify-server-renderer/package-lock.json +++ b/packages/docsify-server-renderer/package-lock.json @@ -45,9 +45,9 @@ } }, "dompurify": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.0.17.tgz", - "integrity": "sha512-nNwwJfW55r8akD8MSFz6k75bzyT2y6JEa1O3JrZFBf+Y5R9JXXU4OsRl0B9hKoPgHTw2b7ER5yJ5Md97MMUJPg==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.1.0.tgz", + "integrity": "sha512-wKExRhOwUnfm1icoISSXnlmM1P2l07W2tFQqbU+8oySnvy7tHwj2iHJ1kJQi8EfcTlojsHKESOJwCGVJmNUdPQ==" }, "good-listener": { "version": "1.2.2", diff --git a/packages/docsify-server-renderer/package.json b/packages/docsify-server-renderer/package.json index aeed1a1b..ec9bcf69 100644 --- a/packages/docsify-server-renderer/package.json +++ b/packages/docsify-server-renderer/package.json @@ -17,7 +17,7 @@ "dependencies": { "debug": "^4.3.0", "docsify": "^4.11.6", - "dompurify": "^2.0.17", + "dompurify": "^2.1.0", "node-fetch": "^2.6.0", "resolve-pathname": "^3.0.0" } From 8cf9fd8150bd67709c68d8dfe4dc881624583ac8 Mon Sep 17 00:00:00 2001 From: Snyk bot Date: Sat, 17 Oct 2020 09:03:33 +0300 Subject: [PATCH 6/6] fix: upgrade dompurify from 2.1.0 to 2.1.1 (#1402) Snyk has created this PR to upgrade dompurify from 2.1.0 to 2.1.1. See this package in npm: https://www.npmjs.com/package/dompurify See this project in Snyk: https://app.snyk.io/org/anikethsaha/project/6efe7e04-4e52-497e-8ad5-570733cc577a?utm_source=github&utm_medium=upgrade-pr --- packages/docsify-server-renderer/package-lock.json | 6 +++--- packages/docsify-server-renderer/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/docsify-server-renderer/package-lock.json b/packages/docsify-server-renderer/package-lock.json index 0ea6b5ba..1777a4c8 100644 --- a/packages/docsify-server-renderer/package-lock.json +++ b/packages/docsify-server-renderer/package-lock.json @@ -45,9 +45,9 @@ } }, "dompurify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.1.0.tgz", - "integrity": "sha512-wKExRhOwUnfm1icoISSXnlmM1P2l07W2tFQqbU+8oySnvy7tHwj2iHJ1kJQi8EfcTlojsHKESOJwCGVJmNUdPQ==" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.1.1.tgz", + "integrity": "sha512-NijiNVkS/OL8mdQL1hUbCD6uty/cgFpmNiuFxrmJ5YPH2cXrPKIewoixoji56rbZ6XBPmtM8GA8/sf9unlSuwg==" }, "good-listener": { "version": "1.2.2", diff --git a/packages/docsify-server-renderer/package.json b/packages/docsify-server-renderer/package.json index ec9bcf69..fecc1ac2 100644 --- a/packages/docsify-server-renderer/package.json +++ b/packages/docsify-server-renderer/package.json @@ -17,7 +17,7 @@ "dependencies": { "debug": "^4.3.0", "docsify": "^4.11.6", - "dompurify": "^2.1.0", + "dompurify": "^2.1.1", "node-fetch": "^2.6.0", "resolve-pathname": "^3.0.0" }