534 Commits

Author SHA1 Message Date
Joe Pea
7bbf13d9bd
Ensure code format (#2138)
* chore: add missing Vue support for Vercel builds

* refactor: move some functions and module-level state into classes as private methods and properties to start to encapsulate Docsify

Also some small tweaks:

- move initGlobalAPI out of Docsify.js to start to encapsulate Docsify
- move ajax to utils folder
- fix some type definitions and improve content in some JSDoc comments
- use concise class field syntax
- consolidate duplicate docsify-ignore comment removal code

This handles a task in [Simplify and modernize Docsify](https://github.com/docsifyjs/docsify/issues/2104), as well as works towards [Encapsulating Docsify](https://github.com/docsifyjs/docsify/issues/2135).

* chore: add prettier code format check to our lint script, and add a prettier script for manually formatting the whole code base

* chore: update issue/pr templates

* chore: apply our format to the whole code base


---------

Co-authored-by: Koy <koy@ko8e24.top>
Co-authored-by: i544693 <369491420@qq.com>
2023-08-09 17:53:30 +08:00
Joe Pea
b621e0e4e7 chore: update miscellaneous parts of the source to reasonably modern language alternatives, remove polyfills, improve some JSDoc comments, remove traces of IE
BREAKING: In a minority of cases syntax updates may break apps running in very old browsers (such as Internet Explorer), or apps that build Docsify in a custom way with old build tools. To upgrade, build Docsify for older browsers in a custom way, or update existing build tools to handle newer syntax.

DEPRECATED: `$docsify.themeColor` is deprecated and will be eventually removed, use a `--theme-color` CSS variable in your style sheet.
2023-07-03 01:50:00 -07:00
Joe Pea
d34fef3635 Merge branch 'develop' into es-modules 2023-07-02 12:17:19 -07:00
Joe Pea
103dde845f Merge branch 'develop' into delete-ssr
* develop:
  feat: add google analytics gtag.js plugin (#1702)
  chore: bump conventional-changelog-cli from 2.2.2 to 3.0.0 (#2085)
2023-06-29 19:55:12 -07:00
Joe Pea
62d756c447 refactor: convert to ES Modules and remove traces of CommonJS except in Rollup config because some dependencies are still CommonJS
BREAKING: The new project layout might break in some tooling setups.

We've added an exports field to `package.json` to specify where
statements like `import ... from 'docsify'` will import from, and left
the `main` and `unpkg` fields as-is for backwards compatibility with the
global <script> import method. Most people who use a non-module
`<script>` tag to import Docsify will not notice a difference. Anyone
else who is importing Docsify into a specilized build setup using
`import` statements has a chance of being broken, so we've marked this
as BREAKING.
2023-06-29 19:02:08 -07:00
Eko Zhan
29f3c82faa
feat: add google analytics gtag.js plugin (#1702)
Co-authored-by: Joe Pea <joe@trusktr.io>
Co-authored-by: 沈唁 <52o@qq52o.cn>
Co-authored-by: John Hildenbiddle <jhildenbiddle@users.noreply.github.com>
Co-authored-by: zhanzhao <zhanzhao@megvii.com>
2023-06-27 10:54:16 +08:00
Joe Pea
8d5d20480a refactor: delete the experimental and incomplete SSR feature
BREAKING: SSR removed

Anyone depending on SSR will need to stay on an old Docsify version for
now, move forward without SSR, or maintain SSR against a fork of updated
Docsify. We have ideas on a better way to implement SSR, but these ideas
have not been implemented yet.
2023-06-25 12:03:44 -07:00
James Henry
4b9b464cbf
chore: migrate from lerna bootstrap to npm workspaces (#2094)
* chore: migrate from lerna bootstrap to npm workspaces

---------

Co-authored-by: 沈唁 <52o@qq52o.cn>
Co-authored-by: Joe Pea <joe@trusktr.io>
2023-06-24 14:35:13 -07:00
沈唁
7f13ba0f98
fix: enhancement of isExternal (#2093) 2023-06-18 11:51:32 +08:00
Julien Wajsberg
3fbb9b299a
Fix the end condition for the embed content handling loop (#1824)
Co-authored-by: Koy Zhuang <koy@ko8e24.top>
2023-05-18 14:13:56 +08:00
Bálint József Jánvári
f5ad3d2711
Update marked to 4.2.12 (#1993)
* Update marked to 4.2.12


---------

Co-authored-by: Koy Zhuang <koy@ko8e24.top>
2023-04-22 18:07:21 +08:00
Koy ['kɔɪ]
f4f21a3f74
fix: fix id with pure number. (#2021) 2023-04-22 17:53:17 +08:00
Koy ['kɔɪ]
d6ef57b85b
update: refine docisfy-ignore. (#2003) 2023-03-29 14:05:51 +08:00
Joe Pea
ef6905b53a
fix: fix cross-origin links in history router mode (#1967) 2023-01-23 01:54:30 +08:00
WangLiang/王良
a8f9fc1d5f
fix: genIndex error for search (#1933) 2023-01-03 15:46:50 +08:00
沈唁
02b6d12870
style: change table tr style for dark theme (#1928) 2022-11-25 08:53:52 +08:00
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 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
沈唁
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