Commit Graph

94 Commits

Author SHA1 Message Date
Joe Pea d72dd287c8 WIP (this commit will be re-written): update use native Node ESM for server code, update config files to specifically use .cjs (those tools don't support Node ESM files yet), use a single eslintrc file, all test code uses ESM import/export syntax instead of require (WIP) 2020-11-16 00:15:14 -08:00
Joe Pea c354bceb92 WIP adding tests for SSR 2020-11-01 23:45:36 -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 9cfcc4342b.

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

This reverts commit ad6c1891e4.

* Restoring failureThreshold after debugging

* Remove runInProcess option

* Revert "Remove runInProcess option"

This reverts commit 667ed6c870.

* 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
qingwei.li 9755439670 fix(search): escape special characters for search, fixed #369 2018-02-11 22:22:06 +08:00
qingwei.li 864aa181a1 fix(search): custom clear button, fixed #271 2018-02-11 22:22:06 +08:00
qingwei.li 66c8fd501a fix: remove codesponsor 2017-12-13 10:29:53 +08:00
qingwei.li 0e693fcda2 chore: tweaks code 2017-11-30 09:43:25 +08:00
Leon Zhang 041b33e967 fix: disqus plugin issue (#318)
* fix issue disqus plugin issue

fix #317, disqus plugin make page refresh continuously.

* Update disqus.js
2017-11-30 09:42:02 +08:00
spiritree 9208e64939 feat: add gitalk plugin (#306) 2017-11-09 20:53:07 +08:00
qingwei.li 7510f75968 fix lint 2017-11-04 13:56:08 +08:00
qingwei.li fd7d4e0e4e feat: add disqus plugin, closed #123 2017-11-04 13:54:37 +08:00
cinwell.li fa772cfa94 fix: zoom image plugin issue, fixed #187 (#300) 2017-10-31 08:20:08 -05:00
qingwei.li ab682684ca fix: codesponsor style 2017-10-20 09:29:11 +08:00
LaySent 1b912272df feat: make whole search result clickable (#285) 2017-10-16 21:27:44 -05:00
Alexander Chibrikin 3476f6ff1f fix: duplicate results in search fixed #257 (#284) 2017-10-16 21:16:37 -05:00