477 Commits

Author SHA1 Message Date
John Hildenbiddle
727ee8fc6d Rename vueMountOptions to vueMounts 2020-11-11 16:24:50 -06:00
John Hildenbiddle
4e5dae7d41 Squashed commit of the following:
commit a2ebb2192ac73211a8924111d736df9574abf61b
Author: 沈唁 <52o@qq52o.cn>
Date:   Sun Nov 8 16:48:43 2020 +0800

    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>

commit 58fbca00ebd12f636c213d386761df9ebfb2bd4c
Author: Snyk bot <snyk-bot@snyk.io>
Date:   Thu Nov 5 03:04:19 2020 +0200

    fix: packages/docsify-server-renderer/package.json & packages/docsify-server-renderer/package-lock.json to reduce vulnerabilities (#1418)

    The following vulnerabilities are fixed with an upgrade:
    - https://snyk.io/vuln/SNYK-JS-DOMPURIFY-1035544
2020-11-10 18:38:00 -06:00
John Hildenbiddle
a9be6f20d2 Merge branch 'develop' into feat/vue-options 2020-10-25 23:10:02 -05:00
John Hildenbiddle
6a5e84bf3c Update directive detection (data vs static) 2020-10-23 13:12:56 -05:00
John Hildenbiddle
86dae610de Rename vueOptions to vueMountOptions 2020-10-21 13:14:07 -05:00
John Hildenbiddle
8a56f7241f Fix directive detection 2020-10-18 18:35:24 -05:00
John Hildenbiddle
758538c162 Add <output>. Refactor <pre> and <code>. 2020-10-17 01:49:53 -05:00
John Hildenbiddle
6d152e2bec Refactor regular expression usage 2020-10-17 01:46:41 -05:00
John Hildenbiddle
bc2e091937 Ignore el property in Vue configs for Vue v2 2020-10-16 00:06:42 -05:00
John Hildenbiddle
a2386e5a59 Add vueComponents support 2020-10-15 23:25:02 -05:00
Koy
c9d4f7abc9
fix: the sidebar links to another site. (#1336)
* fix : the sidebar links to another site
2020-10-15 09:13:35 +08:00
John Hildenbiddle
5fa79ebcdb Fix Vue content detection and global options
- Add detection of Vue HTML directives to trigger mounting
- Fix bug that processed markdown child nodes as global Vue instances even if vueGlobalOptions is not specified
- Fix bug that prevented passing vueGlobalOptions to global instances if `data()` prop did not exist
- Update Vue config check to test for existence of object keys instead of just the existence object
- Update tests
2020-10-14 19:11:54 -05: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
cd8f2d3efc Fix vueGlobalOptions.data checks 2020-10-10 01:45:02 -05:00
John Hildenbiddle
35ad5c559b Add vueOptions and vueGlobalOptions
Fixed #752
2020-10-09 23:14:57 -05:00
John Hildenbiddle
0afbf96701
Fix eslint warnings (#1388) 2020-10-08 21:58:30 -05:00
John Hildenbiddle
b135f8417d Add Vue 3 compatibility
- Update docs
- Update tests
- Add Vue 2 to docs site
- Add Vue 2 & 3 dependencies for tests
2020-10-07 13:13:03 -05:00
John Hildenbiddle
78c2a9d7b8 Merge remote-tracking branch 'origin/develop' into fix-790
# Conflicts:
#	cypress/fixtures/tpl/docs.index.html
#	cypress/integration/sidebar/config.spec.js
#	docs/index.html
#	index.html
2020-10-05 14:52:41 -05:00
John Hildenbiddle
b45f444426
Merge branch 'develop' into fix/1383 2020-10-05 14:21:38 -05: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
John Hildenbiddle
04bf1ea5f4 Fix scroll event end value
Fixes #1383
2020-10-02 14:20:57 -05:00
沈唁
8d17dcbe68
fix: cannot search list content (#1361) 2020-09-03 10:34:28 +08:00
沈唁
4807e58cb9
fix: Cannot read property level of undefined (#1357)
Co-authored-by: Anix <anik220798@gmail.com>
2020-09-01 15:04:27 +05:30
Dominik Lubański
f35bf99d9c
fix: add missing argument for highlighting code (#1365) 2020-09-01 13:59:57 +05:30
沈唁
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
沈唁
2100fc318b
fix: sidebar title error (#1360)
* fix: sidebar title error

* Update sidebar.js
2020-08-27 07:43:07 +08:00
沈唁
ce316075e0
fix : add patch for {docsify-ignore} and {docsify-ignore-all} (#1351)
* revert: Convert {docsify-ignore} and {docsify-ignore-all} to HTML comments

This reverts commit 90d283d340502456a5d8495df596bb4a02ceb39b

* fix: patch for docsify-ignore

* fix test

* fix test
2020-08-22 19:24:56 +08:00
Snyk bot
086c2859ad
[Snyk] Security upgrade marked from 0.7.0 to 1.1.1 (#1313)
* fix: package.json & package-lock.json to reduce vulnerabilities

The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-MARKED-584281

* fix: fix CompileError

* fix: embed files error

Co-authored-by: Koy <369491420@qq.com>
Co-authored-by: 沈唁 <52o@qq52o.cn>
2020-08-14 07:53:23 +08:00
Vladimir Dementyev
2bceabcb8e
fix: fallback page should use path not file location (#1301)
* fix: fallback page should use path not file location

When resolving fallback page for the path (`fallbackLanguages` option), we should consider the original path, not the file location (which could be different when aliases are used).

* fix: use router.getFile to resolve fallback url

* specs: add cypress test for fallbackLanguages

Co-authored-by: 沈唁 <52o@qq52o.cn>
2020-08-04 14:47:03 +05:30
Mattia Astorino
90d283d340
fix: convert {docsify-ignore} and {docsify-ignore-all} to HTML comments (#1318)
* breaking: convert {docsify-ignore} and {docsify-ignore-all} to HTML comments

Close https://github.com/docsifyjs/docsify/issues/441

* chore: add ignore and ignore-all unit tests

Co-authored-by: 沈唁 <52o@qq52o.cn>
2020-07-30 18:11:04 +08:00
沈唁
952f4c921b
fix: the uncaught typeerror when el is null (#1308) 2020-07-30 17:58:45 +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
沈唁
6f9baab616
style: Update index.html and scroll.js (#1292) 2020-07-20 08:54:54 +08:00
沈唁
667496b85d
feat: Add title to sidebar links (#1286) 2020-07-19 09:00:23 +08:00
John Hildenbiddle
105fbbf692 Updates per request
- When Vue.js is detected, markdown `<script>` is not executed when executeScript is `false` (matches previous behavior)
- Minor code tweaks that do not affect functonality
2020-07-05 20:15:06 -05:00
John Hildenbiddle
f385e21a1b Fix Vue compatibility (fix #790)
- Fix inability to instantiate reactive Vue components by 1) handling each child of #main instead of #main itself and 2)  skipping elements that are already Vue instances
- Retain previous behavior of processing basic Vue rendering without the need for a markdown <script> tag.
- Update documentation and add live Vue examples
- Update `index.html` files to include Vue.js and Vuep (CSS+JS)
2020-07-05 03:15:20 -05:00
沈唁
3f03e78418
fix: search can not search the table header (#1256) 2020-07-01 08:36:06 +08:00
沈唁
34d918f997
fix: after setting the background image, the button is obscured (#1234)
* fix: after setting the background image, the button is obscured

* Update _coverpage.styl
2020-06-26 15:46:26 +08:00
Mohammed Sahl
0663cb3ab1
Fix: fixed onlycover flag in mobile (#1243) 2020-06-26 15:29:45 +08:00
Anix
714ef29afe
feat: added html sanitizer for remote rendering (#1128)
Co-authored-by: Joe Pea <joe@trusktr.io>
2020-06-17 23:55:59 +05:30
Mohammed Sahl
0bf03f5810
fix: cover overlapping sidebar by removing z-index
* Fix cover overlapping sidebar

* Fix transition of cover page

* Revmove transition property from .cover

* Remove z-index attribute from _coverpage.styl
2020-06-15 22:43:31 +05:30
Joe Pea
809fda9591
Merge branch 'develop' into allow-config-function 2020-06-07 14:10:57 -07: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
Joe Pea
dca22f3ced simplify import 2020-06-07 11:27:38 -07:00
Joe Pea
79fe3d5c5e remove some unused code and accept eslint changes 2020-06-07 11:24:54 -07:00
Joe Pea
88033b639e remove the DOCSIFY global made by Rollup, and move Docsify into a separate file where we can import it from tests while leaving the entry point for the bundle without any exports so that Rollup will not create a global variable from it 2020-06-07 11:09:06 -07: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