Compare commits

...
79 Commits
Author SHA1 Message Date
anikethsaha 3cd03d480d chore: add changelog 4.10.2 2019-12-17 03:20:41 +05:30
anikethsaha 9a90b9b927 [build] 4.10.2 2019-12-17 03:19:55 +05:30
AnixandGitHub 75919f1235 Merge pull request #979 from docsifyjs/opencollective-fix
fix: changed the opencollective cli to light
2019-12-17 03:05:08 +05:30
anikethsaha b0b3de0a66 chore: changed the opencollective cli to light 2019-12-17 02:48:47 +05:30
anikethsaha 589a5732d3 chore: add changelog 4.10.0 2019-12-16 23:00:23 +05:30
anikethsaha b62b213435 [build] 4.10.0 2019-12-16 22:58:51 +05:30
AnixandGitHub a59328719b Merge pull request #977 from docsifyjs/prerelease
Prerelease changes
2019-12-16 22:39:16 +05:30
anikethsaha 4a8f2c5bfa chore: fixed the npm script and added css build file 2019-12-16 22:32:32 +05:30
AnixandGitHub 79f8211a45 Merge pull request #965 from docsifyjs/develop
Develop -> Master : tracking changes PR
2019-12-16 19:29:09 +05:30
AnixandGitHub 68327c5c9a Merge branch 'master' into develop 2019-12-12 20:32:28 +05:30
AnixandGitHub 1622578045 Merge pull request #974 from Koooooo-7/develop
[fix]#972 when 'logo' is set, 'name' is not set correctly inside the 'alt' as same as without 'logo' set.
2019-12-11 13:54:31 +05:30
koooooo-7 c403318ac6 [fix] when 'logo' is set, 'name' is not set correctly inside the 'alt' field. 2019-12-07 21:55:42 +08:00
AnixandGitHub 8bf4b06d3a Merge pull request #952 from xmedeko/buble-patch-2
buble theme: fix strong font-weight increased to 600 (onto master branch)
2019-12-03 20:18:21 +05:30
AnixandGitHub 378d7bb492 Merge pull request #917 from vkallore/develop
Fix #914
2019-12-02 18:39:32 +05:30
Vaishak Kallore 11762cbb73 Merged upstream develop and resolved the conflict 2019-12-02 18:04:59 +05:30
AnixandGitHub 8f496d84ce Merge pull request #969 from PicchiKevin/fix-markdown-bracket
Fix: #967 token position markdown
2019-12-02 16:43:33 +05:30
AnixandGitHub 98525c4a2d Merge pull request #842 from Koooooo-7/develop
fix #835 :Link target of repo's GitHub Corner add new independent config `cornerExternalLinkTarget`.
2019-12-02 16:35:29 +05:30
Mt e61410a757 add new config cornerExternalLinkTarget for the corner link target
rm   CNAME

add CNAME

add repo test

back to the origin index.html

fix: the Git corner displayed bigger when the externalLinkTarget = ''

[update] a new independent config for corner link target attribute.

