106 Commits

Author SHA1 Message Date
WangLiang/王良
a8f9fc1d5f
fix: genIndex error for search (#1933) 2023-01-03 15:46:50 +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
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
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
沈唁
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
John Hildenbiddle
06cbebfc0d
fix: Use legacy-compatible methods for IE11 (#1495) 2021-02-07 10:44:18 -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
沈唁
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
沈唁
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
沈唁
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
7f0c42eda5
Jest + Playwright Testing (#1276)
* Initial Jest+Playwright setup

* Fix eslint warnings

* Add placeholder for common options

* Fix load order of scriptURLs

* Add docsifyURL and waitForSelector options

* Add executeScript scenarios

* Enable firefox and webkit tests by default

* Prevent prettier from reformatting browsers list

* Update options and add JSDoc comments

* Initial commit

* Complete initial example tests

* Minor tweaks

* Change suite name

* Rename file

* Add npm script to run jest+playwright example test

* Clean up server properties

* Isolate e2e, integration, and unit test environments

- Setup projects for e2e, integration, and unit tests in Jest configuration
- Setup /tests/e2e/ tests for Jest+PlayWright
- Setup /tests/integration/ tests for Jest
- Setup /tests/unit/ tests for Jest
- Setup eslint for Jest and Jest+Playwright environments
- Move e2e configuration files into separate folder
- Update e2e example tests
- Update unit example tests
- Update HTML fixtures

* Update docsifyInit helper

- Add `debug` option
- Append `Markdown` suffix to markdown-related options
- Reorder options alphabetically

* Add jestPlaywright.debug() to e2e examples

* Removed need to pass page as arg to docsifyInit()

* Add VSCode debug configurations

* Change test server port from 8080 to 3001

* Clean up test names and expect() order

* Update npm scripts to ignore example tests

* Add CLI commands and resources section

* Add Jest unit test snapshot example

* Added Jest unit and e2e tests to Github workflows

* Add npm script to run Jest examples

Added for new devs who are exploring the examples, as the need for passing --testPathIgnorePatterns is not obvious. This flag is required because the example tests are excluded by default.

* Remove node 10.x and add 14.x from tests

Required for jest+playwright testitng

* Temporarily disable testPathIgnorePatterns for ci

* Temporarily remove node 14 from matrix

Cypress fails on node 14.x

* Alternate workflow setup for new test env

* Update workflow platforms and node versions

Also cleaning up naming

* Restoring original workflow names

* Remove Cypress tests

* Remove/Reset GitHub actions

* Restore/reset workflows

* Bump actions/checkout@v1 to v2

* Use playright GH action

* Update playwright GH action configuration

* Remove unnecessary steps and update checkout version

* Add install step

* Add --ignore-scripts flag

Linting does not require running scripts automatically executred after install.

* Swicth from ci to i for install

* Add new Build & Test workflow

* Add OS tests

* Wait for network idle for more reliable ready state

* Configure image snapshot testing and add example

* Remove example fixture file

* Adjust image snapshot threshold for local & CI tests

* Upload diff-output artifact

* Add failure() check to upload-artifact

* Bump image snapshot threshold for local & CI tests

* Set diffDirection

* Fix XHR caching in playwright tests

* Update image snapshot example and theshold

* Bump image snapshot threshold for local & CI tests

* Remove old workflows

* Bump image snapshot threshold for local & CI tests

* Bump image snapshot failureThreshold for local & CI tests

* Set failureThresholdType to percent

* Change image snapshot comparisonMethod to ssim

* Remove pixelMatch options (incompatible with ssim)

* Bump image snapshot failureThreshold

* Bump image snapshot failureThreshold

* Disable fast-fail to allow all checks to complete

* Rename workflow

* Disable fast-fail to allow all checks to complete

* Store pixel and ssim comparison configs

* Add link to image snapshot test

* Fix CI errors on Windows due to image size mismatch

* Attempt to fix macos e2e exit code 134 issue

* Update test.yml

* Update test.yml

* Update test.yml

* Fix --ci flag

* Set Jets to use --runInBand for macOS e2e

* Remove unnecessary macOS check

* Set image snapshot to runInProcess (macOS CI fix)

* Update test.yml

* Temporary failureThreshold change for debugging

* Upload os+node-specific diff artifacts

* Remove node version from diff artifact

* Revert "Remove node version from diff artifact"

This reverts commit 9cfcc4342bb22f18da30363a4c52758f13ba0cc9.

* Revert "Revert "Remove node version from diff artifact""

This reverts commit ad6c1891e48c70c9973a5c0d7b876b2d4621f3b9.

* Restoring failureThreshold after debugging

* Remove runInProcess option

* Revert "Remove runInProcess option"

This reverts commit 667ed6c870fc56f0349fc5eccc2cdeead3eff4ea.

* Add node-specific artifact uploads

* Set ssim mode to fast and restore runInProcess

* Set failureThreshold to 0.01

* Updating to playwright@next for webkit fix

* Restore optimal ssim configuration

* Testing pixel vs. ssim image comparison

* Move shared test setup to unit/int/e2e setups

* Refactor test server setup

* Replace live-server with browser-sync

* Update script for running local docs site

- Only init GA plugin on public site
- Only init Gitter plugin on public site
- Only init Matomo plugin on public site

NOTE: Large diff is a result of initial Prettier formatting. Actual change limited to last <script> block on page.

* Allow launching test server preview with --start

* Add integration tests and refactor unit + e2e

* Unify docsifyInit() and cleanup

- Create unified docsifyInit() for jest and playwright
- Move shared helpers to /tests/helpers
- Update tests
- Update globals

* Fixed webkit routes by specifying ContentType

* Update snapshot

* Update dependencies

* Update tests to use unified docsifyInit()

* Remove Cypress (old e2e test environment)

* Update tests to run (unit/integration/e2e)

- Add new integration tests (Jest)
- Remove old unit tests (mocha+jsdom)
- Remove old e2e tests (Cypress)

* Remove Cypress-related dependency

* Remove mocha+chai+jsdom (old unit/int test env)

* Rename testing directories and scripts

- Rename /tests/ directory to /test/
- Rename script/task names by removing “jest” identifier
- Remove “test:jest-examples” script

* - Configure test server for availability with all tests (previously e2e only)
- Create identical docsifyInit() tests using Jest (integration) and Playwright (e2e)
- Update docsifyInit() to convert relative URLs to absolute URLs to work in both JSDOM and Playwright
- Update docsifyInit() to append style- and js-related tags using createElement instead of insertAdjacentHTML
- Update paths in test files to use unified docsifyInit()
- Added option to docsifyInit() to enable/disable formatted HTML output to console
- Removed vue.css as default docsify theme from docsifyInit()
- Removed outdated files

* Reorganize test files

* Fix basePath option

* Replace do-mock-ajax with xhr-mock

- Allows mocking all XMLHttpRequests instead of just those initiated via /src/core/fetch/ajax.js
- Allows JSDOM tests to use /lib/docsify.js instead of /src/core/index.js (same as Playwright tests)
- Allows JSDOM tests to use /docs site as test content

* Added new waitFor helpers

* Clean up globals

- Import globals from various files instead of manually adding them to ensure they are availability in Jest and eslint configurations
- Add middleware to server configuration for serving virtual “_blank.html” file
- Add BLANK_URL
- Rename TEST_URL to TEST_HOST
- Removed ./test/fixtures/ directory (blank page now served via server.js middleware)
- Added page.goto(BLANK_URL) call to global Playwright beforeEach() setup

* Add try/catch for waitForFunction callback

* Move playwright config into jest.config.js

* Add runInBand option to tests for reliability

* Remove unnecessary XHR Mock teardown

* Add —runInBand to test script

* Merge develop

* Cleanup

- Relocate carbon plugin script with other scripts
- Update zh-cn docs URL to align with other translatins (GitHub, not jsdelivr)
- Add major version locks to URLs

* Removed fixed host value from docs

* Updated test after merge (docsify version change)

* Added startPath for manual instance

* Remove Node 10 from CI tests

* Remove Node 10 from CI lint tests
2020-10-05 14:10:30 -05:00
沈唁
8d17dcbe68
fix: cannot search list content (#1361) 2020-09-03 10:34:28 +08:00
沈唁
9351729634
fix: Cannot read property 'startsWith' of undefined (#1358)
* fix: Cannot read property 'startsWith' of undefined

* Update search.js

* update

* Update search.js
2020-08-28 09:05:47 +08:00
Vladimir Dementyev
d179dde1c7 feat(search): add pathNamespaces option
This option allows to dynamically choose the index path depending on the path prefixes in auto mode. Thus, different path namespace could avoid index intersection (e.g., when having multiple locales)
2020-07-24 11:43:06 +03:00
黄朝晖
78775b6ee7
fix: Search plugin: matched text is replaced with search text (#1298)
* Fix search plugin will replace matching text

* Fix bug that will replace a unexpected text

* Fix bug that will replace a unexpected text

* Optimized

Co-authored-by: 沈唁 <52o@qq52o.cn>
2020-07-24 10:22:54 +08:00
Vladimir Dementyev
9f4f79e0f7
fix typo (#1302) 2020-07-23 18:16:19 +08:00
沈唁
b869019900
fix: Fix search error when exist translations documents (#1300) 2020-07-22 15:01:13 +08:00
沈唁
3f03e78418
fix: search can not search the table header (#1256) 2020-07-01 08:36:06 +08:00
沈唁
785302602b
style: Get emoji from github api (#1188)
* style: Get emoji from github api and remove emoji for 404

* update all emojis use github

* fix url is not unicode

* Update index.html
2020-06-08 04:31:44 +08:00
沈唁
31010e4979
fix: search does not find the contents of the table (#1198)
* fix: search does not find the contents of the table

* refactor: add getTableData function
2020-06-07 14:07:28 +05:30
沈唁
e9dd2de384
fix: consistent location of search result
* fix 1098

* Update component.js

* Update component.js
2020-05-22 15:25:40 +05:30
Kumaravel Palanisamy
699172db37 Cursor pointer added for search clear button 2020-05-16 15:07:28 +05:30
沈唁
6e554f8ebd
fix: The search error after setting the ID in the title (#1159)
* Update search.js

* Update search.js

* Update search.js

* Update search.js
2020-05-14 17:18:17 +05:30
Sytone
b05949a161 Add front matter to dev page
Update embeded files documentation
Add example with front matter
Add various comments I used to understand code
Updated front matter to have installed flag
Added function to parse front matter
Added intercept to remove front matter for embed
2020-04-27 12:24:24 -07:00
Luffy
dcb0aaea99
fix: Inconsistent search and body rendering
* fix

* Update search.js

* Update search.js

* Update search.js

* Update search.js

* Update search.js
2020-04-19 19:42:55 +05:30
Anix
75c72e917b
chore: added new linter config (#1028)
* chore: added new linter config

* chore: linting fixes

* chore: refactore in linting config and minor linting fixes
2020-02-20 14:01:04 +05:30
Luffy
6184e50262
fix: searching table content 2020-02-07 23:39:46 +05:30
Moritz Schramm
4419611238 Add undefined check for postcontent in search plugin 2020-02-03 12:44:51 +05:30
Giulio Ambrogi
db97a1d22a Eslint fixes for v4x (#989)
* UPDATE .eslintrc

* UPDATE lint task

* FIX lint errors

* CLEANUP

* FIX no-eq-null warning

* FIX many jsdoc warnings

* FIX jsdoc issues

* FIX jsdoc warnings

* FIX jsdoc

* FIX eqeq and no-eq-null

* ADD lint to travis

* UPDATE test env for eslint
2019-12-30 22:01:46 +05:30
Anix
8d5787eabe
Merge pull request #960 from PicchiKevin/improve-accessibility
fix #945 - Improve accessibility
2019-12-02 14:40:05 +05:30
Kevin Picchi
229a63c2e8
Add :focus styling 2019-11-29 11:25:26 +00:00
Felix Angelov
d9ec246508
improve emoji support (#930) 2019-11-22 13:09:51 -06:00
Kevin Picchi
83f9b01852
Form elements must have labels 2019-11-12 16:55:32 +00:00
Gorgi Kosev
bc1d8e4bda add scoring and sort to search plugin 2019-04-23 16:29:30 +02:00
Anton Wilhelm
b93a667f24 provide plugin for matomo 2019-04-21 11:17:14 +02:00
spiritree
11ea1f8d12 fix: re-render gitalk when router changed 2019-02-25 09:38:56 +08:00
louislivi
140bf10377 fix: github assets url (#774) 2019-02-21 17:25:33 +08:00
程康
28beff80f7 feat(search-plugin): add namespace option (#706)
* feat(search-plugin): add namespace option

* docs(search-plugin): update doc for option namespace
2018-12-05 10:29:44 +08:00
程康
4db8cd6abf fix: IE10 compatibility (#691)
* fix: IE10 compatibility

* chore: use built-in helper fn
2018-11-12 10:22:14 +08:00
程康
4a23c4acf2 feat: Add hideOtherSidebarContent option (#661)
Allow user to configure whether or not to hide other sidebar content while showing searching results.

Related issue: https://github.com/docsifyjs/docsify/issues/535
2018-10-31 20:44:27 +08:00
John Hildenbiddle
63876c601d Fix: zoom-image target elements (#640)
- Ignore images outside of main content area (e.g. logo, sidenav icons, etc.)
- Ignore linked images (previous behavior broke linked images)

Fixes #520
2018-10-23 15:28:03 +08:00
程康
f6f4e32485 fix: Update getAllPath query selector (#653)
Closes https://github.com/docsifyjs/docsify/issues/614
2018-10-23 14:59:51 +08:00
Petr Joachim
cd09d91434 frontmatter: Move frontmatter content into vm.frontmatter (#551) 2018-06-29 21:21:32 +08:00
cinwell.li
8352a1e489
refactor: build config (#408)
* refactor: build config

* chore: fix conflict

* fix: 404 page path
2018-03-03 22:51:27 +08:00
qingwei.li
54ab4c9ff7 feat(fetch): add requestHeaders option, fixed #336 2018-02-11 22:22:06 +08:00