61 Commits

Author SHA1 Message Date
Luffy 879f02e25e feat(navbar): add navbarPreservePath option (#2780) 2026-09-05 09:56:53 +08:00
Luffy 7898e1e5ac [release] 5.0.0 2026-07-23 11:45:26 +08:00
Luffy d7df230773 fix: preserve callouts when revisiting pages (#2757) 2026-07-22 10:32:07 +08:00
Luffy e6ab47cff0 fix(embed): strip front matter from included markdown (#2752) 2026-07-08 11:16:12 +08:00
Luffy cebb49fceb fix: improve cache handling and error recovery (#2744) 2026-06-14 16:12:53 +08:00
Bowl42 09e85d4c34 fix: exclude headings inside blockquotes from sidebar TOC (#2691)
Co-authored-by: Luffy <lufei@docsifyjs.org>
2026-05-15 16:21:49 +08:00
dependabot[bot] 8a8ef8546d chore: bump marked from 17.0.1 to 18.0.3 (#2723)
Co-authored-by: Luffy <52o@qq52o.cn>
2026-05-14 11:00:58 +08:00
Luffy 870881a9d3 fix: enhance embed token handling in paragraphs and table cells 2026-04-29 10:11:54 +08:00
Luffy b8f70321b9 fix: escape HTML in image, link, and media components (#2718) 2026-04-10 11:27:43 +08:00
Luffy f8ec7acb53 fix: normalizing language input and escaping HTML (#2716)
Reported-by: Nishanth <me@shunt.in>
2026-04-09 11:10:04 +08:00
Luffy c8f93ff3fc [release] 5.0.0-rc.4 2026-03-11 11:44:14 +08:00
Paul Hibbitts 🍁 37a2559110 docs: Add v5 upgrade docs (#2665)
Co-authored-by: Luffy <52o@qq52o.cn>
2026-01-15 10:23:56 +08:00
Jake e8117563ea feat: Fragment identifier full line ignore (#2626) 2025-11-24 10:47:19 +08:00
Luffy 5ed6b24dbf test: add unit test for table cell embedding functionality (#2629) 2025-11-20 16:43:56 +08:00
Luffy a8d144de00 refactor: improve blockquoteCompiler logic (#2624) 2025-11-15 10:29:57 +08:00
Jake 8b591404a5 test: improve file embed & code fragment tests (#2617) 2025-10-29 13:10:43 +08:00
Jake 47b0956d71 test: add test for file embed and code fragments (#2616) 2025-10-28 10:18:28 +08:00
Luffy 1ad5763216 [release] 5.0.0-rc.3 2025-09-05 12:24:11 +08:00
Luffy 400ecbc813 [release] 5.0.0-rc.2 2025-09-05 12:19:04 +08:00
John Hildenbiddle 2e59b0f50c feat: GitHub style callouts (#2487)
Co-authored-by: Koy Zhuang <koy@ko8e24.top>
Co-authored-by: Luffy <52o@qq52o.cn>
2025-09-01 12:53:59 +08:00
Luffy eeacfcce2a fix: update relative link handling (#2579)
* fix: update relative link handling

* fix: To have the relative path evaluated also if the link needs to be not compiled.
2025-08-30 11:25:39 +08:00
Luffy 22ac7e855d fix: enhance focus handling (#2595) 2025-08-21 16:12:56 +08:00
Luffy 5a49729afb docs: update sidebar link formatting (#2577) 2025-07-28 22:46:27 +08:00
Koy Zhuang a2f734f223 feat: support config helper multi keys if supported (#2571)
* update: support config helper multi keys

---------

Co-authored-by: Luffy <lufei@docsifyjs.org>
2025-07-22 12:24:06 +08:00
Luffy 8d41cbed7b [release] 5.0.0-rc.1 2025-05-27 10:36:20 +08:00
Luffy 2e587a22e4 chore: retire outdate multiple languages and update it test snap (#2546) 2025-05-06 17:08:57 +08:00
Luffy 42f25482fa feat(search): use dexie.js instead of localStorage (#2464) 2024-07-31 08:19:00 +08:00
Koy Zhuang 7cbd5322d0 fix: correct loadSider=false render structure issue (#2470) 2024-07-28 16:18:03 +08:00
Akshay Bhinge 1e9d2f0036 docs: Removal of flags for language choice drop-down (#2468) 2024-07-20 09:28:31 +08:00
John Hildenbiddle 77d93fae78 feat: v5 style overhaul (#2469)
Style updates:

- New "core" theme serves as base for all other themes (official and third-party)
- New CSS custom properties for simplified customization of "core" theme
  **Note:** List of available properties will be made available in documentation by embedding soruce CSS in docs after merge. Merge is required because embedded CSS needs to be in `main` branch. For now, see `_vars.css` and `_vars-advanced.css` for details.
- New theme "add-ons" modify core theme properties and/or add custom declarations as needed.
- New Prism.js theme support
- New configurable sidebar toggle design
- New typography defaults to system sans-serif and monospace fonts instead of relying on external web font.
- New "Core Dark" theme addon provide dark theme styles. Can optionally be applied based on operating system's light/dark setting using `@media` attribute on `<link>` element.
- New "Vue" theme addon. Closely replicated popular v4 theme while allowing for v5 enhancements.
- New CSS class names available for adding loading indicators, adding sidebar expand/collapse icons, adding sidebar group styles, clamping sidebar links to a single line with ellipses, and changing the sidebar toggle icon.
- New auto-generated gradient background for cover page (ensure gradient hue is > 50 degree apart, use OKLCH color if supported, randomize grandient angle, reduce brightness in dark mode)
- New button styles (basic, primary, secondary)
- New form element styles (text input, radio, checkbox, )
- New "callouts" (previously "important" and "tip" helpers)
- New default syntax highlighting theme (from [docsify-themeable](https://jhildenbiddle.github.io/docsify-themeable/))
- New auto-generated theme color shade and tint colors
- New auto-generated monochromatic color palette
- New form element styles (fields, legend, text input, text area, checkbox, radio, toggles, and select)
- New "headerless" tables
- New `kbd` styles
- New task list style
- New merged navbar styles (consistent with sidebar nav styles)
- New search plugin styles and keyboard shortcut indicators
- Add ability restore previously focused content element after hiding sidebar
- Add "focus trap" when sidebar is visible on mobile (accessibility)
- Add ability for sidebar links to wrap by default (previous single-line w/ ellipsis display available as CSS class on `<body>` option)
- Add sidebar `page-link`, `group`, and `group-title` CSS classes to sidebar markup.
- Add reduced motion media query to set all animation/transition timings to zero
- Update Google Font imports (use new variable vs older fixed width fonts)
- Update primary/secondary button order on coverpage (primary should be first)
- Fix missing merged navbar when loading at desktop resolution then resizing to mobile
- Fix inverted open/close sidebar visibility state at desktop/mobile resolutions
- Fix overflow setting to prevent clipping of element focus ring
- Fix safe area inset margins on mobile in landscape orientation
- Fix inverted "tip" and "warn" class names
- Fix scroll padding to prevent headers from touching top edge of viewport when scrolled to
- Remove Stylus dependency (now using only PostCSS)
- Remove legacy themes "Buble", "Dark", "Dolphin", and "Pure".

Documentation updates:

- New "UI Kit" page showcasing all elements styled by Docsify
- Update "Quick Start" page template
- Update "Adding pages" page with information on how to properly create sidebar group titles and navbar drop-down menus
- Update "Themes" page with theme and class toggles
- Update "Configuration" page with deprecation warnings for `themeColor` and `topMargin`
- Move "Edit Page" link to footer
- Remove [docsify-themeable](https://jhildenbiddle.github.io/docsify-themeable/) endorsement (currently not compatible with v5 and future is unknown)

Miscellaneous updates:

- New search plugin options: `insertBefore` and `insertAfter`
- Add PostCSS config file
- Update BrowserSync config (disable "ghost" mode)
- Update tests
- Fix Jest + Prettier 3 conflict
- Fix `getAndRemoveDocisfyIgnoreConfig` name type (now `Docisfy` => `Docsify`)
- Fix execution of sidebar-generating code when `hiddenSidebar` is `true`
- Remove `inBrowser` constant (SSR deprecated, so no longer needed)
2024-07-19 15:34:51 +00:00
John Hildenbiddle f5412dc7b0 chore: Update lint configuration (ESLint 9, Prettier 3) (#2438)
* Update linting configuration (eslint, prettier)

* Fix lint issues following eslint prettier update

* Change ESLint config to allow boolean coercion

* Switch to default import name per docs

* Fix suppression of error details

* Update JSDoc comments

* Update waiForFunctin to provide error details

---------

Co-authored-by: Koy Zhuang <koy@ko8e24.top>
2024-05-28 15:27:29 -05:00
John Hildenbiddle 4ae87bb18b build: v5 updates and refactors (#2428)
* Update JS build

- Change rollup build from API to config file
- Change output dir from lib to dist
- Update lib to dist path in related files
- Update dependencies
- Add banner comment to bundles
- Add unminified plugin bundles

* Update docs with v5 version lock and dist path

* Update docs to reference minified themes

* Clean up docs

* Update CSS build

- Change CSS build from API to CLI
- Change output dir from lib to dist
- Update lib to dist path in related files
- Update dependencies
- Add sourcemaps

* Update dependencies

* Clean up package.json and add keywords

* Fix rimraf globs on Windows

* Fix PostCSS CLI glob on Windows

* Update test-related dependencies

* Update emoji

* Add engines prop to package.json
2024-05-21 15:19:21 -05:00
Koy Zhuang e15ad0c7d5 feat: support relative path with target config. (#1751)
Co-authored-by: John Hildenbiddle <jhildenbiddle@users.noreply.github.com>
Co-authored-by: Joe Pea <joe@trusktr.io>
2024-04-28 11:08:58 +08:00
John Hildenbiddle bb902f8997 refactor: event modernization and optimization (#2404)
- Refactor methods names and functionality
- Replace scroll listeners with observers
- Replace Tweezer-based scrolling with native scroll methods
- Remove tweezer.js dependency
- Remove redundant method calls
- Rename $resetEvents to onNavigate
- Rename __scrollActiveSidebar to onRender
- Remove __getAndActive
- Remove __sticky
- Add IntersectionObserver mock to Jest environment

Also included:

- Add e2e test “ui” and “chromium” scripts
- Rename "jest" script to "test:jest"
- Remove unused SSR code

---------

Co-authored-by: Koy Zhuang <koy@ko8e24.top>
2024-04-21 07:44:14 -05:00
John Hildenbiddle 1c5a7013f1 Chore: Clean up server implementation and update test docs (#2316)
- Replace live-server with existing Browsersync dependency as web server
- Remove duplicate `index.html` file
- Add `build:html` script to generate `/docs/preview.html`
2023-12-11 15:00:33 -06:00
John Hildenbiddle e7414e0a73 Feat: Add aria attributes to sidebar toggle button and current page link (#2254) 2023-11-29 23:40:14 -06:00
John Hildenbiddle 50b84f74b2 feat: Add "Skip to main content" link and update nav behavior (#2253)
Co-authored-by: Joe Pea <trusktr@gmail.com>
Co-authored-by: Koy Zhuang <koy@ko8e24.top>
2023-11-30 13:11:21 +08:00
John Hildenbiddle da43bd7937 Fix: Accessibility roles and aria labels (#2304)
* Fix “main” role

* Fix primary navigation role and aria label

* Fix secondary navigation aria label

* Fix progress bar role and aria labels

* Fix cover page role and aria label

* Fix search role

* Fix search results aria labels

* Add search results status element

* Update snapshots with new roles and aria labels
2023-11-29 12:33:17 -06: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 eb3706c6c8 chore: remove unnecessary example tests 2023-06-29 19:13:48 -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
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
i544693 78aaa377fd chore: add changelog v4.13.0 2022-10-26 21:50:32 +08:00
i544693 73ea28df14 fix: fix test. 2022-10-26 21:27:14 +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
Xavi Lee fa14210e8e docs: update the name for "Simplified Chinese" (#1811)
* update the name for "Simplified Chinese"

* update the name for "Simplified Chinese"

* update the name for "Simplified Chinese"
2022-06-03 13:29:52 +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 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
John Jago 691c3e4048 test: update sidebar snapshot 2021-07-30 18:15:12 -05:00