mirror of
https://github.com/wahyd4/docsify.git
synced 2026-08-10 05:48:18 +10:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9e62be9d00 | ||
|
|
a2be53aea7 | ||
|
|
ab597ca8e0 | ||
|
|
154abf59a6 | ||
|
|
f3a7929f07 | ||
|
|
d08d1dd9bb | ||
|
|
0eb9708225 | ||
|
|
378f151478 | ||
|
|
643850907c | ||
|
|
b1acfe458c | ||
|
|
d3ec14f06f | ||
|
|
8d84bc8562 | ||
|
|
bbcee36106 | ||
|
|
184ff51774 | ||
|
|
b62a0c8f3e | ||
|
|
a137d38416 | ||
|
|
b4b1033f69 | ||
|
|
9afa66607d | ||
|
|
406670c3d6 | ||
|
|
1811842979 | ||
|
|
b7e81f7ff4 | ||
|
|
5f86454175 | ||
|
|
df8a248678 |
@@ -7,6 +7,7 @@ about: Create a report to help us improve
|
||||
<!-- Please use English language -->
|
||||
<!-- Before creating an issue please make sure you are using the latest version of Docsify. -->
|
||||
<!-- Please ask questions on StackOverflow: https://stackoverflow.com/questions/ask?tags=docsify -->
|
||||
<!-- Please ask questions on gitter: https://gitter.im/docsifyjs/Lobby -->
|
||||
|
||||
## Bug Report
|
||||
|
||||
@@ -36,3 +37,9 @@ about: Create a report to help us improve
|
||||
|
||||
<!-- Love docsify? Please consider supporting our collective:
|
||||
👉 https://opencollective.com/docsify/donate -->
|
||||
|
||||
#### Please create a reproducible sandbox
|
||||
|
||||
[](https://codesandbox.io/s/307qqv236)
|
||||
|
||||
#### Mention the docsify version in which this bug was not present (if any)
|
||||
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
tasks:
|
||||
- command: gp await-port 3000 && sleep 3 && gp preview $(gp url 3000)
|
||||
- init: npm install
|
||||
command: npm run dev
|
||||
ports:
|
||||
- port: 3000
|
||||
onOpen: ignore
|
||||
vscode:
|
||||
extensions:
|
||||
- sysoev.language-stylus@1.11.0:xX39oruAJ5UQzTNVRdbBaQ==
|
||||
+56
-2
@@ -1,3 +1,25 @@
|
||||
## [4.11.3](https://github.com/docsifyjs/docsify/compare/v4.11.2...v4.11.3) (2020-03-24)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* fix: digit issue with sidebar (complete REVERT to old method) ([154abf5](https://github.com/docsifyjs/docsify/commit/154abf59a6153e84b018fcdffa86892776d6da7d))
|
||||
|
||||
|
||||
|
||||
## [4.11.2](https://github.com/docsifyjs/docsify/compare/v4.11.1...v4.11.2) (2020-03-09)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* fixed rendering of color in coverpage issue ([406670c](https://github.com/docsifyjs/docsify/commit/406670c3d619a627142900fd45019fb8ce00f60a))
|
||||
|
||||
|
||||
|
||||
## [4.11.1](https://github.com/docsifyjs/docsify/compare/v4.11.0...v4.11.1) (2020-03-09)
|
||||
|
||||
|
||||
|
||||
# [4.11.0](https://github.com/docsifyjs/docsify/compare/v4.10.2...v4.11.0) (2020-03-09)
|
||||
|
||||
|
||||
@@ -6,6 +28,9 @@
|
||||
* emojis in titles not working correctly and update ([#1016](https://github.com/docsifyjs/docsify/issues/1016)) ([b3d9b96](https://github.com/docsifyjs/docsify/commit/b3d9b966dfbb6f456c2c457da1d2a366e85d9190))
|
||||
* searching table content ([6184e50](https://github.com/docsifyjs/docsify/commit/6184e502629932ca71fdd0a1b10150d118f5a7c8))
|
||||
* stage modified files as part of pre-commit hook ([#985](https://github.com/docsifyjs/docsify/issues/985)) ([5b77b0f](https://github.com/docsifyjs/docsify/commit/5b77b0f628f056b7ebb6d0b617561d19964516a2))
|
||||
* config initialization and coercion ([#861](https://github.com/docsifyjs/docsify/pull/861))
|
||||
* strip indent when embedding code fragment ([#996](https://github.com/docsifyjs/docsify/pull/996))
|
||||
* Ensure autoHeader dom result is similar to parsed H1 ([#811](https://github.com/docsifyjs/docsify/pull/811))
|
||||
* upgrade docsify from 4.9.4 to 4.10.2 ([#1054](https://github.com/docsifyjs/docsify/issues/1054)) ([78290b2](https://github.com/docsifyjs/docsify/commit/78290b21038a3ae09c4c7438bd89b14ca4c02805))
|
||||
* upgrade medium-zoom from 1.0.4 to 1.0.5 ([39ebd73](https://github.com/docsifyjs/docsify/commit/39ebd73021290439180878cae32e663b9e60e214))
|
||||
* upgrade prismjs from 1.17.1 to 1.19.0 ([9981c43](https://github.com/docsifyjs/docsify/commit/9981c4361ad690d0ed32cf1fb5b48cc5b9f770bb))
|
||||
@@ -13,13 +38,42 @@
|
||||
|
||||
### Features
|
||||
|
||||
* **chore:** configure pre-commit hook ([#983](https://github.com/docsifyjs/docsify/issues/983)) ([eea41a1](https://github.com/docsifyjs/docsify/commit/eea41a1207c46533ea9c6c59d82e2c94aa4dd70e))
|
||||
* configure pre-commit hook ([#983](https://github.com/docsifyjs/docsify/issues/983)) ([eea41a1](https://github.com/docsifyjs/docsify/commit/eea41a1207c46533ea9c6c59d82e2c94aa4dd70e))
|
||||
* Add a prepare script. ([efbea24](https://github.com/docsifyjs/docsify/commit/efbea24de71f2287993b52ed1cef1a2dd6a53f81))
|
||||
* added capability to add css class and id to images + links + refactoring ([#820](https://github.com/docsifyjs/docsify/issues/820)) ([724ac02](https://github.com/docsifyjs/docsify/commit/724ac024ddfc28e93d8b5dd909e722747286fa00))
|
||||
* added dark mode to docs closes [#1031](https://github.com/docsifyjs/docsify/issues/1031) ([dc43d3c](https://github.com/docsifyjs/docsify/commit/dc43d3c512c2f04750e76176c25ece626ae7fe2a))
|
||||
* new option hideSidebar ([#1026](https://github.com/docsifyjs/docsify/issues/1026)) ([b7547f1](https://github.com/docsifyjs/docsify/commit/b7547f151e928b3a0eb6a94b2af36023da4fa877))
|
||||
* new option `hideSidebar` ([#1026](https://github.com/docsifyjs/docsify/issues/1026)) ([b7547f1](https://github.com/docsifyjs/docsify/commit/b7547f151e928b3a0eb6a94b2af36023da4fa877))
|
||||
* new option `topMargin` ([#1045](https://github.com/docsifyjs/docsify/pull/1045)) ([8faee03](https://github.com/docsifyjs/docsify/pull/1024/commits/b53ea1e304d3a2782b125c1d8711295d88faee03))
|
||||
|
||||
|
||||
### Docs
|
||||
|
||||
* update docs for the `name` config option ([#992](https://github.com/docsifyjs/docsify/pull/992))
|
||||
* about cache ([#854](https://github.com/docsifyjs/docsify/pull/854))
|
||||
* removed FOSSA badge
|
||||
* documented `__colon__` tip ([#1025](https://github.com/docsifyjs/docsify/pull/1025))
|
||||
|
||||
### Chore
|
||||
|
||||
* Migrate relative links to absolute in embedded markdown ([#867](https://github.com/docsifyjs/docsify/pull/867))
|
||||
* smarter scroll behavior ([#744](https://github.com/docsifyjs/docsify/pull/744))
|
||||
* improve basic layout style ([#884](https://github.com/docsifyjs/docsify/pull/884))
|
||||
* There are currently {three=>four} themes available. ([#892](https://github.com/docsifyjs/docsify/pull/892))
|
||||
* Added a redirect for images to show up in Amplify ([#918](https://github.com/docsifyjs/docsify/pull/918))
|
||||
* removed the escaping of the name of sidebar ([#991](https://github.com/docsifyjs/docsify/pull/991))
|
||||
* Eslint fixes for v4x ([#989](https://github.com/docsifyjs/docsify/pull/989))
|
||||
* added github Actions for CI ([#1000](https://github.com/docsifyjs/docsify/pull/1000))
|
||||
* Add a prepare script. ([#1010](https://github.com/docsifyjs/docsify/pull/1010))
|
||||
* chore(GH-action): using ubuntu 16 and removed node 8 from CI
|
||||
* chore: add config ([#1014](https://github.com/docsifyjs/docsify/pull/1014))
|
||||
* chore(stale): added enhancement label to exemptlabels
|
||||
* chore(stale): added bug label to exemptlabels
|
||||
* .markdown-section max-width 800px to 80% ([#1017](https://github.com/docsifyjs/docsify/pull/1017))
|
||||
* changed the CDN from unpkg to jsDelivr #1020 ([#1022](https://github.com/docsifyjs/docsify/pull/1022))
|
||||
* migrate CI to github, refactore CI and npm scripts, linting fixes ([#1023](https://github.com/docsifyjs/docsify/pull/1023))
|
||||
* chore(readme): added CI badges and fixed the logo issue
|
||||
* added new linter config ([#1028](https://github.com/docsifyjs/docsify/pull/1028))
|
||||
|
||||
|
||||
## [4.10.2](https://github.com/docsifyjs/docsify/compare/v4.10.0...v4.10.2) (2019-12-16)
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
<a href="https://www.npmjs.com/package/docsify"><img alt="npm" src="https://img.shields.io/npm/v/docsify.svg?style=flat-square"></a>
|
||||
<a href="https://github.com/QingWei-Li/donate"><img alt="donate" src="https://img.shields.io/badge/%24-donate-ff69b4.svg?style=flat-square"></a>
|
||||
<a href="https://gitter.im/docsifyjs/Lobby?utm_source=share-link&utm_medium=link&utm_campaign=share-link"><img alt="gitter" src="https://img.shields.io/gitter/room/docsifyjs/docsify.svg?style=flat-square"></a>
|
||||
<a href="https://gitpod.io/#https://github.com/docsifyjs/docsify"><img src="https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod" alt="Gitpod Ready-to-Code"></a>
|
||||
</p>
|
||||
|
||||
<p align="center">Gold Sponsor via <a href="https://opencollective.com/docsify">Open Collective</a></p>
|
||||
@@ -69,6 +70,18 @@ Move to [awesome-docsify](https://github.com/docsifyjs/awesome-docsify#showcase)
|
||||
|
||||
## Contributing
|
||||
|
||||
### Online one-click setup for Contributing
|
||||
|
||||
You can use Gitpod(A free online VS Code-like IDE) for contributing. With single click it'll launch a workspace and automatically:
|
||||
|
||||
- clone the docsify repo.
|
||||
- install the dependencies.
|
||||
- start `npm run dev`.
|
||||
|
||||
So that you can start straight away.
|
||||
|
||||
[](https://gitpod.io/#https://github.com/docsifyjs/docsify)
|
||||
|
||||
- Fork it!
|
||||
- Create your feature branch: `git checkout -b my-new-feature`
|
||||
- Commit your changes: `git commit -am 'Add some feature'`
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||

|
||||
|
||||
# docsify <small>4.11.0</small>
|
||||
# docsify <small>4.11.3</small>
|
||||
|
||||
> A magical documentation site generator.
|
||||
|
||||
|
||||
Generated
+1
-7
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "docsify",
|
||||
"version": "4.11.0",
|
||||
"version": "4.11.3",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
@@ -3606,12 +3606,6 @@
|
||||
"integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==",
|
||||
"dev": true
|
||||
},
|
||||
"css.escape": {
|
||||
"version": "1.5.1",
|
||||
"resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz",
|
||||
"integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=",
|
||||
"dev": true
|
||||
},
|
||||
"cssesc": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz",
|
||||
|
||||
+1
-2
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "docsify",
|
||||
"version": "4.11.0",
|
||||
"version": "4.11.3",
|
||||
"description": "A magical documentation generator.",
|
||||
"author": {
|
||||
"name": "qingwei-li",
|
||||
@@ -76,7 +76,6 @@
|
||||
"conventional-changelog-cli": "^2.0.25",
|
||||
"copy-dir": "^1.2.0",
|
||||
"cross-env": "^6.0.3",
|
||||
"css.escape": "^1.5.1",
|
||||
"cssnano": "^4.1.10",
|
||||
"cypress": "^3.8.1",
|
||||
"cypress-image-snapshot": "^3.1.1",
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import { readFileSync } from 'fs';
|
||||
import { resolve, basename } from 'path';
|
||||
import resolvePathname from 'resolve-pathname';
|
||||
import debug from 'debug';
|
||||
import fetch from 'node-fetch';
|
||||
import { AbstractHistory } from '../../src/core/router/history/abstract';
|
||||
import { Compiler } from '../../src/core/render/compiler';
|
||||
import { isAbsolutePath } from '../../src/core/router/util';
|
||||
import * as tpl from '../../src/core/render/tpl';
|
||||
import { prerenderEmbed } from '../../src/core/render/embed';
|
||||
import fetch from 'node-fetch';
|
||||
import debug from 'debug';
|
||||
|
||||
function cwd(...args) {
|
||||
return resolve(process.cwd(), ...args);
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "docsify-server-renderer",
|
||||
"version": "4.11.0",
|
||||
"version": "4.11.2",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "docsify-server-renderer",
|
||||
"version": "4.11.0",
|
||||
"version": "4.11.2",
|
||||
"description": "docsify server renderer",
|
||||
"author": {
|
||||
"name": "qingwei-li",
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
import Tweezer from 'tweezer.js';
|
||||
import cssEscape from 'css.escape';
|
||||
import { isMobile } from '../util/env';
|
||||
import * as dom from '../util/dom';
|
||||
import config from '../config';
|
||||
import Tweezer from 'tweezer.js';
|
||||
|
||||
const nav = {};
|
||||
let hoverOver = false;
|
||||
@@ -144,7 +143,7 @@ export function scrollIntoView(path, id) {
|
||||
return;
|
||||
}
|
||||
const topMargin = config().topMargin;
|
||||
const section = dom.find('#' + cssEscape(id));
|
||||
const section = dom.find('#' + id);
|
||||
section && scrollTo(section, topMargin);
|
||||
|
||||
const li = nav[getNavKey(path, id)];
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import marked from 'marked';
|
||||
import prism from 'prismjs';
|
||||
import * as util from './util';
|
||||
import * as dom from './util/dom';
|
||||
import { Compiler } from './render/compiler';
|
||||
import { slugify } from './render/slugify';
|
||||
import { get } from './fetch/ajax';
|
||||
import prism from 'prismjs';
|
||||
import marked from 'marked';
|
||||
|
||||
export default function() {
|
||||
window.Docsify = {
|
||||
|
||||
@@ -1,40 +1,20 @@
|
||||
import marked from 'marked';
|
||||
import { isAbsolutePath, getPath, getParentPath } from '../router/util';
|
||||
import { isFn, merge, cached, isPrimitive } from '../util/core';
|
||||
import { tree as treeTpl } from './tpl';
|
||||
import { genTree } from './gen-tree';
|
||||
import { slugify } from './slugify';
|
||||
import { emojify } from './emojify';
|
||||
import { getAndRemoveConfig } from './utils';
|
||||
import { imageCompiler } from './compiler/image';
|
||||
import { highlightCodeCompiler } from './compiler/code';
|
||||
import { paragraphCompiler } from './compiler/paragraph';
|
||||
import { taskListCompiler } from './compiler/taskList';
|
||||
import { taskListItemCompiler } from './compiler/taskListItem';
|
||||
import { linkCompiler } from './compiler/link';
|
||||
import marked from 'marked';
|
||||
|
||||
const cachedLinks = {};
|
||||
|
||||
export function getAndRemoveConfig(str = '') {
|
||||
const config = {};
|
||||
|
||||
if (str) {
|
||||
str = str
|
||||
.replace(/^'/, '')
|
||||
.replace(/'$/, '')
|
||||
.replace(/(?:^|\s):([\w-]+:?)=?([\w-]+)?/g, (m, key, value) => {
|
||||
if (key.indexOf(':') === -1) {
|
||||
config[key] = (value && value.replace(/"/g, '')) || true;
|
||||
return '';
|
||||
}
|
||||
|
||||
return m;
|
||||
})
|
||||
.trim();
|
||||
}
|
||||
|
||||
return { str, config };
|
||||
}
|
||||
|
||||
const compileMedia = {
|
||||
markdown(url) {
|
||||
return {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { getAndRemoveConfig } from '../compiler';
|
||||
import { getAndRemoveConfig } from '../utils';
|
||||
import { slugify } from './slugify';
|
||||
|
||||
export const headingCompiler = ({ renderer, router, _self }) =>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { getAndRemoveConfig } from '../compiler';
|
||||
import { getAndRemoveConfig } from '../utils';
|
||||
import { isAbsolutePath, getPath, getParentPath } from '../../router/util';
|
||||
|
||||
export const imageCompiler = ({ renderer, contentBase, router }) =>
|
||||
@@ -38,7 +38,11 @@ export const imageCompiler = ({ renderer, contentBase, router }) =>
|
||||
url = getPath(contentBase, getParentPath(router.getCurrentPath()), href);
|
||||
}
|
||||
|
||||
return `<img src="${url}" data-origin="${href}" alt="${text}" ${attrs.join(
|
||||
' '
|
||||
)} />`;
|
||||
if (attrs.length > 0) {
|
||||
return `<img src="${url}" data-origin="${href}" alt="${text}" ${attrs.join(
|
||||
' '
|
||||
)} />`;
|
||||
}
|
||||
|
||||
return `<img src="${url}" data-origin="${href}" alt="${text}"${attrs}>`;
|
||||
});
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { getAndRemoveConfig } from '../compiler';
|
||||
import { getAndRemoveConfig } from '../utils';
|
||||
import { isAbsolutePath } from '../../router/util';
|
||||
|
||||
export const linkCompiler = ({ renderer, router, linkTarget, compilerClass }) =>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import stripIndent from 'strip-indent';
|
||||
import { get } from '../fetch/ajax';
|
||||
import { merge } from '../util/core';
|
||||
import stripIndent from 'strip-indent';
|
||||
|
||||
const cached = {};
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
/* eslint-disable no-unused-vars */
|
||||
import tinydate from 'tinydate';
|
||||
import * as dom from '../util/dom';
|
||||
import cssVars from '../util/polyfill/css-vars';
|
||||
import { callHook } from '../init/lifecycle';
|
||||
@@ -11,6 +10,7 @@ import { scrollActiveSidebar } from '../event/scroll';
|
||||
import { Compiler } from './compiler';
|
||||
import * as tpl from './tpl';
|
||||
import { prerenderEmbed } from './embed';
|
||||
import tinydate from 'tinydate';
|
||||
|
||||
function executeScript() {
|
||||
const script = dom
|
||||
|
||||
@@ -18,7 +18,8 @@ export function slugify(str) {
|
||||
.replace(/<[^>\d]+>/g, '')
|
||||
.replace(re, '')
|
||||
.replace(/\s/g, '-')
|
||||
.replace(/-+/g, '-');
|
||||
.replace(/-+/g, '-')
|
||||
.replace(/^(\d)/, '_$1');
|
||||
let count = cache[slug];
|
||||
|
||||
count = hasOwn.call(cache, slug) ? count + 1 : 0;
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
export function getAndRemoveConfig(str = '') {
|
||||
const config = {};
|
||||
|
||||
if (str) {
|
||||
str = str
|
||||
.replace(/^'/, '')
|
||||
.replace(/'$/, '')
|
||||
.replace(/(?:^|\s):([\w-]+:?)=?([\w-]+)?/g, (m, key, value) => {
|
||||
if (key.indexOf(':') === -1) {
|
||||
config[key] = (value && value.replace(/"/g, '')) || true;
|
||||
return '';
|
||||
}
|
||||
|
||||
return m;
|
||||
})
|
||||
.trim();
|
||||
}
|
||||
|
||||
return { str, config };
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
import { supportsPushState } from '../util/env';
|
||||
import * as dom from '../util/dom';
|
||||
import { noop } from '../util/core';
|
||||
import { HashHistory } from './history/hash';
|
||||
import { HTML5History } from './history/html5';
|
||||
import { noop } from '../util/core';
|
||||
|
||||
export function routerMixin(proto) {
|
||||
proto.route = {};
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
require = require('esm')(
|
||||
module /* , options */
|
||||
); /* eslint-disable-line no-global-assign */
|
||||
const { expect } = require('chai');
|
||||
const { History } = require('../../src/core/router/history/base');
|
||||
const { expect } = require('chai');
|
||||
|
||||
class MockHistory extends History {
|
||||
parse(path) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
const { expect } = require('chai');
|
||||
const { init, expectSameDom } = require('../_helper');
|
||||
const { expect } = require('chai');
|
||||
|
||||
describe('render', function() {
|
||||
it('important content (tips)', async function() {
|
||||
@@ -107,7 +107,7 @@ text
|
||||
|
||||
expectSameDom(
|
||||
output,
|
||||
'<p><img src="http://imageUrl" data-origin="http://imageUrl" alt="alt text" /></p>'
|
||||
'<p><img src="http://imageUrl" data-origin="http://imageUrl" alt="alt text"></p>'
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
require = require('esm')(
|
||||
module /* , options */
|
||||
); /* eslint-disable-line no-global-assign */
|
||||
const { expect } = require('chai');
|
||||
const { resolvePath } = require('../../src/core/router/util');
|
||||
const { expect } = require('chai');
|
||||
|
||||
describe('router/util', function() {
|
||||
it('resolvePath', async function() {
|
||||
|
||||
Reference in New Issue
Block a user