81 Commits

Author SHA1 Message Date
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 7ba85136361c72839516900d91cca806fac94fee.

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

This reverts commit d52b476a387250740d934e8fd7df7ba274dd17a0.

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

This reverts commit 3f2dd467cf9c7a74d8c53c2ee52cc63837b00a3c.

* Specify codesandbox template and node version

* Update codesandbox config

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

This reverts commit e06fed49f0383c485e01f1758228849ad0085bc8.

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

This reverts commit 27d49521f61976dedcbbf210e1811839853e0e47.

* Update codesandbox config

* Revert "Update codesandbox config"

This reverts commit 5120dd23d45fbd4b2c893db33acbf7014e57c023.

* 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 2a58be69eb75a87b74d0408765e1d222282ac95b.

* Revert "Update lifecycle.js"

This reverts commit 67c5410b049237887811350f38e3f9bc8a2c78dc.

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

This reverts commit 631e9248786f87a5b2f7892fc73a53543744d288.

* Fix docsify-plugin-carbon error & ESLint errors

Co-authored-by: 沈唁 <52o@qq52o.cn>
2022-02-05 03:21:50 -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
i544693
e424a9d225 chore: update test snapshots. 2022-01-06 17:12:13 +08:00
Joe Pea
5e0f68caf0 convert Docsify and mixins to ES classes 2021-12-07 18:23:06 -08:00
John Jago
691c3e4048 test: update sidebar snapshot 2021-07-30 18:15:12 -05:00
luwol03
633f241547
added tests 2021-06-25 17:26:27 +02:00
sy-records
659d18bc69 chore: Update CHANGELOG and Update test snapshots 2021-03-07 11:09:40 +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
sy-records
8f3d8c9ac9 chore: add changelog 4.12.0 and update test snapshots 2021-02-08 09:31:35 +08: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
沈唁
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
John Hildenbiddle
46bad401c3 Update test snapshot 2021-02-04 18:59:34 -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
sy-records
ffa7c90dfc Fix Lint 2020-11-23 08:49:30 +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
51451a40f7 Remove BLANK_URL global 2020-11-11 16:57:22 -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 a2ebb2192ac73211a8924111d736df9574abf61b
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 58fbca00ebd12f636c213d386761df9ebfb2bd4c
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
a5a431f0c1 Fix base element reset 2020-11-06 19:24:23 -06:00
John Hildenbiddle
d9e491a9e3 Fix covepage test 2020-10-26 02:23:57 -05:00
John Hildenbiddle
b33d750e0b Remove SRC_PATH global variable 2020-10-26 02:18:01 -05:00
John Hildenbiddle
3af1cfa84e Add selector option to _logHTML 2020-10-26 02:08:51 -05:00
John Hildenbiddle
a9be6f20d2 Merge branch 'develop' into feat/vue-options 2020-10-25 23:10:02 -05:00
John Hildenbiddle
5ec225687b Fix basePath & update route URLs 2020-10-25 23:08:46 -05:00
John Hildenbiddle
f0a8d69eb8 Fix basePath update when config is function 2020-10-25 23:08:13 -05:00
John Hildenbiddle
8362ed01c8 Remove unnecessary globals 2020-10-25 23:05:16 -05:00
John Hildenbiddle
b6d54072b3 Fix basePath 2020-10-24 20:44:24 -05:00
John Hildenbiddle
febe7f8ee1 Remove global event listeners beforeEach 2020-10-24 20:05:12 -05:00
John Hildenbiddle
25084f88b5 Update jest/docsify side-effect cleanup 2020-10-23 13:09:55 -05:00
John Hildenbiddle
af7e71345b Change default startPath for tests & manual start 2020-10-23 13:08:59 -05:00
John Hildenbiddle
131aae520a Fix waitForText() timeout and reject messages 2020-10-23 13:07:10 -05:00
John Hildenbiddle
871e48f823 Update default waitForSelector value 2020-10-21 16:41:29 -05:00
John Hildenbiddle
2946c061a4 Update test 2020-10-21 14:02:56 -05:00
John Hildenbiddle
86dae610de Rename vueOptions to vueMountOptions 2020-10-21 13:14:07 -05:00
John Hildenbiddle
a2386e5a59 Add vueComponents support 2020-10-15 23:25:02 -05:00
沈唁
ee550d0c51
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 <jhildenbiddle@users.noreply.github.com>
2020-10-15 17:41:21 +08:00
Koy
c9d4f7abc9
fix: the sidebar links to another site. (#1336)
* fix : the sidebar links to another site
2020-10-15 09:13:35 +08:00
John Hildenbiddle
5fa79ebcdb Fix Vue content detection and global options
- Add detection of Vue HTML directives to trigger mounting
- Fix bug that processed markdown child nodes as global Vue instances even if vueGlobalOptions is not specified
- Fix bug that prevented passing vueGlobalOptions to global instances if `data()` prop did not exist
- Update Vue config check to test for existence of object keys instead of just the existence object
- Update tests
2020-10-14 19:11:54 -05:00
John Hildenbiddle
ecd053b25c Support functions in docsify configuration 2020-10-14 19:11:26 -05:00
沈唁
25bc9b7eb7
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
2020-10-14 12:39:56 +08:00
John Hildenbiddle
3a4da88dca Fix friendly message display 2020-10-07 15:39:22 -05:00
John Hildenbiddle
b135f8417d Add Vue 3 compatibility
- Update docs
- Update tests
- Add Vue 2 to docs site
- Add Vue 2 & 3 dependencies for tests
2020-10-07 13:13:03 -05:00