[update doc] add the `cornerExternalLinkTarget` config in the doc.
2019-12-02 18:10:42 +08:00
Kevin Picchi 745e5ffa54 Fix #967 token position markdown 2019-12-02 09:47:17 +00:00
AnixandGitHub 8d5787eabe Merge pull request #960 from PicchiKevin/improve-accessibility
fix #945 - Improve accessibility
2019-12-02 14:40:05 +05:30
AnixandGitHub dd9e5f98e0 Merge pull request #870 from gaurav-nelson/patch-1
Fix #753
2019-12-02 12:45:57 +05:30
Kevin Picchi 229a63c2e8 Add :focus styling 2019-11-29 11:25:26 +00:00
AnixandGitHub 5b575441e9 Merge pull request #956 from docsifyjs/fix-sponsor-button
Fixed FUNDING.yml
2019-11-23 21:36:34 +05:30
AnixandGitHub 0bd4f05034 Update FUNDING.yml 2019-11-23 21:33:54 +05:30
AnixandGitHub cc3f30b582 Merge pull request #954 from docsifyjs/sponser-button
chore: added sponsor button
2019-11-23 21:30:16 +05:30
AnixandGitHub 64e460aaed Merge pull request #953 from docsifyjs/revert-950-master-npm-audit-fixes
Revert "[master branch ] fix: package security alerts"
2019-11-23 21:29:32 +05:30
AnixandGitHub 52fcc6f081 chore: added sponsor button 2019-11-23 13:21:24 +05:30
AnixandGitHub 3f53b7166e Revert "[master branch ] fix: package security alerts" 2019-11-23 02:46:45 +05:30
Felix AngelovandGitHub d9ec246508 improve emoji support (#930) 2019-11-22 13:09:51 -06:00
Ondrej Medek 7b871006e6 buble theme: fix strong font-weight increased to 600 2019-11-22 08:05:24 +01:00
AnixandGitHub 5a6289d504 Merge pull request #950 from anikethsaha/master-npm-audit-fixes
fix: package security alerts
2019-11-22 02:54:37 +05:30
anikethsaha a62b037bec fix: fixed security alert for chokidar(update dep) 2019-11-22 02:24:30 +05:30
anikethsaha d7d5c8f302 fix: security alerts of cssnano 2019-11-22 01:43:27 +05:30
anikethsaha f5f15619f1 fix: package security alerts 2019-11-22 01:17:18 +05:30
AnixandGitHub 236c9a29b4 Merge pull request #948 from styfle/patch-2
[Develop] : Add deployment instructions for ZEIT Now
2019-11-22 00:08:21 +05:30
AnixandGitHub b95f8d2884 Merge pull request #931 from styfle/patch-1
Add deployment instructions for ZEIT Now
2019-11-21 20:00:08 +05:30
StevenandGitHub 79a54b462b Add deployment instructions for ZEIT Now 2019-11-21 09:27:50 -05:00
StevenandGitHub 6b8773fbb0 Move instructions up 2019-11-21 09:13:36 -05:00
AnixandGitHub 8ea7e32e14 Merge pull request #943 from rizdaprasetya/patch-1
fix netlify-redirects-file typo on docs and improve wording
2019-11-21 19:12:05 +05:30
Kevin Picchi 83f9b01852 Form elements must have labels 2019-11-12 16:55:32 +00:00
Kevin Picchi 8454889f63 Buttons must have discernible text 2019-11-12 16:55:00 +00:00
Rizda Dwi PrasetyaandGitHub 77c3fc8bcd fix and improve netlify redirects file typo 2019-11-11 16:12:04 +07:00
Andrey ChalkinandFelix Angelov 615205cfdb fix: npm audit issues (#934) 2019-10-16 09:20:54 -04:00
StevenandGitHub c6fde53f91 Add deployment instructions for ZEIT Now 2019-10-04 11:44:49 -04:00
Vaishak Kallore 4769018e26 Added support for rel='noopener' 2019-09-06 11:13:40 +05:30
Gaurav NelsonandGitHub 84384eeab3 Fixes documentation for page routes
Fixes #753
2019-06-19 13:34:26 +10:00
James HegedusandGitHub 1d3246a26f Fix typo in docs #869
Fix typo
2019-06-18 09:02:10 +10:00
Parkjunwoo 8ea4865c84 Fix typo 2019-06-18 00:30:43 +09:00
Mt 12d80f64c9 fix:Link target of repo's GitHub Corner according to externalLinkTarget config. #835 2019-05-10 10:26:01 +08:00
Anton WilhelmandAnton Wilhelm 2fb5a1128e chore: add changelog 4.9.4 2019-05-05 18:50:31 +02:00
Anton WilhelmandAnton Wilhelm c78f2117e3 [build] 4.9.4 next 2019-05-05 18:50:31 +02:00
Anton WilhelmandAnton Wilhelm e8dc5229de Do not commit any files in lib during release 2019-05-05 18:50:31 +02:00
Anton WilhelmandAnton Wilhelm 7a838d1b24 Cleanup gitignore 2019-05-05 18:50:31 +02:00
Anton WilhelmandAnton Wilhelm f8f46108dd Add matomo plugin to build script 2019-05-05 18:50:31 +02:00
Anton WilhelmandAnton Wilhelm 669f243a7a Remove lib files from version control 2019-05-05 18:50:31 +02:00
Rodrigo Bermudez SchettinoandAnton Wilhelm 11bbd4cd27 Readme: Improve outdated links to showcase
Link to Showcase in awesome-docsify.
2019-05-05 18:50:31 +02:00
Gorgi KosevandAnton Wilhelm 76825a7b55 add scoring and sort to search plugin 2019-05-05 18:50:31 +02:00
Alexandru CamboseandAnton Wilhelm 72763398c3 Updated to remove all headers under it 2019-05-05 18:50:31 +02:00
Alexandru CamboseandAnton Wilhelm fd4a42c3b5 Added filtering in sidebar for ignoreSubHeading 2019-05-05 18:50:31 +02:00
Anton WilhelmandAnton Wilhelm 25e3cac66a chore: add changelog 4.9.2 2019-05-05 18:50:31 +02:00
Anton WilhelmandAnton Wilhelm 6162eb234d [build] 4.9.2 next 2019-05-05 18:50:31 +02:00
Anton WilhelmandAnton Wilhelm cb3f4865e2 Keep themes directory which is required for npm run dev 2019-05-05 18:50:31 +02:00
Anton WilhelmandAnton Wilhelm 80d5ac061f add execute access to release.sh 2019-05-05 18:50:31 +02:00
Anton WilhelmandAnton Wilhelm 0515b4d925 Add link to develop branch preview on netlify 2019-05-05 18:50:31 +02:00
Anton WilhelmandAnton Wilhelm b95c254f81 Remove lib directory from version control 2019-05-05 18:50:31 +02:00
Anton WilhelmandAnton Wilhelm 5a75bf6cb6 provide plugin for matomo 2019-05-05 18:50:31 +02:00
Anton WilhelmandAnton Wilhelm 2671d189fb align dev index.html to production 2019-05-05 18:50:31 +02:00
Anton Wilhelm 6e6b4e1b66 Minor update of bug template 2019-05-05 18:50:31 +02:00
Anton Wilhelm 676f84cffa chore: add changelog 4.9.4 2019-05-05 18:41:18 +02:00
Anton Wilhelm 7bdcadc7d7 [build] 4.9.4 next 2019-05-05 18:41:17 +02:00
Anton Wilhelm 5bd24fb83c Do not commit any files in lib during release 2019-05-05 18:35:34 +02:00
Anton Wilhelm 76cc0f672b Cleanup gitignore 2019-05-05 18:12:20 +02:00
Anton Wilhelm 3f50381090 Add matomo plugin to build script 2019-05-05 18:12:13 +02:00
Anton Wilhelm b847c20cab Remove lib files from version control 2019-05-05 13:29:56 +02:00
James HegedusandGitHub ce829b24d6 Merge pull request #827 from rodrigobdz/link-showcase
Fix #826: Link directly to showcase in readme and website
2019-04-26 17:01:22 +10:00
Rodrigo Bermudez Schettino 1ce53cf9ec Readme: Improve outdated links to showcase
Link to Showcase in awesome-docsify.
2019-04-26 11:25:17 +08:00
Gorgi KosevandAnton Wilhelm bc1d8e4bda add scoring and sort to search plugin 2019-04-23 16:29:30 +02:00
Alexandru CamboseandAnton Wilhelm 78f5564a30 Updated to remove all headers under it 2019-04-23 07:08:29 +02:00
Alexandru CamboseandAnton Wilhelm 6cc069cb9f Added filtering in sidebar for ignoreSubHeading 2019-04-23 07:08:29 +02:00
53 changed files with 7976 additions and 11307 deletions
+2
View File
@@ -0,0 +1,2 @@
open_collective: docsify
+6 -4
View File
@@ -1,7 +1,9 @@
*.log
.DS_Store
/themes/*
!.gitkeep
.idea
node_modules
/lib/
.idea
themes/
lib/
# exceptions
!.gitkeep
+2 -1
View File
@@ -1,3 +1,4 @@
{
"prettier.eslintIntegration": true
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true
}
+21
View File
@@ -1,3 +1,24 @@
## [4.10.2](https://github.com/docsifyjs/docsify/compare/v4.10.0...v4.10.2) (2019-12-16)
# [4.10.0](https://github.com/docsifyjs/docsify/compare/v4.9.4...v4.10.0) (2019-12-16)
### Bug Fixes
* fixed security alert for chokidar(update dep) ([a62b037](https://github.com/docsifyjs/docsify/commit/a62b037becb36941c11c8eab6e4d83df8db85af3))
* npm audit issues ([#934](https://github.com/docsifyjs/docsify/issues/934)) ([615205c](https://github.com/docsifyjs/docsify/commit/615205cfdb7aea8f37a1ec5dd928105eeef56357))
* package security alerts ([f5f1561](https://github.com/docsifyjs/docsify/commit/f5f15619f1a239d6ce12a2f83ad8817352a3352b))
* security alerts of cssnano ([d7d5c8f](https://github.com/docsifyjs/docsify/commit/d7d5c8f302d7c18dbb32e982202a07b73badf6f6))
<a name="4.9.4"></a>
## [4.9.4](https://github.com/docsifyjs/docsify/compare/v4.9.2...v4.9.4) (2019-05-05)
<a name="4.9.2"></a>
## [4.9.2](https://github.com/docsifyjs/docsify/compare/v4.9.1...v4.9.2) (2019-04-21)
+1 -1
View File
@@ -55,7 +55,7 @@ Look at [this tutorial](https://docsify.js.org/#/quickstart)
These projects are using docsify to generate their sites. Pull requests welcome :blush:
Move to [awesome-docsify](https://github.com/docsifyjs/awesome-docsify)
Move to [awesome-docsify](https://github.com/docsifyjs/awesome-docsify#showcase)
## Similar projects
+2 -1
View File
@@ -2,7 +2,7 @@ const rollup = require('rollup')
const buble = require('rollup-plugin-buble')
const commonjs = require('rollup-plugin-commonjs')
const nodeResolve = require('rollup-plugin-node-resolve')
const uglify = require('rollup-plugin-uglify')
const { uglify } = require('rollup-plugin-uglify')
const replace = require('rollup-plugin-replace')
const isProd = process.env.NODE_ENV === 'production'
const version = process.env.VERSION || require('../package.json').version
@@ -55,6 +55,7 @@ const buildAllPlugin = function () {
var plugins = [
{name: 'search', input: 'search/index.js'},
{name: 'ga', input: 'ga.js'},
{name: 'matomo', input: 'matomo.js'},
{name: 'emoji', input: 'emoji.js'},
{name: 'external-script', input: 'external-script.js'},
{name: 'front-matter', input: 'front-matter/index.js'},
+41
View File
@@ -0,0 +1,41 @@
const fs = require('fs')
const path = require('path')
const {spawn} = require('child_process')
const args = process.argv.slice(2)
fs.readdir(path.join(__dirname, '../src/themes'), (err, files) => {
if (err) {
console.log('err', err)
return
}
files.map(async (file) => {
if (/\.styl/g.test(file)) {
var stylusCMD;
const stylusBin = ['node_modules', 'stylus', 'bin', 'stylus'].join(path.sep)
var cmdargs = [
stylusBin,
`src/themes/${file}`,
'-u',
'autoprefixer-stylus'
]
cmdargs = cmdargs.concat(args)
stylusCMD = spawn('node', cmdargs, { shell: true })
stylusCMD.stdout.on('data', (data) => {
console.log(`[Stylus Build ] stdout: ${data}`);
});
stylusCMD.stderr.on('data', (data) => {
console.error(`[Stylus Build ] stderr: ${data}`);
});
stylusCMD.on('close', (code) => {
console.log(`[Stylus Build ] child process exited with code ${code}`);
});
} else {
return
}
})
})
+3 -2
View File
@@ -12,7 +12,9 @@ echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
echo "Releasing $VERSION ..."
npm run test
# Removing test script as non - availibity of tests. Will Add it once tests are completed
# npm run test
# build
VERSION=$VERSION npm run build
@@ -29,7 +31,6 @@ if [[ $REPLY =~ ^[Yy]$ ]]; then
# commit
git add -A
git add -f lib/ -A
git commit -m "[build] $VERSION $RELEASE_TAG"
npm --no-git-tag-version version $VERSION --message "[release] $VERSION $RELEASE_TAG"
+1 -1
View File
@@ -21,7 +21,7 @@ See the [Quick start](quickstart.md) guide for more details.
## Examples
Check out the [Showcase](https://github.com/docsifyjs/docsify/#showcase) to see docsify in use.
Check out the [Showcase](https://github.com/docsifyjs/awesome-docsify#showcase) to see docsify in use.
## Donate
+1 -1
View File
@@ -1,6 +1,6 @@
![logo](_media/icon.svg)
# docsify <small>4.9.2</small>
# docsify <small>4.10.2</small>
> A magical documentation site generator.
+27 -1
View File
@@ -397,7 +397,7 @@ window.$docsify = {
- type: `String`
- default: `_blank`
Target to open external links. Default `'_blank'` (new window/tab)
Target to open external links inside the markdown. Default `'_blank'` (new window/tab)
```js
window.$docsify = {
@@ -405,6 +405,32 @@ window.$docsify = {
};
```
## cornerExternalLinkTarget
- type:`String`
- default:`_blank`
Target to open external link at the top right corner. Default `'_blank'` (new window/tab)
```js
window.$docsify = {
cornerExternalLinkTarget: '_self' // default: '_blank'
};
```
## externalLinkRel
- type: `String`
- default: `noopener`
Default `'noopener'` (no opener) prevents the newly opened external page (when [externalLinkTarget](#externallinktarget) is `'_blank'`) from having the ability to control our page. No `rel` is set when its not `'_blank'`.
```js
window.$docsify = {
externalLinkTarget: '' // default: 'noopener'
};
```
## routerMode
- type: `String`
+8 -3
View File
@@ -15,7 +15,7 @@ It is recommended that you save your files to the `./docs` subfolder of the `mas
![github pages](_images/deploy-github-pages.png)
!> You can also save files in the root directory and select `master branch`.
You'll need to place a `.nojekyll` file in the deploy location (such as `/docs` or the gh-pages branch
You'll need to place a `.nojekyll` file in the deploy location (such as `/docs` or the gh-pages branch)
## GitLab Pages
@@ -82,12 +82,18 @@ server {
### HTML5 router
When using the HTML5 router, you need to set up redirect rules that redirect all requests to your `index.html`, it's pretty simple when you're using Netlify, populate a `\redirects` file in the docs directory and you're all set:
When using the HTML5 router, you need to set up redirect rules that redirect all requests to your `index.html`, it's pretty simple when you're using Netlify, create a file named `_redirects` in the docs directory, add this snippet to the file and you're all set:
```sh
/* /index.html 200
```
## ZEIT Now
1. Install [Now CLI](https://zeit.co/download), `npm i -g now`
2. Change directory to your docsify website, for example `cd docs`
3. Deploy with a single command, `now`
## AWS Amplify
1. Set the routerMode in the Docsify project `index.html` to *history* mode.
@@ -128,4 +134,3 @@ frontend:
|----------------|----------------|---------------|
| /<*>.md | /<*>.md | 200 (Rewrite) |
| /<*> | /index.html | 200 (Rewrite) |
+3 -3
View File
@@ -18,9 +18,9 @@ Matching routes
```text
docs/README.md => http://domain.com
docs/guide.md => http://domain.com/guide
docs/zh-cn/README.md => http://domain.com/zh-cn/
docs/zh-cn/guide.md => http://domain.com/zh-cn/guide
docs/guide.md => http://domain.com/#/guide
docs/zh-cn/README.md => http://domain.com/#/zh-cn/
docs/zh-cn/guide.md => http://domain.com/#/zh-cn/guide
```
## Sidebar
-5111
View File
File diff suppressed because it is too large Load Diff
-1
View File
File diff suppressed because one or more lines are too long
-54
View File
@@ -1,54 +0,0 @@
(function () {
var fixedPath = location.href.replace('/-/', '/#/');
if (fixedPath !== location.href) {
location.href = fixedPath;
}
function install(hook, vm) {
var dom = Docsify.dom;
var disqus = vm.config.disqus;
if (!disqus) {
throw Error('$docsify.disqus is required')
}
hook.init(function (_) {
var script = dom.create('script');
script.async = true;
script.src = "https://" + disqus + ".disqus.com/embed.js";
script.setAttribute('data-timestamp', Number(new Date()));
dom.appendTo(dom.body, script);
});
hook.mounted(function (_) {
var div = dom.create('div');
div.id = 'disqus_thread';
var main = dom.getNode('#main');
div.style = "width: " + (main.clientWidth) + "px; margin: 0 auto 20px;";
dom.appendTo(dom.find('.content'), div);
// eslint-disable-next-line
window.disqus_config = function() {
this.page.url = location.origin + '/-' + vm.route.path;
this.page.identifier = vm.route.path;
this.page.title = document.title;
};
});
hook.doneEach(function (_) {
if (typeof window.DISQUS !== 'undefined') {
window.DISQUS.reset({
reload: true,
config: function () {
this.page.url = location.origin + '/-' + vm.route.path;
this.page.identifier = vm.route.path;
this.page.title = document.title;
}
});
}
});
}
$docsify.plugins = [].concat(install, $docsify.plugins);
}());
-1
View File
@@ -1 +0,0 @@
!function(){var i=location.href.replace("/-/","/#/");i!==location.href&&(location.href=i),$docsify.plugins=[].concat(function(i,o){var n=Docsify.dom,e=o.config.disqus;if(!e)throw Error("$docsify.disqus is required");i.init(function(i){var t=n.create("script");t.async=!0,t.src="https://"+e+".disqus.com/embed.js",t.setAttribute("data-timestamp",Number(new Date)),n.appendTo(n.body,t)}),i.mounted(function(i){var t=n.create("div");t.id="disqus_thread";var e=n.getNode("#main");t.style="width: "+e.clientWidth+"px; margin: 0 auto 20px;",n.appendTo(n.find(".content"),t),window.disqus_config=function(){this.page.url=location.origin+"/-"+o.route.path,this.page.identifier=o.route.path,this.page.title=document.title}}),i.doneEach(function(i){void 0!==window.DISQUS&&window.DISQUS.reset({reload:!0,config:function(){this.page.url=location.origin+"/-"+o.route.path,this.page.identifier=o.route.path,this.page.title=document.title}})})},$docsify.plugins)}();
-903
View File
@@ -1,903 +0,0 @@
(function () {
var AllGithubEmoji = [
'+1',
'100',
'1234',
'8ball',
'a',
'ab',
'abc',
'abcd',
'accept',
'aerial_tramway',
'airplane',
'alarm_clock',
'alien',
'ambulance',
'anchor',
'angel',
'anger',
'angry',
'anguished',
'ant',
'apple',
'aquarius',
'aries',
'arrow_backward',
'arrow_double_down',
'arrow_double_up',
'arrow_down',
'arrow_down_small',
'arrow_forward',
'arrow_heading_down',
'arrow_heading_up',
'arrow_left',
'arrow_lower_left',
'arrow_lower_right',
'arrow_right',
'arrow_right_hook',
'arrow_up',
'arrow_up_down',
'arrow_up_small',
'arrow_upper_left',
'arrow_upper_right',
'arrows_clockwise',
'arrows_counterclockwise',
'art',
'articulated_lorry',
'astonished',
'athletic_shoe',
'atm',
'b',
'baby',
'baby_bottle',
'baby_chick',
'baby_symbol',
'back',
'baggage_claim',
'balloon',
'ballot_box_with_check',
'bamboo',
'banana',
'bangbang',
'bank',
'bar_chart',
'barber',
'baseball',
'basketball',
'bath',
'bathtub',
'battery',
'bear',
'bee',
'beer',
'beers',
'beetle',
'beginner',
'bell',
'bento',
'bicyclist',
'bike',
'bikini',
'bird',
'birthday',
'black_circle',
'black_joker',
'black_large_square',
'black_medium_small_square',
'black_medium_square',
'black_nib',
'black_small_square',
'black_square_button',
'blossom',
'blowfish',
'blue_book',
'blue_car',
'blue_heart',
'blush',
'boar',
'boat',
'bomb',
'book',
'bookmark',
'bookmark_tabs',
'books',
'boom',
'boot',
'bouquet',
'bow',
'bowling',
'bowtie',
'boy',
'bread',
'bride_with_veil',
'bridge_at_night',
'briefcase',
'broken_heart',
'bug',
'bulb',
'bullettrain_front',
'bullettrain_side',
'bus',
'busstop',
'bust_in_silhouette',
'busts_in_silhouette',
'cactus',
'cake',
'calendar',
'calling',
'camel',
'camera',
'cancer',
'candy',
'capital_abcd',
'capricorn',
'car',
'card_index',
'carousel_horse',
'cat',
'cat2',
'cd',
'chart',
'chart_with_downwards_trend',
'chart_with_upwards_trend',
'checkered_flag',
'cherries',
'cherry_blossom',
'chestnut',
'chicken',
'children_crossing',
'chocolate_bar',
'christmas_tree',
'church',
'cinema',
'circus_tent',
'city_sunrise',
'city_sunset',
'cl',
'clap',
'clapper',
'clipboard',
'clock1',
'clock10',
'clock1030',
'clock11',
'clock1130',
'clock12',
'clock1230',
'clock130',
'clock2',
'clock230',
'clock3',
'clock330',
'clock4',
'clock430',
'clock5',
'clock530',
'clock6',
'clock630',
'clock7',
'clock730',
'clock8',
'clock830',
'clock9',
'clock930',
'closed_book',
'closed_lock_with_key',
'closed_umbrella',
'cloud',
'clubs',
'cn',
'cocktail',
'coffee',
'cold_sweat',
'collision',
'computer',
'confetti_ball',
'confounded',
'confused',
'congratulations',
'construction',
'construction_worker',
'convenience_store',
'cookie',
'cool',
'cop',
'copyright',
'corn',
'couple',
'couple_with_heart',
'couplekiss',
'cow',
'cow2',
'credit_card',
'crescent_moon',
'crocodile',
'crossed_flags',
'crown',
'cry',
'crying_cat_face',
'crystal_ball',
'cupid',
'curly_loop',
'currency_exchange',
'curry',
'custard',
'customs',
'cyclone',
'dancer',
'dancers',
'dango',
'dart',
'dash',
'date',
'de',
'deciduous_tree',
'department_store',
'diamond_shape_with_a_dot_inside',
'diamonds',
'disappointed',
'disappointed_relieved',
'dizzy',
'dizzy_face',
'do_not_litter',
'dog',
'dog2',
'dollar',
'dolls',
'dolphin',
'door',
'doughnut',
'dragon',
'dragon_face',
'dress',
'dromedary_camel',
'droplet',
'dvd',
'e-mail',
'ear',
'ear_of_rice',
'earth_africa',
'earth_americas',
'earth_asia',
'egg',
'eggplant',
'eight',
'eight_pointed_black_star',
'eight_spoked_asterisk',
'electric_plug',
'elephant',
'email',
'end',
'envelope',
'envelope_with_arrow',
'es',
'euro',
'european_castle',
'european_post_office',
'evergreen_tree',
'exclamation',
'expressionless',
'eyeglasses',
'eyes',
'facepunch',
'factory',
'fallen_leaf',
'family',
'fast_forward',
'fax',
'fearful',
'feelsgood',
'feet',
'ferris_wheel',
'file_folder',
'finnadie',
'fire',
'fire_engine',
'fireworks',
'first_quarter_moon',
'first_quarter_moon_with_face',
'fish',
'fish_cake',
'fishing_pole_and_fish',
'fist',
'five',
'flags',
'flashlight',
'flipper',
'floppy_disk',
'flower_playing_cards',
'flushed',
'foggy',
'football',
'footprints',
'fork_and_knife',
'fountain',
'four',
'four_leaf_clover',
'fr',
'free',
'fried_shrimp',
'fries',
'frog',
'frowning',
'fu',
'fuelpump',
'full_moon',
'full_moon_with_face',
'game_die',
'gb',
'gem',
'gemini',
'ghost',
'gift',
'gift_heart',
'girl',
'globe_with_meridians',
'goat',
'goberserk',
'godmode',
'golf',
'grapes',
'green_apple',
'green_book',
'green_heart',
'grey_exclamation',
'grey_question',
'grimacing',
'grin',
'grinning',
'guardsman',
'guitar',
'gun',
'haircut',
'hamburger',
'hammer',
'hamster',
'hand',
'handbag',
'hankey',
'hash',
'hatched_chick',
'hatching_chick',
'headphones',
'hear_no_evil',
'heart',
'heart_decoration',
'heart_eyes',
'heart_eyes_cat',
'heartbeat',
'heartpulse',
'hearts',
'heavy_check_mark',
'heavy_division_sign',
'heavy_dollar_sign',
'heavy_exclamation_mark',
'heavy_minus_sign',
'heavy_multiplication_x',
'heavy_plus_sign',
'helicopter',
'herb',
'hibiscus',
'high_brightness',
'high_heel',
'hocho',
'honey_pot',
'honeybee',
'horse',
'horse_racing',
'hospital',
'hotel',
'hotsprings',
'hourglass',
'hourglass_flowing_sand',
'house',
'house_with_garden',
'hurtrealbad',
'hushed',
'ice_cream',
'icecream',
'id',
'ideograph_advantage',
'imp',
'inbox_tray',
'incoming_envelope',
'information_desk_person',
'information_source',
'innocent',
'interrobang',
'iphone',
'it',
'izakaya_lantern',
'jack_o_lantern',
'japan',
'japanese_castle',
'japanese_goblin',
'japanese_ogre',
'jeans',
'joy',
'joy_cat',
'jp',
'key',
'keycap_ten',
'kimono',
'kiss',
'kissing',
'kissing_cat',
'kissing_closed_eyes',
'kissing_heart',
'kissing_smiling_eyes',
'koala',
'koko',
'kr',
'lantern',
'large_blue_circle',
'large_blue_diamond',
'large_orange_diamond',
'last_quarter_moon',
'last_quarter_moon_with_face',
'laughing',
'leaves',
'ledger',
'left_luggage',
'left_right_arrow',
'leftwards_arrow_with_hook',
'lemon',
'leo',
'leopard',
'libra',
'light_rail',
'link',
'lips',
'lipstick',
'lock',
'lock_with_ink_pen',
'lollipop',
'loop',
'loud_sound',
'loudspeaker',
'love_hotel',
'love_letter',
'low_brightness',
'm',
'mag',
'mag_right',
'mahjong',
'mailbox',
'mailbox_closed',
'mailbox_with_mail',
'mailbox_with_no_mail',
'man',
'man_with_gua_pi_mao',
'man_with_turban',
'mans_shoe',
'maple_leaf',
'mask',
'massage',
'meat_on_bone',
'mega',
'melon',
'memo',
'mens',
'metal',
'metro',
'microphone',
'microscope',
'milky_way',
'minibus',
'minidisc',
'mobile_phone_off',
'money_with_wings',
'moneybag',
'monkey',
'monkey_face',
'monorail',
'moon',
'mortar_board',
'mount_fuji',
'mountain_bicyclist',
'mountain_cableway',
'mountain_railway',
'mouse',
'mouse2',
'movie_camera',
'moyai',
'muscle',
'mushroom',
'musical_keyboard',
'musical_note',
'musical_score',
'mute',
'nail_care',
'name_badge',
'neckbeard',
'necktie',
'negative_squared_cross_mark',
'neutral_face',
'new',
'new_moon',
'new_moon_with_face',
'newspaper',
'ng',
'night_with_stars',
'nine',
'no_bell',
'no_bicycles',
'no_entry',
'no_entry_sign',
'no_good',
'no_mobile_phones',
'no_mouth',
'no_pedestrians',
'no_smoking',
'non-potable_water',
'nose',
'notebook',
'notebook_with_decorative_cover',
'notes',
'nut_and_bolt',
'o',
'o2',
'ocean',
'octocat',
'octopus',
'oden',
'office',
'ok',
'ok_hand',
'ok_woman',
'older_man',
'older_woman',
'on',
'oncoming_automobile',
'oncoming_bus',
'oncoming_police_car',
'oncoming_taxi',
'one',
'open_book',
'open_file_folder',
'open_hands',
'open_mouth',
'ophiuchus',
'orange_book',
'outbox_tray',
'ox',
'package',
'page_facing_up',
'page_with_curl',
'pager',
'palm_tree',
'panda_face',
'paperclip',
'parking',
'part_alternation_mark',
'partly_sunny',
'passport_control',
'paw_prints',
'peach',
'pear',
'pencil',
'pencil2',
'penguin',
'pensive',
'performing_arts',
'persevere',
'person_frowning',
'person_with_blond_hair',
'person_with_pouting_face',
'phone',
'pig',
'pig2',
'pig_nose',
'pill',
'pineapple',
'pisces',
'pizza',
'point_down',
'point_left',
'point_right',
'point_up',
'point_up_2',
'police_car',
'poodle',
'poop',
'post_office',
'postal_horn',
'postbox',
'potable_water',
'pouch',
'poultry_leg',
'pound',
'pouting_cat',
'pray',
'princess',
'punch',
'purple_heart',
'purse',
'pushpin',
'put_litter_in_its_place',
'question',
'rabbit',
'rabbit2',
'racehorse',
'radio',
'radio_button',
'rage',
'rage1',
'rage2',
'rage3',
'rage4',
'railway_car',
'rainbow',
'raised_hand',
'raised_hands',
'raising_hand',
'ram',
'ramen',
'rat',
'recycle',
'red_car',
'red_circle',
'registered',
'relaxed',
'relieved',
'repeat',
'repeat_one',
'restroom',
'revolving_hearts',
'rewind',
'ribbon',
'rice',
'rice_ball',
'rice_cracker',
'rice_scene',
'ring',
'rocket',
'roller_coaster',
'rooster',
'rose',
'rotating_light',
'round_pushpin',
'rowboat',
'ru',
'rugby_football',
'runner',
'running',
'running_shirt_with_sash',
'sa',
'sagittarius',
'sailboat',
'sake',
'sandal',
'santa',
'satellite',
'satisfied',
'saxophone',
'school',
'school_satchel',
'scissors',
'scorpius',
'scream',
'scream_cat',
'scroll',
'seat',
'secret',
'see_no_evil',
'seedling',
'seven',
'shaved_ice',
'sheep',
'shell',
'ship',
'shipit',
'shirt',
'shit',
'shoe',
'shower',
'signal_strength',
'six',
'six_pointed_star',
'ski',
'skull',
'sleeping',
'sleepy',
'slot_machine',
'small_blue_diamond',
'small_orange_diamond',
'small_red_triangle',
'small_red_triangle_down',
'smile',
'smile_cat',
'smiley',
'smiley_cat',
'smiling_imp',
'smirk',
'smirk_cat',
'smoking',
'snail',
'snake',
'snowboarder',
'snowflake',
'snowman',
'sob',
'soccer',
'soon',
'sos',
'sound',
'space_invader',
'spades',
'spaghetti',
'sparkle',
'sparkler',
'sparkles',
'sparkling_heart',
'speak_no_evil',
'speaker',
'speech_balloon',
'speedboat',
'squirrel',
'star',
'star2',
'stars',
'station',
'statue_of_liberty',
'steam_locomotive',
'stew',
'straight_ruler',
'strawberry',
'stuck_out_tongue',
'stuck_out_tongue_closed_eyes',
'stuck_out_tongue_winking_eye',
'sun_with_face',
'sunflower',
'sunglasses',
'sunny',
'sunrise',
'sunrise_over_mountains',
'surfer',
'sushi',
'suspect',
'suspension_railway',
'sweat',
'sweat_drops',
'sweat_smile',
'sweet_potato',
'swimmer',
'symbols',
'syringe',
'tada',
'tanabata_tree',
'tangerine',
'taurus',
'taxi',
'tea',
'telephone',
'telephone_receiver',
'telescope',
'tennis',
'tent',
'thought_balloon',
'three',
'thumbsdown',
'thumbsup',
'ticket',
'tiger',
'tiger2',
'tired_face',
'tm',
'toilet',
'tokyo_tower',
'tomato',
'tongue',
'top',
'tophat',
'tractor',
'traffic_light',
'train',
'train2',
'tram',
'triangular_flag_on_post',
'triangular_ruler',
'trident',
'triumph',
'trolleybus',
'trollface',
'trophy',
'tropical_drink',
'tropical_fish',
'truck',
'trumpet',
'tshirt',
'tulip',
'turtle',
'tv',
'twisted_rightwards_arrows',
'two',
'two_hearts',
'two_men_holding_hands',
'two_women_holding_hands',
'u5272',
'u5408',
'u55b6',
'u6307',
'u6708',
'u6709',
'u6e80',
'u7121',
'u7533',
'u7981',
'u7a7a',
'uk',
'umbrella',
'unamused',
'underage',
'unlock',
'up',
'us',
'v',
'vertical_traffic_light',
'vhs',
'vibration_mode',
'video_camera',
'video_game',
'violin',
'virgo',
'volcano',
'vs',
'walking',
'waning_crescent_moon',
'waning_gibbous_moon',
'warning',
'watch',
'water_buffalo',
'watermelon',
'wave',
'wavy_dash',
'waxing_crescent_moon',
'waxing_gibbous_moon',
'wc',
'weary',
'wedding',
'whale',
'whale2',
'wheelchair',
'white_check_mark',
'white_circle',
'white_flower',
'white_large_square',
'white_medium_small_square',
'white_medium_square',
'white_small_square',
'white_square_button',
'wind_chime',
'wine_glass',
'wink',
'wolf',
'woman',
'womans_clothes',
'womans_hat',
'womens',
'worried',
'wrench',
'x',
'yellow_heart',
'yen',
'yum',
'zap',
'zero',
'zzz'
];
// Emoji from All-Github-Emoji-Icons
// https://github.com/scotch-io/All-Github-Emoji-Icons
window.emojify = function (match, $1) {
return AllGithubEmoji.indexOf($1) === -1 ?
match :
'<img class="emoji" src="https://github.githubassets.com/images/icons/emoji/' +
$1 +
'.png" alt="' +
$1 +
'" />'
};
}());
-1
View File
File diff suppressed because one or more lines are too long
-28
View File
@@ -1,28 +0,0 @@
(function () {
function handleExternalScript() {
var container = Docsify.dom.getNode('#main');
var scripts = Docsify.dom.findAll(container, 'script');
for (var i = scripts.length; i--;) {
var script = scripts[i];
if (script && script.src) {
var newScript = document.createElement('script');
Array.prototype.slice.call(script.attributes).forEach(function (attribute) {
newScript[attribute.name] = attribute.value;
});
script.parentNode.insertBefore(newScript, script);
script.parentNode.removeChild(script);
}
}
}
var install = function (hook) {
hook.doneEach(handleExternalScript);
};
window.$docsify.plugins = [].concat(install, window.$docsify.plugins);
}());
-1
View File
@@ -1 +0,0 @@
!function(){function e(){for(var o=Docsify.dom.getNode("#main"),e=Docsify.dom.findAll(o,"script"),n=e.length;n--;){var i=e[n];if(i&&i.src){var t=document.createElement("script");Array.prototype.slice.call(i.attributes).forEach(function(o){t[o.name]=o.value}),i.parentNode.insertBefore(t,i),i.parentNode.removeChild(i)}}}window.$docsify.plugins=[].concat(function(o){o.doneEach(e)},window.$docsify.plugins)}();
-496
View File
@@ -1,496 +0,0 @@
(function () {
/**
* Fork https://github.com/egoist/docute/blob/master/src/utils/yaml.js
*/
/* eslint-disable */
/*
YAML parser for Javascript
Author: Diogo Costa
This program is released under the MIT License as follows:
Copyright (c) 2011 Diogo Costa (costa.h4evr@gmail.com)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
/**
* @name YAML
* @namespace
*/
var errors = [];
var reference_blocks = [];
var processing_time = 0;
var regex$1 = {
regLevel: new RegExp('^([\\s\\-]+)'),
invalidLine: new RegExp('^\\-\\-\\-|^\\.\\.\\.|^\\s*#.*|^\\s*$'),
dashesString: new RegExp('^\\s*\\"([^\\"]*)\\"\\s*$'),
quotesString: new RegExp("^\\s*\\'([^\\']*)\\'\\s*$"),
float: new RegExp('^[+-]?[0-9]+\\.[0-9]+(e[+-]?[0-9]+(\\.[0-9]+)?)?$'),
integer: new RegExp('^[+-]?[0-9]+$'),
array: new RegExp('\\[\\s*(.*)\\s*\\]'),
map: new RegExp('\\{\\s*(.*)\\s*\\}'),
key_value: new RegExp('([a-z0-9_-][ a-z0-9_-]*):( .+)', 'i'),
single_key_value: new RegExp('^([a-z0-9_-][ a-z0-9_-]*):( .+?)$', 'i'),
key: new RegExp('([a-z0-9_-][ a-z0-9_-]+):( .+)?', 'i'),
item: new RegExp('^-\\s+'),
trim: new RegExp('^\\s+|\\s+$'),
comment: new RegExp('([^\\\'\\"#]+([\\\'\\"][^\\\'\\"]*[\\\'\\"])*)*(#.*)?')
};
/**
* @class A block of lines of a given level.
* @param {int} lvl The block's level.
* @private
*/
function Block(lvl) {
return {
/* The block's parent */
parent: null,
/* Number of children */
length: 0,
/* Block's level */
level: lvl,
/* Lines of code to process */
lines: [],
/* Blocks with greater level */
children: [],
/* Add a block to the children collection */
addChild: function(obj) {
this.children.push(obj);
obj.parent = this;
++this.length;
}
}
}
function parser$1(str) {
var regLevel = regex$1['regLevel'];
var invalidLine = regex$1['invalidLine'];
var lines = str.split('\n');
var m;
var level = 0,
curLevel = 0;
var blocks = [];
var result = new Block(-1);
var currentBlock = new Block(0);
result.addChild(currentBlock);
var levels = [];
var line = '';
blocks.push(currentBlock);
levels.push(level);
for (var i = 0, len = lines.length; i < len; ++i) {
line = lines[i];
if (line.match(invalidLine)) {
continue
}
if ((m = regLevel.exec(line))) {
level = m[1].length;
} else { level = 0; }
if (level > curLevel) {
var oldBlock = currentBlock;
currentBlock = new Block(level);
oldBlock.addChild(currentBlock);
blocks.push(currentBlock);
levels.push(level);
} else if (level < curLevel) {
var added = false;
var k = levels.length - 1;
for (; k >= 0; --k) {
if (levels[k] == level) {
currentBlock = new Block(level);
blocks.push(currentBlock);
levels.push(level);
if (blocks[k].parent != null) { blocks[k].parent.addChild(currentBlock); }
added = true;
break
}
}
if (!added) {
errors.push('Error: Invalid indentation at line ' + i + ': ' + line);
return
}
}
currentBlock.lines.push(line.replace(regex$1['trim'], ''));
curLevel = level;
}
return result
}
function processValue(val) {
val = val.replace(regex$1['trim'], '');
var m = null;
if (val == 'true') {
return true
} else if (val == 'false') {
return false
} else if (val == '.NaN') {
return Number.NaN
} else if (val == 'null') {
return null
} else if (val == '.inf') {
return Number.POSITIVE_INFINITY
} else if (val == '-.inf') {
return Number.NEGATIVE_INFINITY
} else if ((m = val.match(regex$1['dashesString']))) {
return m[1]
} else if ((m = val.match(regex$1['quotesString']))) {
return m[1]
} else if ((m = val.match(regex$1['float']))) {
return parseFloat(m[0])
} else if ((m = val.match(regex$1['integer']))) {
return parseInt(m[0])
} else if (!isNaN((m = Date.parse(val)))) {
return new Date(m)
} else if ((m = val.match(regex$1['single_key_value']))) {
var res = {};
res[m[1]] = processValue(m[2]);
return res
} else if ((m = val.match(regex$1['array']))) {
var count = 0,
c = ' ';
var res = [];
var content = '';
var str = false;
for (var j = 0, lenJ = m[1].length; j < lenJ; ++j) {
c = m[1][j];
if (c == "'" || c == '"') {
if (str === false) {
str = c;
content += c;
continue
} else if ((c == "'" && str == "'") || (c == '"' && str == '"')) {
str = false;
content += c;
continue
}
} else if (str === false && (c == '[' || c == '{')) {
++count;
} else if (str === false && (c == ']' || c == '}')) {
--count;
} else if (str === false && count == 0 && c == ',') {
res.push(processValue(content));
content = '';
continue
}
content += c;
}
if (content.length > 0) { res.push(processValue(content)); }
return res
} else if ((m = val.match(regex$1['map']))) {
var count = 0,
c = ' ';
var res = [];
var content = '';
var str = false;
for (var j = 0, lenJ = m[1].length; j < lenJ; ++j) {
c = m[1][j];
if (c == "'" || c == '"') {
if (str === false) {
str = c;
content += c;
continue
} else if ((c == "'" && str == "'") || (c == '"' && str == '"')) {
str = false;
content += c;
continue
}
} else if (str === false && (c == '[' || c == '{')) {
++count;
} else if (str === false && (c == ']' || c == '}')) {
--count;
} else if (str === false && count == 0 && c == ',') {
res.push(content);
content = '';
continue
}
content += c;
}
if (content.length > 0) { res.push(content); }
var newRes = {};
for (var j = 0, lenJ = res.length; j < lenJ; ++j) {
if ((m = res[j].match(regex$1['key_value']))) {
newRes[m[1]] = processValue(m[2]);
}
}
return newRes
} else { return val }
}
function processFoldedBlock(block) {
var lines = block.lines;
var children = block.children;
var str = lines.join(' ');
var chunks = [str];
for (var i = 0, len = children.length; i < len; ++i) {
chunks.push(processFoldedBlock(children[i]));
}
return chunks.join('\n')
}
function processLiteralBlock(block) {
var lines = block.lines;
var children = block.children;
var str = lines.join('\n');
for (var i = 0, len = children.length; i < len; ++i) {
str += processLiteralBlock(children[i]);
}
return str
}
function processBlock(blocks) {
var m = null;
var res = {};
var lines = null;
var children = null;
var currentObj = null;
var level = -1;
var processedBlocks = [];
var isMap = true;
for (var j = 0, lenJ = blocks.length; j < lenJ; ++j) {
if (level != -1 && level != blocks[j].level) { continue }
processedBlocks.push(j);
level = blocks[j].level;
lines = blocks[j].lines;
children = blocks[j].children;
currentObj = null;
for (var i = 0, len = lines.length; i < len; ++i) {
var line = lines[i];
if ((m = line.match(regex$1['key']))) {
var key = m[1];
if (key[0] == '-') {
key = key.replace(regex$1['item'], '');
if (isMap) {
isMap = false;
if (typeof res.length === 'undefined') {
res = [];
}
}
if (currentObj != null) { res.push(currentObj); }
currentObj = {};
isMap = true;
}
if (typeof m[2] != 'undefined') {
var value = m[2].replace(regex$1['trim'], '');
if (value[0] == '&') {
var nb = processBlock(children);
if (currentObj != null) { currentObj[key] = nb; }
else { res[key] = nb; }
reference_blocks[value.substr(1)] = nb;
} else if (value[0] == '|') {
if (currentObj != null)
{ currentObj[key] = processLiteralBlock(children.shift()); }
else { res[key] = processLiteralBlock(children.shift()); }
} else if (value[0] == '*') {
var v = value.substr(1);
var no = {};
if (typeof reference_blocks[v] == 'undefined') {
errors.push("Reference '" + v + "' not found!");
} else {
for (var k in reference_blocks[v]) {
no[k] = reference_blocks[v][k];
}
if (currentObj != null) { currentObj[key] = no; }
else { res[key] = no; }
}
} else if (value[0] == '>') {
if (currentObj != null)
{ currentObj[key] = processFoldedBlock(children.shift()); }
else { res[key] = processFoldedBlock(children.shift()); }
} else {
if (currentObj != null) { currentObj[key] = processValue(value); }
else { res[key] = processValue(value); }
}
} else {
if (currentObj != null) { currentObj[key] = processBlock(children); }
else { res[key] = processBlock(children); }
}
} else if (line.match(/^-\s*$/)) {
if (isMap) {
isMap = false;
if (typeof res.length === 'undefined') {
res = [];
}
}
if (currentObj != null) { res.push(currentObj); }
currentObj = {};
isMap = true;
continue
} else if ((m = line.match(/^-\s*(.*)/))) {
if (currentObj != null) { currentObj.push(processValue(m[1])); }
else {
if (isMap) {
isMap = false;
if (typeof res.length === 'undefined') {
res = [];
}
}
res.push(processValue(m[1]));
}
continue
}
}
if (currentObj != null) {
if (isMap) {
isMap = false;
if (typeof res.length === 'undefined') {
res = [];
}
}
res.push(currentObj);
}
}
for (var j = processedBlocks.length - 1; j >= 0; --j) {
blocks.splice.call(blocks, processedBlocks[j], 1);
}
return res
}
function semanticAnalysis(blocks) {
var res = processBlock(blocks.children);
return res
}
function preProcess(src) {
var m;
var lines = src.split('\n');
var r = regex$1['comment'];
for (var i in lines) {
if ((m = lines[i].match(r))) {
/* var cmt = "";
if(typeof m[3] != "undefined")
lines[i] = m[1];
else if(typeof m[3] != "undefined")
lines[i] = m[3];
else
lines[i] = "";
*/
if (typeof m[3] !== 'undefined') {
lines[i] = m[0].substr(0, m[0].length - m[3].length);
}
}
}
return lines.join('\n')
}
function load(str) {
errors = [];
reference_blocks = [];
processing_time = new Date().getTime();
var pre = preProcess(str);
var doc = parser$1(pre);
var res = semanticAnalysis(doc);
processing_time = new Date().getTime() - processing_time;
return res
}
/**
* Fork https://github.com/egoist/docute/blob/master/src/utils/front-matter.js
*/
/* eslint-disable */
var optionalByteOrderMark = '\\ufeff?';
var pattern =
'^(' +
optionalByteOrderMark +
'(= yaml =|---)' +
'$([\\s\\S]*?)' +
'(?:\\2|\\.\\.\\.)' +
'$' +
'' +
'(?:\\n)?)';
// NOTE: If this pattern uses the 'g' flag the `regex` variable definition will
// need to be moved down into the functions that use it.
var regex = new RegExp(pattern, 'm');
function extractor(string) {
string = string || '';
var lines = string.split(/(\r?\n)/);
if (lines[0] && /= yaml =|---/.test(lines[0])) {
return parse(string)
} else {
return { attributes: {}, body: string }
}
}
function parse(string) {
var match = regex.exec(string);
if (!match) {
return {
attributes: {},
body: string
}
}
var yaml = match[match.length - 1].replace(/^\s+|\s+$/g, '');
var attributes = load(yaml) || {};
var body = string.replace(match[0], '');
return { attributes: attributes, body: body, frontmatter: yaml }
}
var install = function (hook, vm) {
hook.beforeEach(function (content) {
var ref = extractor(content);
var attributes = ref.attributes;
var body = ref.body;
vm.frontmatter = attributes;
return body
});
};
$docsify.plugins = [].concat(install, $docsify.plugins);
}());
-1
View File
@@ -1 +0,0 @@
!function(){var b=[],y=[],t=0,R={regLevel:new RegExp("^([\\s\\-]+)"),invalidLine:new RegExp("^\\-\\-\\-|^\\.\\.\\.|^\\s*#.*|^\\s*$"),dashesString:new RegExp('^\\s*\\"([^\\"]*)\\"\\s*$'),quotesString:new RegExp("^\\s*\\'([^\\']*)\\'\\s*$"),float:new RegExp("^[+-]?[0-9]+\\.[0-9]+(e[+-]?[0-9]+(\\.[0-9]+)?)?$"),integer:new RegExp("^[+-]?[0-9]+$"),array:new RegExp("\\[\\s*(.*)\\s*\\]"),map:new RegExp("\\{\\s*(.*)\\s*\\}"),key_value:new RegExp("([a-z0-9_-][ a-z0-9_-]*):( .+)","i"),single_key_value:new RegExp("^([a-z0-9_-][ a-z0-9_-]*):( .+?)$","i"),key:new RegExp("([a-z0-9_-][ a-z0-9_-]+):( .+)?","i"),item:new RegExp("^-\\s+"),trim:new RegExp("^\\s+|\\s+$"),comment:new RegExp("([^\\'\\\"#]+([\\'\\\"][^\\'\\\"]*[\\'\\\"])*)*(#.*)?")};function m(e){return{parent:null,length:0,level:e,lines:[],children:[],addChild:function(e){this.children.push(e),++(e.parent=this).length}}}function N(e){var n=null;if("true"==(e=e.replace(R.trim,"")))return!0;if("false"==e)return!1;if(".NaN"==e)return Number.NaN;if("null"==e)return null;if(".inf"==e)return Number.POSITIVE_INFINITY;if("-.inf"==e)return Number.NEGATIVE_INFINITY;if(n=e.match(R.dashesString))return n[1];if(n=e.match(R.quotesString))return n[1];if(n=e.match(R.float))return parseFloat(n[0]);if(n=e.match(R.integer))return parseInt(n[0]);if(isNaN(n=Date.parse(e))){if(n=e.match(R.single_key_value))return(i={})[n[1]]=N(n[2]),i;if(n=e.match(R.array)){for(var t=0,r=" ",i=[],l="",u=!1,a=0,s=n[1].length;a<s;++a){if("'"==(r=n[1][a])||'"'==r){if(!1===u){l+=u=r;continue}if("'"==r&&"'"==u||'"'==r&&'"'==u){u=!1,l+=r;continue}}else if(!1!==u||"["!=r&&"{"!=r)if(!1!==u||"]"!=r&&"}"!=r){if(!1===u&&0==t&&","==r){i.push(N(l)),l="";continue}}else--t;else++t;l+=r}return 0<l.length&&i.push(N(l)),i}if(n=e.match(R.map)){for(t=0,r=" ",i=[],l="",u=!1,a=0,s=n[1].length;a<s;++a){if("'"==(r=n[1][a])||'"'==r){if(!1===u){l+=u=r;continue}if("'"==r&&"'"==u||'"'==r&&'"'==u){u=!1,l+=r;continue}}else if(!1!==u||"["!=r&&"{"!=r)if(!1!==u||"]"!=r&&"}"!=r){if(!1===u&&0==t&&","==r){i.push(l),l="";continue}}else--t;else++t;l+=r}0<l.length&&i.push(l);var f={};for(a=0,s=i.length;a<s;++a)(n=i[a].match(R.key_value))&&(f[n[1]]=N(n[2]));return f}return e}return new Date(n)}function _(e){for(var n=e.lines,t=e.children,r=[n.join(" ")],i=0,l=t.length;i<l;++i)r.push(_(t[i]));return r.join("\n")}function $(e){for(var n=e.lines,t=e.children,r=n.join("\n"),i=0,l=t.length;i<l;++i)r+=$(t[i]);return r}function r(e){return function e(n){for(var t=null,r={},i=null,l=null,u=null,a=-1,s=[],f=!0,h=0,o=n.length;h<o;++h)if(-1==a||a==n[h].level){s.push(h),a=n[h].level,i=n[h].lines,l=n[h].children,u=null;for(var c=0,p=i.length;c<p;++c){var g=i[c];if(t=g.match(R.key)){var v=t[1];if("-"==v[0]&&(v=v.replace(R.item,""),f&&(f=!1,void 0===r.length&&(r=[])),null!=u&&r.push(u),u={},f=!0),void 0!==t[2]){var d=t[2].replace(R.trim,"");if("&"==d[0]){var m=e(l);null!=u?u[v]=m:r[v]=m,y[d.substr(1)]=m}else if("|"==d[0])null!=u?u[v]=$(l.shift()):r[v]=$(l.shift());else if("*"==d[0]){var w=d.substr(1),E={};if(void 0===y[w])b.push("Reference '"+w+"' not found!");else{for(var x in y[w])E[x]=y[w][x];null!=u?u[v]=E:r[v]=E}}else">"==d[0]?null!=u?u[v]=_(l.shift()):r[v]=_(l.shift()):null!=u?u[v]=N(d):r[v]=N(d)}else null!=u?u[v]=e(l):r[v]=e(l)}else{if(g.match(/^-\s*$/)){f&&(f=!1,void 0===r.length&&(r=[])),null!=u&&r.push(u),u={},f=!0;continue}if(t=g.match(/^-\s*(.*)/)){null!=u?u.push(N(t[1])):(f&&(f=!1,void 0===r.length&&(r=[])),r.push(N(t[1])));continue}}}null!=u&&(f&&(f=!1,void 0===r.length&&(r=[])),r.push(u))}for(h=s.length-1;0<=h;--h)n.splice.call(n,s[h],1);return r}(e.children)}function l(e){b=[],y=[],t=(new Date).getTime();var n=r(function(e){var n,t=R.regLevel,r=R.invalidLine,i=e.split("\n"),l=0,u=0,a=[],s=new m(-1),f=new m(0);s.addChild(f);var h=[],o="";a.push(f),h.push(l);for(var c=0,p=i.length;c<p;++c)if(!(o=i[c]).match(r)){if(u<(l=(n=t.exec(o))?n[1].length:0)){var g=f;f=new m(l),g.addChild(f),a.push(f),h.push(l)}else if(l<u){for(var v=!1,d=h.length-1;0<=d;--d)if(h[d]==l){f=new m(l),a.push(f),h.push(l),null!=a[d].parent&&a[d].parent.addChild(f),v=!0;break}if(!v)return void b.push("Error: Invalid indentation at line "+c+": "+o)}f.lines.push(o.replace(R.trim,"")),u=l}return s}(function(e){var n,t=e.split("\n"),r=R.comment;for(var i in t)(n=t[i].match(r))&&void 0!==n[3]&&(t[i]=n[0].substr(0,n[0].length-n[3].length));return t.join("\n")}(e)));return t=(new Date).getTime()-t,n}var u=new RegExp("^(\\ufeff?(= yaml =|---)$([\\s\\S]*?)(?:\\2|\\.\\.\\.)$(?:\\n)?)","m");function a(e){var n=(e=e||"").split(/(\r?\n)/);return n[0]&&/= yaml =|---/.test(n[0])?function(e){var n=u.exec(e);if(!n)return{attributes:{},body:e};var t=n[n.length-1].replace(/^\s+|\s+$/g,""),r=l(t)||{},i=e.replace(n[0],"");return{attributes:r,body:i,frontmatter:t}}(e):{attributes:{},body:e}}$docsify.plugins=[].concat(function(e,i){e.beforeEach(function(e){var n=a(e),t=n.attributes,r=n.body;return i.frontmatter=t,r})},$docsify.plugins)}();
-41
View File
@@ -1,41 +0,0 @@
(function () {
// From https://github.com/egoist/vue-ga/blob/master/src/index.js
function appendScript() {
var script = document.createElement('script');
script.async = true;
script.src = 'https://www.google-analytics.com/analytics.js';
document.body.appendChild(script);
}
function init(id) {
appendScript();
window.ga =
window.ga ||
function () {
(window.ga.q = window.ga.q || []).push(arguments);
};
window.ga.l = Number(new Date());
window.ga('create', id, 'auto');
}
function collect() {
if (!window.ga) {
init($docsify.ga);
}
window.ga('set', 'page', location.hash);
window.ga('send', 'pageview');
}
var install = function (hook) {
if (!$docsify.ga) {
console.error('[Docsify] ga is required.');
return
}
hook.beforeEach(collect);
};
$docsify.plugins = [].concat(install, $docsify.plugins);
}());
-1
View File
@@ -1 +0,0 @@
!function(){function n(n){var o;(o=document.createElement("script")).async=!0,o.src="https://www.google-analytics.com/analytics.js",document.body.appendChild(o),window.ga=window.ga||function(){(window.ga.q=window.ga.q||[]).push(arguments)},window.ga.l=Number(new Date),window.ga("create",n,"auto")}function o(){window.ga||n($docsify.ga),window.ga("set","page",location.hash),window.ga("send","pageview")}$docsify.plugins=[].concat(function(n){$docsify.ga?n.beforeEach(o):console.error("[Docsify] ga is required.")},$docsify.plugins)}();
-26
View File
@@ -1,26 +0,0 @@
(function () {
function install(hook) {
var dom = Docsify.dom;
hook.mounted(function (_) {
var div = dom.create('div');
div.id = 'gitalk-container';
var main = dom.getNode('#main');
div.style = "width: " + (main.clientWidth) + "px; margin: 0 auto 20px;";
dom.appendTo(dom.find('.content'), div);
});
hook.doneEach(function (_) {
var el = document.getElementById('gitalk-container');
while (el.hasChildNodes()) {
el.removeChild(el.firstChild);
}
// eslint-disable-next-line
gitalk.render('gitalk-container');
});
}
$docsify.plugins = [].concat(install, $docsify.plugins);
}());
-1
View File
@@ -1 +0,0 @@
$docsify.plugins=[].concat(function(i){var e=Docsify.dom;i.mounted(function(i){var n=e.create("div");n.id="gitalk-container";var t=e.getNode("#main");n.style="width: "+t.clientWidth+"px; margin: 0 auto 20px;",e.appendTo(e.find(".content"),n)}),i.doneEach(function(i){for(var n=document.getElementById("gitalk-container");n.hasChildNodes();)n.removeChild(n.firstChild);gitalk.render("gitalk-container")})},$docsify.plugins);
-364
View File
@@ -1,364 +0,0 @@
(function () {
var INDEXS = {};
var LOCAL_STORAGE = {
EXPIRE_KEY: 'docsify.search.expires',
INDEX_KEY: 'docsify.search.index'
};
function resolveExpireKey(namespace) {
return namespace ? ((LOCAL_STORAGE.EXPIRE_KEY) + "/" + namespace) : LOCAL_STORAGE.EXPIRE_KEY
}
function resolveIndexKey(namespace) {
return namespace ? ((LOCAL_STORAGE.INDEX_KEY) + "/" + namespace) : LOCAL_STORAGE.INDEX_KEY
}
function escapeHtml(string) {
var entityMap = {
'&': '&amp;',
'<': '&lt;',
'>': '&gt;',
'"': '&quot;',
'\'': '&#39;',
'/': '&#x2F;'
};
return String(string).replace(/[&<>"'/]/g, function (s) { return entityMap[s]; })
}
function getAllPaths(router) {
var paths = [];
Docsify.dom.findAll('.sidebar-nav a:not(.section-link):not([data-nosearch])').forEach(function (node) {
var href = node.href;
var originHref = node.getAttribute('href');
var path = router.parse(href).path;
if (
path &&
paths.indexOf(path) === -1 &&
!Docsify.util.isAbsolutePath(originHref)
) {
paths.push(path);
}
});
return paths
}
function saveData(maxAge, expireKey, indexKey) {
localStorage.setItem(expireKey, Date.now() + maxAge);
localStorage.setItem(indexKey, JSON.stringify(INDEXS));
}
function genIndex(path, content, router, depth) {
if ( content === void 0 ) content = '';
var tokens = window.marked.lexer(content);
var slugify = window.Docsify.slugify;
var index = {};
var slug;
tokens.forEach(function (token) {
if (token.type === 'heading' && token.depth <= depth) {
slug = router.toURL(path, {id: slugify(token.text)});
index[slug] = {slug: slug, title: token.text, body: ''};
} else {
if (!slug) {
return
}
if (!index[slug]) {
index[slug] = {slug: slug, title: '', body: ''};
} else if (index[slug].body) {
index[slug].body += '\n' + (token.text || '');
} else {
index[slug].body = token.text;
}
}
});
slugify.clear();
return index
}
/**
* @param {String} query
* @returns {Array}
*/
function search(query) {
var matchingResults = [];
var data = [];
Object.keys(INDEXS).forEach(function (key) {
data = data.concat(Object.keys(INDEXS[key]).map(function (page) { return INDEXS[key][page]; }));
});
query = query.trim();
var keywords = query.split(/[\s\-\\/]+/);
if (keywords.length !== 1) {
keywords = [].concat(query, keywords);
}
var loop = function ( i ) {
var post = data[i];
var isMatch = false;
var resultStr = '';
var postTitle = post.title && post.title.trim();
var postContent = post.body && post.body.trim();
var postUrl = post.slug || '';
if (postTitle && postContent) {
keywords.forEach(function (keyword) {
// From https://github.com/sindresorhus/escape-string-regexp
var regEx = new RegExp(
keyword.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&'),
'gi'
);
var indexTitle = -1;
var indexContent = -1;
indexTitle = postTitle && postTitle.search(regEx);
indexContent = postContent && postContent.search(regEx);
if (indexTitle < 0 && indexContent < 0) {
isMatch = false;
} else {
isMatch = true;
if (indexContent < 0) {
indexContent = 0;
}
var start = 0;
var end = 0;
start = indexContent < 11 ? 0 : indexContent - 10;
end = start === 0 ? 70 : indexContent + keyword.length + 60;
if (end > postContent.length) {
end = postContent.length;
}
var matchContent =
'...' +
escapeHtml(postContent)
.substring(start, end)
.replace(regEx, ("<em class=\"search-keyword\">" + keyword + "</em>")) +
'...';
resultStr += matchContent;
}
});
if (isMatch) {
var matchingPost = {
title: escapeHtml(postTitle),
content: resultStr,
url: postUrl
};
matchingResults.push(matchingPost);
}
}
};
for (var i = 0; i < data.length; i++) loop( i );
return matchingResults
}
function init$1(config, vm) {
var isAuto = config.paths === 'auto';
var expireKey = resolveExpireKey(config.namespace);
var indexKey = resolveIndexKey(config.namespace);
var isExpired = localStorage.getItem(expireKey) < Date.now();
INDEXS = JSON.parse(localStorage.getItem(indexKey));
if (isExpired) {
INDEXS = {};
} else if (!isAuto) {
return
}
var paths = isAuto ? getAllPaths(vm.router) : config.paths;
var len = paths.length;
var count = 0;
paths.forEach(function (path) {
if (INDEXS[path]) {
return count++
}
Docsify
.get(vm.router.getFile(path), false, vm.config.requestHeaders)
.then(function (result) {
INDEXS[path] = genIndex(path, result, vm.router, config.depth);
len === ++count && saveData(config.maxAge, expireKey, indexKey);
});
});
}
var NO_DATA_TEXT = '';
var options;
function style() {
var code = "\n.sidebar {\n padding-top: 0;\n}\n\n.search {\n margin-bottom: 20px;\n padding: 6px;\n border-bottom: 1px solid #eee;\n}\n\n.search .input-wrap {\n display: flex;\n align-items: center;\n}\n\n.search .results-panel {\n display: none;\n}\n\n.search .results-panel.show {\n display: block;\n}\n\n.search input {\n outline: none;\n border: none;\n width: 100%;\n padding: 0 7px;\n line-height: 36px;\n font-size: 14px;\n}\n\n.search input::-webkit-search-decoration,\n.search input::-webkit-search-cancel-button,\n.search input {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n.search .clear-button {\n width: 36px;\n text-align: right;\n display: none;\n}\n\n.search .clear-button.show {\n display: block;\n}\n\n.search .clear-button svg {\n transform: scale(.5);\n}\n\n.search h2 {\n font-size: 17px;\n margin: 10px 0;\n}\n\n.search a {\n text-decoration: none;\n color: inherit;\n}\n\n.search .matching-post {\n border-bottom: 1px solid #eee;\n}\n\n.search .matching-post:last-child {\n border-bottom: 0;\n}\n\n.search p {\n font-size: 14px;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n\n.search p.empty {\n text-align: center;\n}\n\n.app-name.hide, .sidebar-nav.hide {\n display: none;\n}";
Docsify.dom.style(code);
}
function tpl(defaultValue) {
if ( defaultValue === void 0 ) defaultValue = '';
var html =
"<div class=\"input-wrap\">\n <input type=\"search\" value=\"" + defaultValue + "\" />\n <div class=\"clear-button\">\n <svg width=\"26\" height=\"24\">\n <circle cx=\"12\" cy=\"12\" r=\"11\" fill=\"#ccc\" />\n <path stroke=\"white\" stroke-width=\"2\" d=\"M8.25,8.25,15.75,15.75\" />\n <path stroke=\"white\" stroke-width=\"2\"d=\"M8.25,15.75,15.75,8.25\" />\n </svg>\n </div>\n </div>\n <div class=\"results-panel\"></div>\n </div>";
var el = Docsify.dom.create('div', html);
var aside = Docsify.dom.find('aside');
Docsify.dom.toggleClass(el, 'search');
Docsify.dom.before(aside, el);
}
function doSearch(value) {
var $search = Docsify.dom.find('div.search');
var $panel = Docsify.dom.find($search, '.results-panel');
var $clearBtn = Docsify.dom.find($search, '.clear-button');
var $sidebarNav = Docsify.dom.find('.sidebar-nav');
var $appName = Docsify.dom.find('.app-name');
if (!value) {
$panel.classList.remove('show');
$clearBtn.classList.remove('show');
$panel.innerHTML = '';
if (options.hideOtherSidebarContent) {
$sidebarNav.classList.remove('hide');
$appName.classList.remove('hide');
}
return
}
var matchs = search(value);
var html = '';
matchs.forEach(function (post) {
html += "<div class=\"matching-post\">\n<a href=\"" + (post.url) + "\">\n<h2>" + (post.title) + "</h2>\n<p>" + (post.content) + "</p>\n</a>\n</div>";
});
$panel.classList.add('show');
$clearBtn.classList.add('show');
$panel.innerHTML = html || ("<p class=\"empty\">" + NO_DATA_TEXT + "</p>");
if (options.hideOtherSidebarContent) {
$sidebarNav.classList.add('hide');
$appName.classList.add('hide');
}
}
function bindEvents() {
var $search = Docsify.dom.find('div.search');
var $input = Docsify.dom.find($search, 'input');
var $inputWrap = Docsify.dom.find($search, '.input-wrap');
var timeId;
// Prevent to Fold sidebar
Docsify.dom.on(
$search,
'click',
function (e) { return e.target.tagName !== 'A' && e.stopPropagation(); }
);
Docsify.dom.on($input, 'input', function (e) {
clearTimeout(timeId);
timeId = setTimeout(function (_) { return doSearch(e.target.value.trim()); }, 100);
});
Docsify.dom.on($inputWrap, 'click', function (e) {
// Click input outside
if (e.target.tagName !== 'INPUT') {
$input.value = '';
doSearch();
}
});
}
function updatePlaceholder(text, path) {
var $input = Docsify.dom.getNode('.search input[type="search"]');
if (!$input) {
return
}
if (typeof text === 'string') {
$input.placeholder = text;
} else {
var match = Object.keys(text).filter(function (key) { return path.indexOf(key) > -1; })[0];
$input.placeholder = text[match];
}
}
function updateNoData(text, path) {
if (typeof text === 'string') {
NO_DATA_TEXT = text;
} else {
var match = Object.keys(text).filter(function (key) { return path.indexOf(key) > -1; })[0];
NO_DATA_TEXT = text[match];
}
}
function updateOptions(opts) {
options = opts;
}
function init(opts, vm) {
var keywords = vm.router.parse().query.s;
updateOptions(opts);
style();
tpl(keywords);
bindEvents();
keywords && setTimeout(function (_) { return doSearch(keywords); }, 500);
}
function update(opts, vm) {
updateOptions(opts);
updatePlaceholder(opts.placeholder, vm.route.path);
updateNoData(opts.noData, vm.route.path);
}
var CONFIG = {
placeholder: 'Type to search',
noData: 'No Results!',
paths: 'auto',
depth: 2,
maxAge: 86400000, // 1 day
hideOtherSidebarContent: false,
namespace: undefined
};
var install = function (hook, vm) {
var util = Docsify.util;
var opts = vm.config.search || CONFIG;
if (Array.isArray(opts)) {
CONFIG.paths = opts;
} else if (typeof opts === 'object') {
CONFIG.paths = Array.isArray(opts.paths) ? opts.paths : 'auto';
CONFIG.maxAge = util.isPrimitive(opts.maxAge) ? opts.maxAge : CONFIG.maxAge;
CONFIG.placeholder = opts.placeholder || CONFIG.placeholder;
CONFIG.noData = opts.noData || CONFIG.noData;
CONFIG.depth = opts.depth || CONFIG.depth;
CONFIG.hideOtherSidebarContent = opts.hideOtherSidebarContent || CONFIG.hideOtherSidebarContent;
CONFIG.namespace = opts.namespace || CONFIG.namespace;
}
var isAuto = CONFIG.paths === 'auto';
hook.mounted(function (_) {
init(CONFIG, vm);
!isAuto && init$1(CONFIG, vm);
});
hook.doneEach(function (_) {
update(CONFIG, vm);
isAuto && init$1(CONFIG, vm);
});
};
$docsify.plugins = [].concat(install, $docsify.plugins);
}());
-1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+6679 -4108
View File
File diff suppressed because it is too large Load Diff
+28 -29
View File
@@ -1,6 +1,6 @@
{
"name": "docsify",
"version": "4.9.2",
"version": "4.10.2",
"description": "A magical documentation generator.",
"author": {
"name": "qingwei-li",
@@ -28,50 +28,51 @@
"dev:ssr": "run-p serve:ssr watch:*",
"lint": "eslint {src,packages} --fix",
"test": "mocha test/*/**",
"css": "stylus src/themes/*.styl -u autoprefixer-stylus",
"watch:css": "run-p 'css -- -o themes -w'",
"css": "node build/css",
"watch:css": "npm run css -- -o themes -w",
"watch:js": "node build/build.js",
"build:css:min": "mkdir lib/themes && run-p 'css -- -o lib/themes' && node build/mincss.js",
"build:css": "mkdir -p themes && run-p 'css -- -o themes'",
"build:css:min": "mkdirp lib/themes && npm run css -- -o lib/themes && node build/mincss.js",
"build:css": "mkdirp themes && npm run css -- -o themes",
"build:js": "cross-env NODE_ENV=production node build/build.js",
"build:ssr": "node build/ssr.js",
"build:cover": "node build/cover.js",
"build": "rimraf lib themes/* && run-s build:js build:css build:css:min build:ssr build:cover",
"build": "rimraf lib themes && run-s build:js build:css build:css:min build:ssr build:cover",
"pub:next": "cross-env RELEASE_TAG=next sh build/release.sh",
"pub": "sh build/release.sh",
"postinstall": "opencollective postinstall"
"postinstall": "opencollective-postinstall"
},
"dependencies": {
"marked": "^0.5.1",
"medium-zoom": "^0.4.0",
"opencollective": "^1.0.3",
"marked": "^0.7.0",
"medium-zoom": "^1.0.4",
"opencollective-postinstall": "^2.0.2",
"prismjs": "^1.15.0",
"tinydate": "^1.0.0",
"tweezer.js": "^1.4.0"
},
"devDependencies": {
"autoprefixer-stylus": "^0.14.0",
"autoprefixer-stylus": "^1.0.0",
"chai": "^4.2.0",
"chokidar": "^2.0.2",
"conventional-changelog-cli": "^1.3.5",
"cross-env": "^5.1.3",
"cssnano": "^3.10.0",
"eslint": "^4.14.0",
"eslint-config-xo-space": "^0.18.0",
"chokidar": "^3.2.1",
"conventional-changelog-cli": "^2.0.25",
"cross-env": "^6.0.3",
"cssnano": "^4.1.10",
"eslint": "^5.16.0",
"eslint-config-xo-space": "^0.21.0",
"esm": "^3.1.4",
"jsdom": "^13.2.0",
"lerna": "^2.5.1",
"jsdom": "^15.1.1",
"lerna": "^3.17.0",
"live-server": "^1.2.1",
"mkdirp": "^0.5.1",
"mocha": "^5.2.0",
"npm-run-all": "^4.1.5",
"rimraf": "^2.6.2",
"rollup": "^0.53.3",
"rimraf": "^3.0.0",
"rollup": "^1.23.1",
"rollup-plugin-async": "^1.2.0",
"rollup-plugin-buble": "^0.18.0",
"rollup-plugin-commonjs": "^8.2.6",
"rollup-plugin-node-resolve": "^3.0.0",
"rollup-plugin-replace": "^2.0.0",
"rollup-plugin-uglify": "^2.0.1",
"rollup-plugin-buble": "^0.19.8",
"rollup-plugin-commonjs": "^10.1.0",
"rollup-plugin-node-resolve": "^5.2.0",
"rollup-plugin-replace": "^2.2.0",
"rollup-plugin-uglify": "^6.0.4",
"stylus": "^0.54.5"
},
"keywords": [
@@ -82,8 +83,6 @@
"generator"
],
"collective": {
"type": "opencollective",
"url": "https://opencollective.com/docsify",
"logo": "https://docsify.js.org/_media/icon.svg"
"url": "https://opencollective.com/docsify"
}
}
+437 -39
View File
@@ -1,41 +1,439 @@
{
"lockfileVersion": 1,
"dependencies": {
"debug": {
"version": "2.6.8",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz",
"integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw="
},
"encoding": {
"version": "0.1.12",
"resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
"integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s="
},
"iconv-lite": {
"version": "0.4.18",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz",
"integrity": "sha512-sr1ZQph3UwHTR0XftSbK85OvBbxe/abLGzEnPENCQwmHf7sck8Oyu4ob3LgBxWWxRoM+QszeUyl7jbqapu2TqA=="
},
"is-stream": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
"integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
"node-fetch": {
"version": "1.7.1",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.1.tgz",
"integrity": "sha512-j8XsFGCLw79vWXkZtMSmmLaOk9z5SQ9bV/tkbZVCqvgwzrjAGq66igobLofHtF63NvMTp2WjytpsNTGKa+XRIQ=="
},
"resolve-pathname": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-2.1.0.tgz",
"integrity": "sha1-6DWIAbhrg7F1YNTjw4LXrvIQCUQ="
}
},
"version": "4.9.2"
"name": "docsify-server-renderer",
"version": "4.10.2",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"ansi-escapes": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
"integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4="
},
"ansi-regex": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
},
"ansi-styles": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
},
"babel-polyfill": {
"version": "6.23.0",
"resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.23.0.tgz",
"integrity": "sha1-g2TKYt+Or7gwSZ9pkXdGbDsDSZ0=",
"requires": {
"babel-runtime": "^6.22.0",
"core-js": "^2.4.0",
"regenerator-runtime": "^0.10.0"
}
},
"babel-runtime": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
"core-js": "^2.4.0",
"regenerator-runtime": "^0.11.0"
},
"dependencies": {
"regenerator-runtime": {
"version": "0.11.1",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
"integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
}
}
},
"chalk": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"requires": {
"ansi-styles": "^2.2.1",
"escape-string-regexp": "^1.0.2",
"has-ansi": "^2.0.0",
"strip-ansi": "^3.0.0",
"supports-color": "^2.0.0"
}
},
"chardet": {
"version": "0.4.2",
"resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz",
"integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I="
},
"cli-cursor": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
"integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
"requires": {
"restore-cursor": "^2.0.0"
}
},
"cli-width": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
"integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk="
},
"clipboard": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.4.tgz",
"integrity": "sha512-Vw26VSLRpJfBofiVaFb/I8PVfdI1OxKcYShe6fm0sP/DtmiWQNCjhM/okTvdCo0G+lMMm1rMYbk4IK4x1X+kgQ==",
"optional": true,
"requires": {
"good-listener": "^1.2.2",
"select": "^1.1.2",
"tiny-emitter": "^2.0.0"
}
},
"core-js": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz",
"integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A=="
},
"debug": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
"requires": {
"ms": "^2.1.1"
}
},
"delegate": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz",
"integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==",
"optional": true
},
"docsify": {
"version": "4.9.4",
"resolved": "https://registry.npmjs.org/docsify/-/docsify-4.9.4.tgz",
"integrity": "sha512-Xtm6sfrNU7cqOViWMewDhscn0cySF60q2KTKok9OaPmzt6nRkTAIvYU4dj916IT21o/b336Or3vO2hsvmaQzxg==",
"requires": {
"marked": "^0.5.1",
"medium-zoom": "^0.4.0",
"opencollective": "^1.0.3",
"prismjs": "^1.15.0",
"tinydate": "^1.0.0",
"tweezer.js": "^1.4.0"
}
},
"encoding": {
"version": "0.1.12",
"resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
"integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
"requires": {
"iconv-lite": "~0.4.13"
}
},
"escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
},
"external-editor": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz",
"integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==",
"requires": {
"chardet": "^0.4.0",
"iconv-lite": "^0.4.17",
"tmp": "^0.0.33"
}
},
"figures": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
"integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
"requires": {
"escape-string-regexp": "^1.0.5"
}
},
"good-listener": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz",
"integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=",
"optional": true,
"requires": {
"delegate": "^3.1.2"
}
},
"has-ansi": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
"integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
"requires": {
"ansi-regex": "^2.0.0"
}
},
"iconv-lite": {
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"requires": {
"safer-buffer": ">= 2.1.2 < 3"
}
},
"inquirer": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.0.6.tgz",
"integrity": "sha1-4EqqnQW3o8ubD0B9BDdfBEcZA0c=",
"requires": {
"ansi-escapes": "^1.1.0",
"chalk": "^1.0.0",
"cli-cursor": "^2.1.0",
"cli-width": "^2.0.0",
"external-editor": "^2.0.1",
"figures": "^2.0.0",
"lodash": "^4.3.0",
"mute-stream": "0.0.7",
"run-async": "^2.2.0",
"rx": "^4.1.0",
"string-width": "^2.0.0",
"strip-ansi": "^3.0.0",
"through": "^2.3.6"
}
},
"is-fullwidth-code-point": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
},
"is-promise": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
"integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
},
"is-stream": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
"integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
},
"lodash": {
"version": "4.17.15",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
"integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
},
"marked": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/marked/-/marked-0.5.2.tgz",
"integrity": "sha512-fdZvBa7/vSQIZCi4uuwo2N3q+7jJURpMVCcbaX0S1Mg65WZ5ilXvC67MviJAsdjqqgD+CEq4RKo5AYGgINkVAA=="
},
"medium-zoom": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/medium-zoom/-/medium-zoom-0.4.0.tgz",
"integrity": "sha512-0z7yMfd6I1BTCAa8QaR4cp5AqDkQD571GzhHIbbfefKEssGLSvs+4Xai/itOAncm4FBlF5gUoMQ22yW9/f8Sig=="
},
"mimic-fn": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
"integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ=="
},
"minimist": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"mute-stream": {
"version": "0.0.7",
"resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
"integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s="
},
"node-fetch": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
"integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA=="
},
"object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
},
"onetime": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
"integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
"requires": {
"mimic-fn": "^1.0.0"
}
},
"opencollective": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/opencollective/-/opencollective-1.0.3.tgz",
"integrity": "sha1-ruY3K8KBRFg2kMPKja7PwSDdDvE=",
"requires": {
"babel-polyfill": "6.23.0",
"chalk": "1.1.3",
"inquirer": "3.0.6",
"minimist": "1.2.0",
"node-fetch": "1.6.3",
"opn": "4.0.2"
},
"dependencies": {
"node-fetch": {
"version": "1.6.3",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.6.3.tgz",
"integrity": "sha1-3CNO3WSJmC1Y6PDbT2lQKavNjAQ=",
"requires": {
"encoding": "^0.1.11",
"is-stream": "^1.0.1"
}
}
}
},
"opn": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz",
"integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=",
"requires": {
"object-assign": "^4.0.1",
"pinkie-promise": "^2.0.0"
}
},
"os-tmpdir": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
},
"pinkie": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
"integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
},
"pinkie-promise": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
"integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
"requires": {
"pinkie": "^2.0.0"
}
},
"prismjs": {
"version": "1.17.1",
"resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.17.1.tgz",
"integrity": "sha512-PrEDJAFdUGbOP6xK/UsfkC5ghJsPJviKgnQOoxaDbBjwc8op68Quupwt1DeAFoG8GImPhiKXAvvsH7wDSLsu1Q==",
"requires": {
"clipboard": "^2.0.0"
}
},
"regenerator-runtime": {
"version": "0.10.5",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",
"integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg="
},
"resolve-pathname": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz",
"integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng=="
},
"restore-cursor": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
"integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
"requires": {
"onetime": "^2.0.0",
"signal-exit": "^3.0.2"
}
},
"run-async": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
"integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
"requires": {
"is-promise": "^2.1.0"
}
},
"rx": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz",
"integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I="
},
"safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"select": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz",
"integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=",
"optional": true
},
"signal-exit": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
},
"string-width": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
"integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
"requires": {
"is-fullwidth-code-point": "^2.0.0",
"strip-ansi": "^4.0.0"
},
"dependencies": {
"ansi-regex": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
},
"strip-ansi": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"requires": {
"ansi-regex": "^3.0.0"
}
}
}
},
"strip-ansi": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"requires": {
"ansi-regex": "^2.0.0"
}
},
"supports-color": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
"integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
},
"through": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
"integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
},
"tiny-emitter": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz",
"integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==",
"optional": true
},
"tinydate": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/tinydate/-/tinydate-1.2.0.tgz",
"integrity": "sha512-3GwPk8VhDFnUZ2TrgkhXJs6hcMAIIw4x/xkz+ayK6dGoQmp2nUwKzBXK0WnMsqkh6vfUhpqQicQF3rbshfyJkg=="
},
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
"integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
"requires": {
"os-tmpdir": "~1.0.2"
}
},
"tweezer.js": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/tweezer.js/-/tweezer.js-1.5.0.tgz",
"integrity": "sha512-aSiJz7rGWNAQq7hjMK9ZYDuEawXupcCWgl3woQQSoDP2Oh8O4srWb/uO1PzzHIsrPEOqrjJ2sUb9FERfzuBabQ=="
}
}
}
@@ -1,6 +1,6 @@
{
"name": "docsify-server-renderer",
"version": "4.9.2",
"version": "4.10.2",
"description": "docsify server renderer",
"author": {
"name": "qingwei-li",
@@ -15,9 +15,9 @@
"test": "echo 'hello'"
},
"dependencies": {
"debug": "^2.6.8",
"debug": "^4.1.1",
"docsify": "^4.8.0",
"node-fetch": "^1.7.0",
"resolve-pathname": "^2.1.0"
"node-fetch": "^2.6.0",
"resolve-pathname": "^3.0.0"
}
}
+4
View File
@@ -23,7 +23,11 @@ export default function () {
ext: '.md',
mergeNavbar: false,
formatUpdated: '',
// this config for the links inside markdown
externalLinkTarget: '_blank',
// this config for the corner
cornerExternalLinkTarget: '_blank',
externalLinkRel: 'noopener',
routerMode: 'hash',
noCompileLinks: [],
relativePath: false
+16 -3
View File
@@ -78,6 +78,7 @@ export class Compiler {
this.toc = []
this.cacheTOC = {}
this.linkTarget = config.externalLinkTarget || '_blank'
this.linkRel = this.linkTarget === '_blank' ? (config.externalLinkRel || 'noopener') : ''
this.contentBase = router.getBasePath()
const renderer = this._initRenderer()
@@ -185,7 +186,7 @@ export class Compiler {
_initRenderer() {
const renderer = new marked.Renderer()
const {linkTarget, router, contentBase} = this
const {linkTarget, linkRel, router, contentBase} = this
const _self = this
const origin = {}
@@ -243,6 +244,7 @@ export class Compiler {
href = router.toURL(href, null, router.getCurrentPath())
} else {
attrs += href.indexOf('mailto:') === 0 ? '' : ` target="${linkTarget}"`
attrs += href.indexOf('mailto:') === 0 ? '' : (linkRel !== '' ? ` rel="${linkRel}"` : '')
}
if (config.target) {
@@ -329,13 +331,25 @@ export class Compiler {
* Compile sidebar
*/
sidebar(text, level) {
const {toc} = this
const currentPath = this.router.getCurrentPath()
let html = ''
if (text) {
html = this.compile(text)
} else {
const tree = this.cacheTree[currentPath] || genTree(this.toc, level)
for (let i = 0; i < toc.length; i++) {
if (toc[i].ignoreSubHeading) {
const deletedHeaderLevel = toc[i].level
toc.splice(i, 1)
// Remove headers who are under current header
for (let j = i; deletedHeaderLevel < toc[j].level && j < toc.length; j++) {
toc.splice(j, 1) && j-- && i++
}
i--
}
}
const tree = this.cacheTree[currentPath] || genTree(toc, level)
html = treeTpl(tree, '<ul>{inner}</ul>')
this.cacheTree[currentPath] = tree
}
@@ -360,7 +374,6 @@ export class Compiler {
for (let i = 0; i < toc.length; i++) {
toc[i].ignoreSubHeading && toc.splice(i, 1) && i--
}
const tree = cacheTree[currentPath] || genTree(toc, level)
cacheTree[currentPath] = tree
+1 -1
View File
@@ -226,7 +226,7 @@ export function initRender(vm) {
if (el) {
if (config.repo) {
html += tpl.corner(config.repo)
html += tpl.corner(config.repo, config.cornerExternalLinkTarge)
}
if (config.coverpage) {
html += tpl.cover()
+12 -6
View File
@@ -1,10 +1,11 @@
import {isMobile} from '../util/env'
import {escapeString} from '../util/core'
/**
* Render github corner
* @param {Object} data
* @return {String}
*/
export function corner(data) {
export function corner(data, cornerExternalLinkTarge) {
if (!data) {
return ''
}
@@ -12,9 +13,11 @@ export function corner(data) {
data = 'https://github.com/' + data
}
data = data.replace(/^git\+/, '')
// double check
cornerExternalLinkTarge = cornerExternalLinkTarge || '_blank'
return (
`<a href="${data}" class="github-corner" aria-label="View source on Github">` +
`<a href="${data}" target="${cornerExternalLinkTarge}" class="github-corner" aria-label="View source on Github">` +
'<svg viewBox="0 0 250 250" aria-hidden="true">' +
'<path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path>' +
'<path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path>' +
@@ -28,8 +31,11 @@ export function corner(data) {
* Render main content
*/
export function main(config) {
const name = config.name? escapeString(config.name):''
const aside =
'<button class="sidebar-toggle">' +
'<button class="sidebar-toggle" aria-label="Menu">' +
'<div class="sidebar-toggle-button">' +
'<span></span><span></span><span></span>' +
'</div>' +
@@ -37,9 +43,9 @@ export function main(config) {
'<aside class="sidebar">' +
(config.name ?
`<h1 class="app-name"><a class="app-name-link" data-nosearch>${
config.logo ?
`<img alt=${config.name} src=${config.logo}>` :
config.name
config.logo ?
`<img alt="${name}" src=${config.logo}>` :
name
}</a></h1>` :
'') +
'<div class="sidebar-nav"><!--sidebar--></div>' +
+16
View File
@@ -56,3 +56,19 @@ export function noop() {}
export function isFn(obj) {
return typeof obj === 'function'
}
/**
* escape String
*/
export function escapeString(string) {
const entityMap = {
'&': '&amp;',
'<': '&lt;',
'>': '&gt;',
'"': '&quot;',
'\'': '&#39;',
'/': '&#x2F;'
}
return String(string).replace(/[&<>"'/]/g, s => entityMap[s])
}
+629 -5
View File
File diff suppressed because it is too large Load Diff
+7 -1
View File
@@ -35,6 +35,12 @@ function style() {
padding: 0 7px;
line-height: 36px;
font-size: 14px;
border: 1px solid transparent;
}
.search input:focus {
box-shadow: 0 0 5px var(--theme-color, #42b983);
border: 1px solid var(--theme-color, #42b983);
}
.search input::-webkit-search-decoration,
@@ -99,7 +105,7 @@ function style() {
function tpl(defaultValue = '') {
const html =
`<div class="input-wrap">
<input type="search" value="${defaultValue}" />
<input type="search" value="${defaultValue}" aria-label="Search text" />
<div class="clear-button">
<svg width="26" height="24">
<circle cx="12" cy="12" r="11" fill="#ccc" />
+13 -14
View File
@@ -96,29 +96,27 @@ export function search(query) {
for (let i = 0; i < data.length; i++) {
const post = data[i]
let isMatch = false
let matchesScore = 0
let resultStr = ''
const postTitle = post.title && post.title.trim()
const postContent = post.body && post.body.trim()
const postUrl = post.slug || ''
if (postTitle && postContent) {
keywords.forEach(keyword => {
if (postTitle) {
keywords.forEach( keyword => {
// From https://github.com/sindresorhus/escape-string-regexp
const regEx = new RegExp(
keyword.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&'),
'gi'
)
);
let indexTitle = -1
let indexContent = -1
indexTitle = postTitle && postTitle.search(regEx)
indexContent = postContent && postContent.search(regEx)
indexTitle = postTitle ? postTitle.search(regEx) : -1
indexContent = postContent ? postContent.search(regEx) : -1
if (indexTitle < 0 && indexContent < 0) {
isMatch = false
} else {
isMatch = true
if (indexTitle >= 0 || indexContent >= 0) {
matchesScore += indexTitle >= 0 ? 3 : indexContent >= 0 ? 2 : 0;
if (indexContent < 0) {
indexContent = 0
}
@@ -144,11 +142,12 @@ export function search(query) {
}
})
if (isMatch) {
if (matchesScore > 0) {
const matchingPost = {
title: escapeHtml(postTitle),
content: resultStr,
url: postUrl
content: postContent ? resultStr : '',
url: postUrl,
score: matchesScore
}
matchingResults.push(matchingPost)
@@ -156,7 +155,7 @@ export function search(query) {
}
}
return matchingResults
return matchingResults.sort((r1, r2) => r2.score - r1.score);
}
export function init(config, vm) {
+6 -1
View File
@@ -35,9 +35,12 @@ $sidebar-width = 16rem
color #333
font-weight 400
.markdown-section strong
color #333
font-weight 600
.markdown-section a
color var(--theme-color, $color-primary)
font-weight 400
.markdown-section p, .markdown-section ul, .markdown-section ol
line-height 1.6rem
@@ -171,3 +174,5 @@ code .token
-webkit-font-smoothing initial
-moz-osx-font-smoothing initial
min-height 1.5rem
position: relative
left: auto
+2
View File
@@ -201,6 +201,8 @@ code .token
-moz-osx-font-smoothing initial
-webkit-font-smoothing initial
min-height 1.5rem
position: relative
left: auto
pre::after
color #ccc
+2
View File
@@ -213,6 +213,8 @@ code .token
-moz-osx-font-smoothing initial
-webkit-font-smoothing initial
min-height 1.5rem
position: relative
left: auto
pre::after
color #ccc
+2
View File
@@ -210,6 +210,8 @@ code .token
-moz-osx-font-smoothing initial
-webkit-font-smoothing initial
min-height 1.5rem
position: relative
left: auto
pre::after
color #ccc
-1
View File
@@ -1 +0,0 @@