518 Commits

Author SHA1 Message Date
Koy Zhuang d27af3dd09 fix: filter null node first. (#1909) 2022-10-26 16:58:49 +08:00
Koy Zhuang 9b74744299 fix: fix search with no content. (#1878) 2022-09-17 19:01:35 +08:00
Koy Zhuang 9832805681 fix: fix docsify-ignore in seach title. (#1872) 2022-08-30 18:46:08 +08:00
Soc Sieng 3c9b3d9702 fix: Ignore emoji shorthand codes in URIs (#1847)
* fix: Ignore emoji shorthand codes in URIs

Fixes: #1823

* test: Add test for emoji in anchor body

* fix: Handle support for URIs used in additional contexts

Examples:

- Without explicit scheme (i.e. starting with `//`)
- In single and double quote strings
- Within unquoted HTML tag attributes
- In css `url()` values

Co-authored-by: John Hildenbiddle <jhildenbiddle@users.noreply.github.com>
2022-08-03 11:52:55 +08:00
Koy Zhuang 54cc5f939b fix: cornerExternalLinkTarget config. (#1814) 2022-06-04 23:16:52 +08:00
Roy Sommer 8cbc7c8073 Virtual Routes Support (#1799)
* add first test

* new VirtualRoutes mixin that handles routes. fetch tries to use VirtualRoutes. default config updated

* cover all basic use cases

* regex matching in routes

* covered all virtual routes tests

* added hack to fix config test on firefox

* removed formatting regex matches into string routes

* added support for "next" function

* added docs

* navigate now supports both hash and history routerModes

* waiting for networkidle in navigateToRoute helper

* promiseless implementation

* remove firefox workaround from catchPluginErrors test, since we no longer use promises

* updated docs

* updated docs for "alias" as well

* minor rephrasing

* removed non-legacy code from exact-match; updated navigateToRoute helper to infer router mode from page

* moved endsWith from router utils to general utils; added startsWith util; refactored makeExactMatcher to use both

* updated docs per feedback

* moved navigateToRoute helper into the virtual-routes test file

* moved navigateToRoute to top of file

* updated docs per pr comments
2022-05-23 14:03:33 -07:00
John Hildenbiddle 6f4f09bd7e docs: Update configuration options (#1773) 2022-03-18 10:52:29 -05:00
John Hildenbiddle 32c6b3804e Fix: ready/doneEach order with async afterEach (#1770) 2022-03-15 19:15:12 -05:00
John Hildenbiddle 63b2535a45 feat: Plugin error handling (#1742) 2022-03-15 00:18:50 -05:00
John Hildenbiddle 9bff31dff0 chore: Remove dompurify (#1490) 2022-03-08 07:45:23 -06:00
John Hildenbiddle ba5ee26f00 feat: Emoji build (#1766)
* Fix incorrect file name

* Improve build

- Display emoji API URL
- Display number of emoji entries retrieved from API
- Distinguish between creating and updating files
- Catch and display errors (gracefully fail for offline work)
- Add “DO NOT EDIT” comment to generated output

* Add emoji to automated build

* Remove emoji plugin from dev index.html
2022-03-08 16:22:10 +08:00
John Hildenbiddle 35002c92b7 feat: Native emoji w/ image-based fallbacks and improved parsing (#1746)
* Render native emoji with image fallback

Fix #779

* Deprecate emoji plugin

* Add emoji tests

* Remove console.log statement

* Fix emoji image alt attribute

* Set nativeEmoji to false by default (non-breaking)

* Fix parsing emoji in HTML comments and script tags

* Add nativeEmoji and update noEmoji details

* Add Emoji plugin deprecation notice

* Fix ESLint issues

* Create build:emoji task

- Auto-generate emoji data from GitHub API
- Auto-generate emoji markdown for website
- Add emoji page to navigation

* Fix rendering of GitHub emoji without unicode

* Adjust and match size of native and image emoji

* Update emoji test snapshot

* Update docs test snapshot

* Fix ci/codesandbox error

* Update native emoji font-stack

* Fix rendering of native multi-character emoji

* Kick GitHub Workflow

* Replace rollup’s uglify plugin with terser

* Switch “npm ci” instead of “npm i” for stability

* Change emoji data from default to named export

* Revert "Replace rollup’s uglify plugin with terser"

This reverts commit 7ba8513636.

* Revert "Switch “npm ci” instead of “npm i” for stability"

This reverts commit d52b476a38.

* Revert "Change emoji data from default to named export"

This reverts commit 3f2dd467cf.

* Specify codesandbox template and node version

* Update codesandbox config

* Revert "Revert "Replace rollup’s uglify plugin with terser""

This reverts commit e06fed49f0.

* Revert "Revert "Revert "Replace rollup’s uglify plugin with terser"""

This reverts commit 27d49521f6.

* Update codesandbox config

* Revert "Update codesandbox config"

This reverts commit 5120dd23d4.

* Fix codesandbox uglify error

* Emoji docs tweaks

* Restore and update emoji plugin code

* Restore and update emoji plugin docs

* Prettier updates

* Match lowercase shortcodes only

Co-authored-by: Koy Zhuang <369491420@qq.com>
2022-03-05 22:25:09 -06:00
John Hildenbiddle fa6df6d584 fix: Legacy bugs (styles, site plugin error, and dev server error) (#1743)
* Add try/catch w/ error message to plugin calls

* Update lifecycle.js

* Update lifecycle.js

* Fix docsify-plugin-carbon error

* Fix ESLint errors

* Simplify conditional JS loading

* Fix styles in legacy browser w/o CSS var support

* Fix gitignore paths

* Fix BrowserSync IE error

* Fix search field presentation in IE11

- Removed fixed height and allow element to size naturally via font-size and padding
- Remove default "x" rendered on IE input fields

* Revert "Update lifecycle.js"

This reverts commit 2a58be69eb.

* Revert "Update lifecycle.js"

This reverts commit 67c5410b04.

* Revert "Add try/catch w/ error message to plugin calls"

This reverts commit 631e924878.

* Fix docsify-plugin-carbon error & ESLint errors

Co-authored-by: 沈唁 <52o@qq52o.cn>
2022-02-05 03:21:50 -06:00
沈唁 8aee0744ec chore: sync emojis (#1745) 2022-02-04 11:53:26 +08:00
John Hildenbiddle 301b516961 fix: Coverpage when content > viewport height (#1744)
* fix: .gitignore paths
* fix: Coverpage when content > viewport height

fix #381
2022-02-03 16:03:34 -06:00
John Hildenbiddle c49c39a4a2 refactor: Update test environments and lint configuration (#1736)
* Update test environments and lint configuration

Update Jest (unit + integration) and Playwright (e2e) test environments. Includes stability improvements for e2e tests using newer, more stable methods per the Playwright docs.

- Update Jest 26 => 27
- Update Jest-related libs (babel parser)
- Update Playwright 1.8 => Playwright Test 1.18
- Update GitHub CI (action versions, job parallelization, and matrices)
- Update ESLint 5 => 8
- Update ESLint-related libs (parser, prettier, Jest, Playwright)
- Fix test failures on M1-based Macs
- Fix e2e stability issues by replacing PW $ method calls
- Fix ESLint errors
- Fix incorrect CI flag on Jest runs (-ci => --ci)
- Refactor e2e test runner from Jest to Playwright Test
- Refactor e2e test files for Playwright Test
- Refactor fix-lint script name to lint:fix for consistency
- Refactor npm scripts order for readability
- Remove unnecessary configs and libs
- Remove example image snapshots
2022-01-30 21:40:21 -06:00
ChoKaPeek 719dcbea5c fix: correctly fix missing +1, -1 (#1722) 2022-01-14 17:56:28 +08:00
暖风 33999774f1 Merge branch 'develop' into develop 2021-12-10 10:02:50 +08:00
Joe Pea 5e0f68caf0 convert Docsify and mixins to ES classes 2021-12-07 18:23:06 -08:00
暖风 f03eb796ad fix sidebar height style in Mobile Chrome 2021-12-06 10:11:01 +08:00
woshiguabi c3cdadc371 fix: Cannot read property 'tagName' of null (#1655)
Have a look at this issue #1154 .
https://codesandbox.io/s/loving-matsumoto-hp985?file=/index.html
Open devtools and click the *blank space* of svg(not path) will reproduce this issue.

`parentNode` may be `null`.
https://github.com/docsifyjs/docsify/blob/develop/src/core/router/history/html5.js#L25-L27

However, hash router has fixed this issue😜.
https://github.com/docsifyjs/docsify/blob/develop/src/core/router/history/hash.js#L47-L49

Co-authored-by: 沈唁 <52o@qq52o.cn>
2021-10-22 16:01:06 +08:00
luwol03 ec16e4a9d5 fix: allow also " inside of an embed 2021-06-22 14:31:45 +02:00
沈唁 37d9f0e121 fix: buble theme missing generic fallback font (#1568) 2021-05-09 08:28:55 +08:00
沈唁 c24f7f6f0b fix: Add escapeHtml for search (#1551)
Co-authored-by: Anix <anik220798@gmail.com>
2021-04-12 09:47:39 +08:00
沈唁 d6df2b85a9 fix: Cannot read property 'classList' of null (#1527)
* fix: Cannot read property 'classList' of null

* fix: Cannot read property classList of null

https://github.com/docsifyjs/docsify/pull/1527#issuecomment-793455105
2021-03-12 08:48:28 +08:00
沈唁 bc3726853f 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
2021-03-05 14:23:04 +08:00
Koy abda30d336 test(unit): add test cases on isExternal. (#1515)
* test(unit): add test cases on xss.
2021-02-26 19:23:03 +08:00
John Hildenbiddle ff2a66f127 fix: isExternal check with malformed URL + tests (#1510)
Fix #1477. Fix #1126. Follow-up to #1489.
2021-02-18 20:06:44 +08:00
John Hildenbiddle a0f61b2af7 fix: Replace ES6 usage for IE11 compatibility (#1500)
* Remove ES6 syntax for IE11 compatibility

* Replace unsupported methods (IE11)
2021-02-08 23:42:31 -06:00
John Hildenbiddle 06cbebfc0d fix: Use legacy-compatible methods for IE11 (#1495) 2021-02-07 10:44:18 -06:00
Ricardo Gladwell 759ffac992 fix: Unable to navigate on server without default index support (#1372)
* Fix: Cannot serve off `/.../index.html`

Docsify must be hosted on a server that supports a default directory
index (i.e. maps `/.../` -> `/.../index.html`).

Some platforms do not support this, however. For example, HTML apps
hosted on the popular game/software platform, Itch.io.

This change supports hosting Docsify off an explicit path file, such as
`/index.html`. It does this by:

 1. Adding handling for paths like `index.html#/blah`, and
 2. Normalising paths with fragments back to markdown paths

For example, `http://example.org/index.html#/blah` would be mapped to
`http://example.org/blah.md`.

This fixes:

https://github.com/docsifyjs/docsify/issues/427

* Add end-to-end test for index file hosting

* Add code comments for explicit file changes

* Add additional tests for index file hosting

* Add additional tests for index file hosting

* [wip] Attempt to switch tests to Jest

* Add e2e test for new Jest test framework

* Verify sidebar links use file hosting

* Fix: endsWith() not supported for IE11

* Refactor: utility method moved to utility file

* Fix IE11 error from use of String.includes()

Co-authored-by: John Hildenbiddle <jhildenbiddle@users.noreply.github.com>
2021-02-07 10:25:37 -06:00
John Hildenbiddle 14ce7f3d86 fix: Prevent loading remote content via URL hash (#1489)
* Prevent loading remote content via URL hash

Fixes #1477. Fixes #1126.

* Restore ability to execute remote content scripts

Co-authored-by: 沈唁 <52o@qq52o.cn>
Co-authored-by: Koy <koy@ko8e24.top>
2021-02-05 13:56:28 +08:00
沈唁 8968a744ce feat: search ignore diacritical marks (#1434)
* feat: search ignore diacritical marks

* Check if normalize is supported

* Update docs

* Fix escape

* remove escapeHtml

Co-authored-by: John Hildenbiddle <jhildenbiddle@users.noreply.github.com>
2021-02-05 13:40:26 +08:00
Yash Singh c7f4c7cf9b Fix font-size changing for code in headings (#1456)
Co-authored-by: Koy <koy@ko8e24.top>
Co-authored-by: Anix <anik220798@gmail.com>
Co-authored-by: 沈唁 <52o@qq52o.cn>
2021-02-04 22:51:22 -06:00
Matej Simek dcf5a644eb fix: sidebar active class and expand don't work as expect when use "space" in markdown filename (#1454)
* fix: decode href in sidebar (#1032)

* Create sidebar.test.js

Co-authored-by: 沈唁 <52o@qq52o.cn>
2020-12-20 12:49:36 +08:00
沈唁 76c5e685d7 fix: slugs are still broken when headings contain html (#1443) 2020-12-18 08:09:33 +08:00
沈唁 7c3bf98df8 fix: duplicate search content when /README or / exists in the sidebar (#1403)
* fix: duplicate search content when `/readme` or `/` exists in the sidebar

* Update

* add test

* Reset local storage before each e2e test

* Reset Playwright context instead of page

* Update playwright dependencies

Co-authored-by: John Hildenbiddle <john@hildenbiddle.com>
2020-11-28 16:35:43 +08:00
沈唁 90b67e2dc6 Merge branch 'develop' into feat/vue-options 2020-11-23 08:38:40 +08:00
沈唁 8ccc202251 fix: title error when sidebar link exists with html tag (#1404)
* fix: title error when sidebar link exists with image

* fix #1408

* add test

* Update
2020-11-23 06:23:36 +08:00
John Hildenbiddle 9a1935ac64 Add support for Vue shorthand directive syntax 2020-11-15 13:34:03 -06:00
John Hildenbiddle 727ee8fc6d Rename vueMountOptions to vueMounts 2020-11-11 16:24:50 -06:00
John Hildenbiddle 4e5dae7d41 Squashed commit of the following:
commit a2ebb2192a
Author: 沈唁 <52o@qq52o.cn>
Date:   Sun Nov 8 16:48:43 2020 +0800

    fix: search titles containing ignored characters (#1395)

    * fix: search titles containing ignored characters

    * fix

    * add default value

    * add test

    * fix test

    Co-authored-by: Koy <koy@ko8e24.top>

commit 58fbca00eb
Author: Snyk bot <snyk-bot@snyk.io>
Date:   Thu Nov 5 03:04:19 2020 +0200

    fix: packages/docsify-server-renderer/package.json & packages/docsify-server-renderer/package-lock.json to reduce vulnerabilities (#1418)

    The following vulnerabilities are fixed with an upgrade:
    - https://snyk.io/vuln/SNYK-JS-DOMPURIFY-1035544
2020-11-10 18:38:00 -06:00
沈唁 a2ebb2192a fix: search titles containing ignored characters (#1395)
* fix: search titles containing ignored characters

* fix

* add default value

* add test

* fix test

Co-authored-by: Koy <koy@ko8e24.top>
2020-11-08 16:48:43 +08:00
John Hildenbiddle a9be6f20d2 Merge branch 'develop' into feat/vue-options 2020-10-25 23:10:02 -05:00
John Hildenbiddle 6a5e84bf3c Update directive detection (data vs static) 2020-10-23 13:12:56 -05:00
John Hildenbiddle 86dae610de Rename vueOptions to vueMountOptions 2020-10-21 13:14:07 -05:00
John Hildenbiddle 8a56f7241f Fix directive detection 2020-10-18 18:35:24 -05:00
John Hildenbiddle 758538c162 Add <output>. Refactor <pre> and <code>. 2020-10-17 01:49:53 -05:00
John Hildenbiddle 6d152e2bec Refactor regular expression usage 2020-10-17 01:46:41 -05:00
John Hildenbiddle bc2e091937 Ignore el property in Vue configs for Vue v2 2020-10-16 00:06:42 -05:00