From 6c13bdb7bdbcc2de4b36906a5e982092e4456d95 Mon Sep 17 00:00:00 2001 From: Mark Battistella Date: Mon, 15 Feb 2021 12:48:00 +1100 Subject: [PATCH 1/9] docs: Updated alias (#1511) The expression in alias `(+*)` is invalid and a correct working method would be `(.*)` --- docs/configuration.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/configuration.md b/docs/configuration.md index 7b3b5fcda..3ea277698 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -354,7 +354,7 @@ Set the route alias. You can freely manage routing rules. Supports RegExp. ```js window.$docsify = { alias: { - '/foo/(+*)': '/bar/$1', // supports regexp + '/foo/(.*)': '/bar/$1', // supports regexp '/zh-cn/changelog': '/changelog', '/changelog': 'https://raw.githubusercontent.com/docsifyjs/docsify/master/CHANGELOG', From ff2a66f12752471277fe81a64ad6c4b2c08111fe Mon Sep 17 00:00:00 2001 From: John Hildenbiddle Date: Thu, 18 Feb 2021 06:06:44 -0600 Subject: [PATCH 2/9] fix: isExternal check with malformed URL + tests (#1510) Fix #1477. Fix #1126. Follow-up to #1489. --- src/core/fetch/index.js | 2 +- test/e2e/security.test.js | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 test/e2e/security.test.js diff --git a/src/core/fetch/index.js b/src/core/fetch/index.js index 0fac23bee..2d6f813c2 100644 --- a/src/core/fetch/index.js +++ b/src/core/fetch/index.js @@ -22,7 +22,7 @@ function loadNested(path, qs, file, next, vm, first) { function isExternal(url) { let match = url.match( - /^([^:/?#]+:)?(?:\/\/([^/?#]*))?([^?#]+)?(\?[^#]*)?(#.*)?/ + /^([^:/?#]+:)?(?:\/{2,}([^/?#]*))?([^?#]+)?(\?[^#]*)?(#.*)?/ ); if ( typeof match[1] === 'string' && diff --git a/test/e2e/security.test.js b/test/e2e/security.test.js new file mode 100644 index 000000000..caffddad6 --- /dev/null +++ b/test/e2e/security.test.js @@ -0,0 +1,32 @@ +const docsifyInit = require('../helpers/docsify-init'); + +describe(`Security`, function() { + const sharedOptions = { + markdown: { + homepage: '# Hello World', + }, + routes: { + 'test.md': '# Test Page', + }, + }; + + describe(`Cross Site Scripting (XSS)`, function() { + const slashStrings = ['//', '///']; + + for (const slashString of slashStrings) { + const hash = `#${slashString}domain.com/file.md`; + + test(`should not load remote content from hash (${hash})`, async () => { + await docsifyInit(sharedOptions); + await expect(page).toHaveText('#main', 'Hello World'); + await page.evaluate(() => (location.hash = '#/test')); + await expect(page).toHaveText('#main', 'Test Page'); + await page.evaluate(newHash => { + location.hash = newHash; + }, hash); + await expect(page).toHaveText('#main', 'Hello World'); + expect(page.url()).toMatch(/#\/$/); + }); + } + }); +}); From 47cd86c8f196a241fc23720e3addfe95d4c973cd Mon Sep 17 00:00:00 2001 From: Anix Date: Sat, 20 Feb 2021 06:39:38 +0530 Subject: [PATCH 3/9] fix: Upgrade docsify from 4.11.6 to 4.12.0 (#1518) The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/SNYK-JS-DOCSIFY-1066017 Co-authored-by: snyk-bot --- .../docsify-server-renderer/package-lock.json | 24 +++++++++---------- packages/docsify-server-renderer/package.json | 2 +- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/packages/docsify-server-renderer/package-lock.json b/packages/docsify-server-renderer/package-lock.json index 5a216d6be..5a2b93c65 100644 --- a/packages/docsify-server-renderer/package-lock.json +++ b/packages/docsify-server-renderer/package-lock.json @@ -30,15 +30,15 @@ "optional": true }, "docsify": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/docsify/-/docsify-4.11.6.tgz", - "integrity": "sha512-6h3hB2Ni7gpOeu1fl1sDOmufuplIDmeFHsps17Qbg9VOS3h2tJ63FiW2w5oAydGyzaLrqu58FV7Mg4b6p0z9mg==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/docsify/-/docsify-4.12.0.tgz", + "integrity": "sha512-oLr48dLeJ8sTVQfL8HLFqd2sPPG8DNAOvYAXXJQr/+/K9uC2KDhoeu+GGj5U2uFGR5czF3oLvqNBxhEElg1wGw==", "requires": { - "dompurify": "^2.0.8", - "marked": "^1.1.1", + "dompurify": "^2.2.6", + "marked": "^1.2.9", "medium-zoom": "^1.0.6", "opencollective-postinstall": "^2.0.2", - "prismjs": "^1.19.0", + "prismjs": "^1.23.0", "strip-indent": "^3.0.0", "tinydate": "^1.3.0", "tweezer.js": "^1.4.0" @@ -59,9 +59,9 @@ } }, "marked": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/marked/-/marked-1.1.1.tgz", - "integrity": "sha512-mJzT8D2yPxoPh7h0UXkB+dBj4FykPJ2OIfxAWeIHrvoHDkFxukV/29QxoFQoPM6RLEwhIFdJpmKBlqVM3s2ZIw==" + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/marked/-/marked-1.2.9.tgz", + "integrity": "sha512-H8lIX2SvyitGX+TRdtS06m1jHMijKN/XjfH6Ooii9fvxMlh8QdqBfBDkGUpMWH2kQNrtixjzYUa3SH8ROTgRRw==" }, "medium-zoom": { "version": "1.0.6", @@ -89,9 +89,9 @@ "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==" }, "prismjs": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.21.0.tgz", - "integrity": "sha512-uGdSIu1nk3kej2iZsLyDoJ7e9bnPzIgY0naW/HdknGj61zScaprVEVGHrPoXqI+M9sP0NDnTK2jpkvmldpuqDw==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.23.0.tgz", + "integrity": "sha512-c29LVsqOaLbBHuIbsTxaKENh1N2EQBOHaWv7gkHN4dgRbxSREqDnDbtFJYdpPauS4YCplMSNCABQ6Eeor69bAA==", "requires": { "clipboard": "^2.0.0" } diff --git a/packages/docsify-server-renderer/package.json b/packages/docsify-server-renderer/package.json index 97147e729..503be9b07 100644 --- a/packages/docsify-server-renderer/package.json +++ b/packages/docsify-server-renderer/package.json @@ -16,7 +16,7 @@ }, "dependencies": { "debug": "^4.3.2", - "docsify": "^4.11.6", + "docsify": "^4.12.0", "dompurify": "^2.2.6", "node-fetch": "^2.6.0", "resolve-pathname": "^3.0.0" From a8016c8d748185d6dc0bb587f46e2e74aa5f8362 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B2=88=E5=94=81?= <52o@qq52o.cn> Date: Sat, 20 Feb 2021 15:54:30 +0800 Subject: [PATCH 4/9] docs: Update Vercel logo link (#1520) --- docs/README.md | 2 +- docs/index.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/README.md b/docs/README.md index 60023700a..ca396b7b8 100644 --- a/docs/README.md +++ b/docs/README.md @@ -35,4 +35,4 @@ Users and the development team are usually in the [Discord server](https://disco _Vercel_ has given us a Pro account. - + diff --git a/docs/index.html b/docs/index.html index b32a76f26..27dadcaaa 100644 --- a/docs/index.html +++ b/docs/index.html @@ -196,7 +196,7 @@ } return ( html + - '
Vercel has given us a Pro account
Vercel' + '
Vercel has given us a Pro account
Vercel' ); }); }, From abda30d336fb2fb79b401c0b02a9aa174174bdfa Mon Sep 17 00:00:00 2001 From: Koy Date: Fri, 26 Feb 2021 19:23:03 +0800 Subject: [PATCH 5/9] test(unit): add test cases on isExternal. (#1515) * test(unit): add test cases on xss. --- src/core/fetch/index.js | 28 +---------------- src/core/util/core.js | 32 +++++++++++++++++++ test/unit/core-util.test.js | 63 +++++++++++++++++++++++++++++++++++++ 3 files changed, 96 insertions(+), 27 deletions(-) create mode 100644 test/unit/core-util.test.js diff --git a/src/core/fetch/index.js b/src/core/fetch/index.js index 2d6f813c2..f0f288798 100644 --- a/src/core/fetch/index.js +++ b/src/core/fetch/index.js @@ -1,7 +1,7 @@ /* eslint-disable no-unused-vars */ import { callHook } from '../init/lifecycle'; import { getParentPath, stringifyQuery } from '../router/util'; -import { noop } from '../util/core'; +import { noop, isExternal } from '../util/core'; import { getAndActive } from '../event/sidebar'; import { get } from './ajax'; @@ -20,32 +20,6 @@ function loadNested(path, qs, file, next, vm, first) { ).then(next, _ => loadNested(path, qs, file, next, vm)); } -function isExternal(url) { - let match = url.match( - /^([^:/?#]+:)?(?:\/{2,}([^/?#]*))?([^?#]+)?(\?[^#]*)?(#.*)?/ - ); - if ( - typeof match[1] === 'string' && - match[1].length > 0 && - match[1].toLowerCase() !== location.protocol - ) { - return true; - } - if ( - typeof match[2] === 'string' && - match[2].length > 0 && - match[2].replace( - new RegExp( - ':(' + { 'http:': 80, 'https:': 443 }[location.protocol] + ')?$' - ), - '' - ) !== location.host - ) { - return true; - } - return false; -} - export function fetchMixin(proto) { let last; diff --git a/src/core/util/core.js b/src/core/util/core.js index 9d2638412..50b7ed02c 100644 --- a/src/core/util/core.js +++ b/src/core/util/core.js @@ -66,3 +66,35 @@ export function noop() {} export function isFn(obj) { return typeof obj === 'function'; } + +/** + * Check if url is external + * @param {String} string url + * @returns {Boolean} True if the passed-in url is external + */ +export function isExternal(url) { + let match = url.match( + /^([^:/?#]+:)?(?:\/{2,}([^/?#]*))?([^?#]+)?(\?[^#]*)?(#.*)?/ + ); + + if ( + typeof match[1] === 'string' && + match[1].length > 0 && + match[1].toLowerCase() !== location.protocol + ) { + return true; + } + if ( + typeof match[2] === 'string' && + match[2].length > 0 && + match[2].replace( + new RegExp( + ':(' + { 'http:': 80, 'https:': 443 }[location.protocol] + ')?$' + ), + '' + ) !== location.host + ) { + return true; + } + return false; +} diff --git a/test/unit/core-util.test.js b/test/unit/core-util.test.js new file mode 100644 index 000000000..0ebbf7bbd --- /dev/null +++ b/test/unit/core-util.test.js @@ -0,0 +1,63 @@ +const { isExternal } = require('../../src/core/util'); + +// Core util +// ----------------------------------------------------------------------------- +describe('core/util', () => { + // isExternal() + // --------------------------------------------------------------------------- + describe('isExternal()', () => { + // cases non external + test('non external local url with one /', () => { + const result = isExternal(`/${location.host}/docsify/demo.md`); + + expect(result).toBeFalsy(); + }); + + test('non external local url with two //', () => { + const result = isExternal(`//${location.host}/docsify/demo.md`); + + expect(result).toBeFalsy(); + }); + + test('non external local url with three ///', () => { + const result = isExternal(`///${location.host}/docsify/demo.md`); + + expect(result).toBeFalsy(); + }); + + test('non external local url with more /', () => { + const result = isExternal( + `//////////////////${location.host}/docsify/demo.md` + ); + + expect(result).toBeFalsy(); + }); + + test('non external url with one /', () => { + const result = isExternal('/example.github.io/docsify/demo.md'); + + expect(result).toBeFalsy(); + }); + + // cases is external + test('external url with two //', () => { + const result = isExternal('/docsify/demo.md'); + + expect(result).toBeFalsy(); + }); + + test('external url with three ///', () => { + const result = isExternal('///example.github.io/docsify/demo.md'); + + expect(result).toBeTruthy(); + }); + + test('external url with more /', () => { + const result = isExternal( + '//////////////////example.github.io/docsify/demo.md' + ); + + expect(result).toBeTruthy(); + }); + }); +}); From bc3726853fb2d1f9241927ea0317970ab0c8a2f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B2=88=E5=94=81?= <52o@qq52o.cn> Date: Fri, 5 Mar 2021 14:23:04 +0800 Subject: [PATCH 6/9] feat: Support search when there is no title (#1519) * feat: Support search when there is no title * test: Support search when there is no title --- src/plugins/search/search.js | 11 ++++++++++- test/e2e/search.test.js | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/src/plugins/search/search.js b/src/plugins/search/search.js index 07740e6df..94047c2ee 100644 --- a/src/plugins/search/search.js +++ b/src/plugins/search/search.js @@ -85,7 +85,7 @@ export function genIndex(path, content = '', router, depth) { let slug; let title = ''; - tokens.forEach(token => { + tokens.forEach(function(token, tokenIndex) { if (token.type === 'heading' && token.depth <= depth) { const { str, config } = getAndRemoveConfig(token.text); @@ -106,6 +106,15 @@ export function genIndex(path, content = '', router, depth) { index[slug] = { slug, title: title, body: '' }; } else { + if (tokenIndex === 0) { + slug = router.toURL(path); + index[slug] = { + slug, + title: path !== '/' ? path.slice(1) : 'Home Page', + body: token.text || '', + }; + } + if (!slug) { return; } diff --git a/test/e2e/search.test.js b/test/e2e/search.test.js index 8afce5500..6478e1925 100644 --- a/test/e2e/search.test.js +++ b/test/e2e/search.test.js @@ -124,4 +124,36 @@ describe('Search Plugin Tests', function() { await page.fill('input[type=search]', 'estáticos'); await expect(page).toEqualText('.results-panel h2', 'Que es'); }); + + test('search when there is no title', async () => { + const docsifyInitConfig = { + markdown: { + homepage: ` + This is some description. We assume autoHeader added the # Title. A long paragraph. + `, + sidebar: ` + - [Changelog](changelog) + `, + }, + routes: { + '/changelog.md': ` + feat: Support search when there is no title + + ## Changelog Title + + hello, this is a changelog + `, + }, + scriptURLs: ['/lib/plugins/search.min.js'], + }; + await docsifyInit(docsifyInitConfig); + await page.fill('input[type=search]', 'paragraph'); + await expect(page).toEqualText('.results-panel h2', 'Home Page'); + await page.click('.clear-button'); + await page.fill('input[type=search]', 'Support'); + await expect(page).toEqualText('.results-panel h2', 'changelog'); + await page.click('.clear-button'); + await page.fill('input[type=search]', 'hello'); + await expect(page).toEqualText('.results-panel h2', 'Changelog Title'); + }); }); From d1b77c71344a0b0a9bb0808d6a681c9a11939725 Mon Sep 17 00:00:00 2001 From: sy-records <52o@qq52o.cn> Date: Sun, 7 Mar 2021 11:00:41 +0800 Subject: [PATCH 7/9] [build] 4.12.1 --- docs/_coverpage.md | 2 +- package-lock.json | 82 +++++++++---------- .../docsify-server-renderer/package-lock.json | 2 +- packages/docsify-server-renderer/package.json | 2 +- 4 files changed, 44 insertions(+), 44 deletions(-) diff --git a/docs/_coverpage.md b/docs/_coverpage.md index ab31e601d..67370c552 100644 --- a/docs/_coverpage.md +++ b/docs/_coverpage.md @@ -1,6 +1,6 @@ ![logo](_media/icon.svg) -# docsify 4.12.0 +# docsify 4.12.1 > A magical documentation site generator. diff --git a/package-lock.json b/package-lock.json index 12125b51b..1d1af06d8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4347,14 +4347,14 @@ } }, "@vue/compiler-core": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.0.5.tgz", - "integrity": "sha512-iFXwk2gmU/GGwN4hpBwDWWMLvpkIejf/AybcFtlQ5V1ur+5jwfBaV0Y1RXoR6ePfBPJixtKZ3PmN+M+HgMAtfQ==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.0.7.tgz", + "integrity": "sha512-JFohgBXoyUc3mdeI2WxlhjQZ5fakfemJkZHX8Gu/nFbEg3+lKVUZmNKWmmnp9aOzJQZKoj77LjmFxiP+P+7lMQ==", "dev": true, "requires": { "@babel/parser": "^7.12.0", "@babel/types": "^7.12.0", - "@vue/shared": "3.0.5", + "@vue/shared": "3.0.7", "estree-walker": "^2.0.1", "source-map": "^0.6.1" }, @@ -4366,15 +4366,15 @@ "dev": true }, "@babel/parser": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.15.tgz", - "integrity": "sha512-AQBOU2Z9kWwSZMd6lNjCX0GUgFonL1wAM1db8L8PMk9UDaGsRCArBkU4Sc+UCM3AE4hjbXx+h58Lb3QT4oRmrA==", + "version": "7.13.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.9.tgz", + "integrity": "sha512-nEUfRiARCcaVo3ny3ZQjURjHQZUo/JkEw7rLlSZy/psWGnvwXFtPcr6jb7Yb41DVW5LTe6KRq9LGleRNsg1Frw==", "dev": true }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", + "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -4397,49 +4397,49 @@ } }, "@vue/compiler-dom": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.0.5.tgz", - "integrity": "sha512-HSOSe2XSPuCkp20h4+HXSiPH9qkhz6YbW9z9ZtL5vef2T2PMugH7/osIFVSrRZP/Ul5twFZ7MIRlp8tPX6e4/g==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.0.7.tgz", + "integrity": "sha512-VnIH9EbWQm/Tkcp+8dCaNVsVvhm/vxCrIKWRkXY9215hTqOqQOvejT8IMjd2kc++nIsYMsdQk6H9qqBvoLe/Cw==", "dev": true, "requires": { - "@vue/compiler-core": "3.0.5", - "@vue/shared": "3.0.5" + "@vue/compiler-core": "3.0.7", + "@vue/shared": "3.0.7" } }, "@vue/reactivity": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.0.5.tgz", - "integrity": "sha512-3xodUE3sEIJgS7ntwUbopIpzzvi7vDAOjVamfb2l+v1FUg0jpd3gf62N2wggJw3fxBMr+QvyxpD+dBoxLsmAjw==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.0.7.tgz", + "integrity": "sha512-FotWcNNaKhqpFZrdgsUOZ1enlJ5lhTt01CNTtLSyK7jYFgZBTuw8vKsEutZKDYZ1XKotOfoeO8N3pZQqmM6Etw==", "dev": true, "requires": { - "@vue/shared": "3.0.5" + "@vue/shared": "3.0.7" } }, "@vue/runtime-core": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.0.5.tgz", - "integrity": "sha512-Cnyi2NqREwOLcTEsIi1DQX1hHtkVj4eGm4hBG7HhokS05DqpK4/80jG6PCCnCH9rIJDB2FqtaODX397210plXg==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.0.7.tgz", + "integrity": "sha512-DBAZAwVvdmMXuyd6/9qqj/kYr/GaLTmn1L2/QLxLwP+UfhIboiTSBc/tUUb8MRk7Bb98GzNeAWkkT6AfooS3dQ==", "dev": true, "requires": { - "@vue/reactivity": "3.0.5", - "@vue/shared": "3.0.5" + "@vue/reactivity": "3.0.7", + "@vue/shared": "3.0.7" } }, "@vue/runtime-dom": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.0.5.tgz", - "integrity": "sha512-iilX1KySeIzHHtErT6Y44db1rhWK5tAI0CiJIPr+SJoZ2jbjoOSE6ff/jfIQakchbm1d6jq6VtRVnp5xYdOXKA==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.0.7.tgz", + "integrity": "sha512-Oij4ruOtnpQpCj+/Q3JPzgpTJ1Q7+N67pA53A8KVITEtxfvKL46NN6dhAZ5NGqwX6RWZpYqWQNewITeF0pHr8g==", "dev": true, "requires": { - "@vue/runtime-core": "3.0.5", - "@vue/shared": "3.0.5", + "@vue/runtime-core": "3.0.7", + "@vue/shared": "3.0.7", "csstype": "^2.6.8" } }, "@vue/shared": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.0.5.tgz", - "integrity": "sha512-gYsNoGkWejBxNO6SNRjOh/xKeZ0H0V+TFzaPzODfBjkAIb0aQgBuixC1brandC/CDJy1wYPwSoYrXpvul7m6yw==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.0.7.tgz", + "integrity": "sha512-dn5FyfSc4ky424jH4FntiHno7Ss5yLkqKNmM/NXwANRnlkmqu74pnGetexDFVG5phMk9/FhwovUZCWGxsotVKg==", "dev": true }, "@zkochan/cmd-shim": { @@ -6879,9 +6879,9 @@ } }, "csstype": { - "version": "2.6.14", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.14.tgz", - "integrity": "sha512-2mSc+VEpGPblzAxyeR+vZhJKgYg0Og0nnRi7pmRXFYYxSfnOnW8A5wwQb4n4cE2nIOzqKOAzLCaEX6aBmNEv8A==", + "version": "2.6.16", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.16.tgz", + "integrity": "sha512-61FBWoDHp/gRtsoDkq/B1nWrCUG/ok1E3tUrcNbZjsE9Cxd9yzUirjS3+nAATB8U4cTtaQmAHbNndoFz5L6C9Q==", "dev": true }, "currently-unhandled": { @@ -20241,14 +20241,14 @@ "dev": true }, "vue3": { - "version": "npm:vue@3.0.5", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.0.5.tgz", - "integrity": "sha512-TfaprOmtsAfhQau7WsomXZ8d9op/dkQLNIq8qPV3A0Vxs6GR5E+c1rfJS1SDkXRQj+dFyfnec7+U0Be1huiScg==", + "version": "npm:vue@3.0.7", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.0.7.tgz", + "integrity": "sha512-8h4TikD+JabbMK9aRlBO4laG0AtNHRPHynxYgWZ9sq1YUPfzynd9Jeeb27XNyZytC7aCQRX9xe1+TQJuc181Tw==", "dev": true, "requires": { - "@vue/compiler-dom": "3.0.5", - "@vue/runtime-dom": "3.0.5", - "@vue/shared": "3.0.5" + "@vue/compiler-dom": "3.0.7", + "@vue/runtime-dom": "3.0.7", + "@vue/shared": "3.0.7" } }, "w3c-hr-time": { diff --git a/packages/docsify-server-renderer/package-lock.json b/packages/docsify-server-renderer/package-lock.json index 5a2b93c65..ba64d4356 100644 --- a/packages/docsify-server-renderer/package-lock.json +++ b/packages/docsify-server-renderer/package-lock.json @@ -1,6 +1,6 @@ { "name": "docsify-server-renderer", - "version": "4.12.0", + "version": "4.12.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/docsify-server-renderer/package.json b/packages/docsify-server-renderer/package.json index 503be9b07..a254f2cef 100644 --- a/packages/docsify-server-renderer/package.json +++ b/packages/docsify-server-renderer/package.json @@ -1,6 +1,6 @@ { "name": "docsify-server-renderer", - "version": "4.12.0", + "version": "4.12.1", "description": "docsify server renderer", "author": { "name": "qingwei-li", From cea7765901e623c3d46b0cae10819cf27ebd8901 Mon Sep 17 00:00:00 2001 From: sy-records <52o@qq52o.cn> Date: Sun, 7 Mar 2021 11:00:43 +0800 Subject: [PATCH 8/9] chore: add changelog 4.12.1 --- CHANGELOG.md | 17 +++++++++++++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f7af0de8f..69a9bec7a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,20 @@ +## [4.12.1](https://github.com/docsifyjs/docsify/compare/v4.12.0...v4.12.1) (2021-03-07) + + +### Bug Fixes + +* isExternal check with malformed URL + tests ([#1510](https://github.com/docsifyjs/docsify/issues/1510)) ([ff2a66f](https://github.com/docsifyjs/docsify/commit/ff2a66f12752471277fe81a64ad6c4b2c08111fe)), closes [#1477](https://github.com/docsifyjs/docsify/issues/1477) [#1126](https://github.com/docsifyjs/docsify/issues/1126) [#1489](https://github.com/docsifyjs/docsify/issues/1489) +* Replace ES6 usage for IE11 compatibility ([#1500](https://github.com/docsifyjs/docsify/issues/1500)) ([a0f61b2](https://github.com/docsifyjs/docsify/commit/a0f61b2af72cb888ea5b635021a5c9da6beb7ac5)) +* theme switcher in IE11 ([#1502](https://github.com/docsifyjs/docsify/issues/1502)) ([8cda078](https://github.com/docsifyjs/docsify/commit/8cda07891afeb1ea6e198d2a600f205357ab4b89)) +* Upgrade docsify from 4.11.6 to 4.12.0 ([#1518](https://github.com/docsifyjs/docsify/issues/1518)) ([47cd86c](https://github.com/docsifyjs/docsify/commit/47cd86c8f196a241fc23720e3addfe95d4c973cd)) + + +### Features + +* Support search when there is no title ([#1519](https://github.com/docsifyjs/docsify/issues/1519)) ([bc37268](https://github.com/docsifyjs/docsify/commit/bc3726853fb2d1f9241927ea0317970ab0c8a2f2)) + + + # [4.12.0](https://github.com/docsifyjs/docsify/compare/v4.11.6...v4.12.0) (2021-02-08) diff --git a/package-lock.json b/package-lock.json index 1d1af06d8..3a7c5a23f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "docsify", - "version": "4.12.0", + "version": "4.12.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index c71ab0fea..80c1b4974 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "docsify", - "version": "4.12.0", + "version": "4.12.1", "description": "A magical documentation generator.", "author": { "name": "qingwei-li", From 659d18bc69431ee252448c162f25f1e4546c221a Mon Sep 17 00:00:00 2001 From: sy-records <52o@qq52o.cn> Date: Sun, 7 Mar 2021 11:09:40 +0800 Subject: [PATCH 9/9] chore: Update CHANGELOG and Update test snapshots --- CHANGELOG.md | 6 ++++++ test/integration/__snapshots__/docs.test.js.snap | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 69a9bec7a..8322aa7eb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,12 @@ * Support search when there is no title ([#1519](https://github.com/docsifyjs/docsify/issues/1519)) ([bc37268](https://github.com/docsifyjs/docsify/commit/bc3726853fb2d1f9241927ea0317970ab0c8a2f2)) +### Chore + +- Fix missing carbon ([#1501](https://github.com/docsifyjs/docsify/issues/1501)) +- Change Gitter to Discord throughout project ([#1507](https://github.com/docsifyjs/docsify/issues/1507)) +- Add test cases on isExternal ([#1515](https://github.com/docsifyjs/docsify/issues/1515)) + # [4.12.0](https://github.com/docsifyjs/docsify/compare/v4.11.6...v4.12.0) (2021-02-08) diff --git a/test/integration/__snapshots__/docs.test.js.snap b/test/integration/__snapshots__/docs.test.js.snap index bdc5a9971..3c741042d 100644 --- a/test/integration/__snapshots__/docs.test.js.snap +++ b/test/integration/__snapshots__/docs.test.js.snap @@ -1,7 +1,7 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`Docs Site coverpage renders and is unchanged 1`] = ` -"

\\"logo\\"

docsify 4.12.0

+"

\\"logo\\"

docsify 4.12.1

A magical documentation site generator.

  • Simple and lightweight
  • No statically built html files
  • Multiple themes

GitHub Getting Started

"