562 Commits

Author SHA1 Message Date
Koy Zhuang
95901eb8a8
fix(search): clean markdown elements in search contents (#2457)
Co-authored-by: John Hildenbiddle <jhildenbiddle@users.noreply.github.com>
2024-09-21 19:45:05 +08:00
Koy Zhuang
87e43f157f
feat: support prism langs dependencies import validation (#2489)
As per the Prism for highlight requires the strict dependencies import order for languages.
When user add multi highlight support for much langs, it may put in wrong order.
A validation to make user aware the order for each langs' dependencies is in demand.
2024-09-16 10:42:50 +08:00
Koy Zhuang
5f80683369
chore: render code style clean and update (#2477) 2024-09-12 10:46:39 +08:00
Koy Zhuang
2eec7c4884
fix: sync the page title regarding the title config (#2478)
Co-authored-by: Luffy <52o@qq52o.cn>
2024-08-11 10:56:55 +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
Koy Zhuang
4bc5062fc1
fix: auto header config heading generate func (#2474) 2024-07-28 16:14:41 +08:00
Koy Zhuang
49f5c563a3
chore: upgrade marked from 12.0.2 to 13.0.2 (#2467) 2024-07-22 17:25:44 +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
Luffy
a539808761
ci: create crowdin action (#2437) 2024-05-30 09:37:22 +08: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
5febdfd7d0
chore: Update marked dependency (4 => 12) (#2439) 2024-05-23 22:15:25 -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
John Hildenbiddle
8ef9a3cd03
Fix: Vue text interpolation in code blocks. (#2430)
* Update Vue 3 depenency and docs. Remove Vue 2.

* Fix minor lint issue

* Remove Vue 2 reference

* Swap button positions

* Update Vue2 links

* Send HTML with _blank to avoid quirks mode

* Support Vue text interpolation in code blocks

Fix #1812
2024-05-19 11:49:33 -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
2d986feb34
fix: skip-to-content scroll behavior (#2401) 2024-04-17 14:58:00 +08:00
John Hildenbiddle
a3ab2be0b0
fix: prevent unnecessary themeColor deprecation notice (#2403) 2024-04-13 12:17:45 +08:00
Koy Zhuang
25e715b387
update: render Vue templates by default when import vue resources. (#2327)
* update: render vue by default.

---------

Co-authored-by: John Hildenbiddle <jhildenbiddle@users.noreply.github.com>
2023-12-22 11:23:07 +08:00
John Hildenbiddle
cf61192f9a
feat: Keyboard bindings (#2279)
Co-authored-by: Lu Fei <52o@qq52o.cn>
2023-12-05 08:09:52 +08:00
John Hildenbiddle
b8a5feaafd
Allow scrolling via keyboard in code blocks (#2264) 2023-11-29 23:45:57 -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
4d5bf5ac48
feat: Allow top nav to receive keyboard focus (#2269) 2023-11-30 13:23:30 +08: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
John Hildenbiddle
dac8e59bb7
Feat: Improved error handling and response status availability (#2303)
* Add response data to route object
* Display error status and description on content fetch error
* Fix issue where initial site render was incomplete on content fetch error
* Fix issue where empty markdown pages/routes were handled as 404 errors
* Fix incorrect `notFoundPage` default value
2023-11-17 07:27:09 -06:00
John Hildenbiddle
ae71c69e1b
Feat: Prevent focus on hidden sidebar (#2265)
Fix #2225
2023-11-16 10:47:44 -06:00
Susheel Thapa
2bbb65fdd1
chore: Fix typo in multiple file of docsify (#2284) 2023-10-20 09:24:35 +08:00
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