mirror of
https://github.com/wahyd4/docsify.git
synced 2026-08-25 05:06:07 +10:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5d5caa1f89 | ||
|
|
1dfd6cdcfe | ||
|
|
91c6db2902 | ||
|
|
94d6603c06 | ||
|
|
920f624b5c | ||
|
|
8fb1350728 | ||
|
|
c1df94662a | ||
|
|
9b7e5f5814 | ||
|
|
432bcfb54b | ||
|
|
4f98497284 | ||
|
|
9220523a40 |
@@ -1,3 +1,16 @@
|
|||||||
|
# 3.6.2/ 2017-04-12
|
||||||
|
|
||||||
|
* feat(external-script): detect more than one script dom, fixed #146
|
||||||
|
* GA: Send hash instead of complete href (#147)
|
||||||
|
|
||||||
|
# 3.6.1 / 2017-04-09
|
||||||
|
|
||||||
|
* feat(event): Collapse the sidebar when click outside element in the small screen
|
||||||
|
|
||||||
|
# 3.6.0 / 2017-04-09
|
||||||
|
|
||||||
|
* feat(render): add mergeNavbar option, close ([#125](https://github.com/QingWei-Li/docsify/issues/125)
|
||||||
|
|
||||||
# 3.5.2/ 2017-04-05
|
# 3.5.2/ 2017-04-05
|
||||||
|
|
||||||
* add optional current route param to toURL and use it to properly compose local anchor links
|
* add optional current route param to toURL and use it to properly compose local anchor links
|
||||||
|
|||||||
@@ -29,7 +29,8 @@
|
|||||||
loadNavbar: true,
|
loadNavbar: true,
|
||||||
loadSidebar: true,
|
loadSidebar: true,
|
||||||
name: 'docsify',
|
name: 'docsify',
|
||||||
subMaxLevel: 2
|
subMaxLevel: 2,
|
||||||
|
mergeNavbar: true
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<script src="/lib/docsify.js"></script>
|
<script src="/lib/docsify.js"></script>
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||

|

|
||||||
|
|
||||||
# docsify <small>3.5</small>
|
# docsify <small>3.6</small>
|
||||||
|
|
||||||
> A magical documentation site generator.
|
> A magical documentation site generator.
|
||||||
|
|
||||||
|
|||||||
+4
-4
@@ -1,4 +1,4 @@
|
|||||||
- :uk:
|
- Translations
|
||||||
- [:cn: 中文](/zh-cn/)
|
- [:cn: 中文](/zh-cn/)
|
||||||
- [:de: Deutsch](/de-de/)
|
- [:de: Deutsch](/de-de/)
|
||||||
- [:uk: English](/)
|
- [:uk: English](/)
|
||||||
|
|||||||
@@ -305,3 +305,13 @@ window.$docsify = {
|
|||||||
noEmoji: true
|
noEmoji: true
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## merge-navbar
|
||||||
|
|
||||||
|
Navbar will be merged with the sidebar on smaller screens.
|
||||||
|
|
||||||
|
```js
|
||||||
|
window.$docsify = {
|
||||||
|
mergeNavbar: true
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
- :de:
|
|
||||||
- [:cn: 中文](/zh-cn/)
|
|
||||||
- [:de: Deutsch](/de-de/)
|
|
||||||
- [:uk: English](/)
|
|
||||||
@@ -305,3 +305,13 @@ window.$docsify = {
|
|||||||
noEmoji: true
|
noEmoji: true
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## merge-navbar
|
||||||
|
|
||||||
|
Navbar will be merged with the sidebar on smaller screens.
|
||||||
|
|
||||||
|
```js
|
||||||
|
window.$docsify = {
|
||||||
|
mergeNavbar: true
|
||||||
|
}
|
||||||
|
```
|
||||||
@@ -32,6 +32,7 @@
|
|||||||
executeScript: true,
|
executeScript: true,
|
||||||
loadSidebar: true,
|
loadSidebar: true,
|
||||||
loadNavbar: true,
|
loadNavbar: true,
|
||||||
|
mergeNavbar: true,
|
||||||
maxLevel: 4,
|
maxLevel: 4,
|
||||||
name: 'docsify',
|
name: 'docsify',
|
||||||
search: {
|
search: {
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
- :cn:
|
|
||||||
- [:cn: 中文](/zh-cn/)
|
|
||||||
- [:de: Deutsch](/de-de/)
|
|
||||||
- [:uk: English](/)
|
|
||||||
@@ -315,3 +315,14 @@ window.$docsify = {
|
|||||||
noEmoji: true
|
noEmoji: true
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## merge-navbar
|
||||||
|
|
||||||
|
小屏设备下合并导航栏到侧边栏。
|
||||||
|
|
||||||
|
```js
|
||||||
|
window.$docsify = {
|
||||||
|
mergeNavbar: true
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|||||||
+24
-13
@@ -76,7 +76,8 @@ var config = merge({
|
|||||||
autoHeader: false,
|
autoHeader: false,
|
||||||
executeScript: null,
|
executeScript: null,
|
||||||
noEmoji: false,
|
noEmoji: false,
|
||||||
ga: ''
|
ga: '',
|
||||||
|
mergeNavbar: false
|
||||||
}, window.$docsify);
|
}, window.$docsify);
|
||||||
|
|
||||||
var script = document.currentScript ||
|
var script = document.currentScript ||
|
||||||
@@ -415,17 +416,20 @@ var title = $.title;
|
|||||||
* Toggle button
|
* Toggle button
|
||||||
*/
|
*/
|
||||||
function btn (el) {
|
function btn (el) {
|
||||||
var toggle = function () { return body.classList.toggle('close'); };
|
var toggle = function (_) { return body.classList.toggle('close'); };
|
||||||
|
|
||||||
el = getNode(el);
|
el = getNode(el);
|
||||||
on(el, 'click', toggle);
|
on(el, 'click', function (e) {
|
||||||
|
e.stopPropagation();
|
||||||
|
toggle();
|
||||||
|
});
|
||||||
|
|
||||||
var sidebar = getNode('.sidebar');
|
var sidebar = getNode('.sidebar');
|
||||||
|
|
||||||
on(sidebar, 'click', function () {
|
isMobile && on(body, 'click', function (_) { return body.classList.contains('close') && toggle(); }
|
||||||
isMobile && toggle();
|
);
|
||||||
setTimeout(function () { return getAndActive(sidebar, true, true); }, 0);
|
on(sidebar, 'click', function (_) { return setTimeout((function (_) { return getAndActive(sidebar, true, true); }, 0)); }
|
||||||
});
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function sticky () {
|
function sticky () {
|
||||||
@@ -3263,12 +3267,8 @@ function initRender (vm) {
|
|||||||
|
|
||||||
var el = find(id);
|
var el = find(id);
|
||||||
var html = '';
|
var html = '';
|
||||||
|
var navAppendToTarget = body;
|
||||||
|
|
||||||
navEl.classList.add('app-nav');
|
|
||||||
|
|
||||||
if (!config.repo) {
|
|
||||||
navEl.classList.add('no-badge');
|
|
||||||
}
|
|
||||||
if (!el) {
|
if (!el) {
|
||||||
el = create(id);
|
el = create(id);
|
||||||
appendTo(body, el);
|
appendTo(body, el);
|
||||||
@@ -3283,8 +3283,19 @@ function initRender (vm) {
|
|||||||
html += main(config);
|
html += main(config);
|
||||||
// Render main app
|
// Render main app
|
||||||
vm._renderTo(el, html, true);
|
vm._renderTo(el, html, true);
|
||||||
|
|
||||||
|
if (config.mergeNavbar && isMobile) {
|
||||||
|
navAppendToTarget = find('.sidebar');
|
||||||
|
} else {
|
||||||
|
navEl.classList.add('app-nav');
|
||||||
|
|
||||||
|
if (!config.repo) {
|
||||||
|
navEl.classList.add('no-badge');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Add nav
|
// Add nav
|
||||||
before(body, navEl);
|
before(navAppendToTarget, navEl);
|
||||||
|
|
||||||
if (config.themeColor) {
|
if (config.themeColor) {
|
||||||
$.head.innerHTML += theme(config.themeColor);
|
$.head.innerHTML += theme(config.themeColor);
|
||||||
|
|||||||
Vendored
+2
-2
File diff suppressed because one or more lines are too long
@@ -4,16 +4,22 @@ this.D = this.D || {};
|
|||||||
|
|
||||||
function handleExternalScript () {
|
function handleExternalScript () {
|
||||||
var container = Docsify.dom.getNode('#main');
|
var container = Docsify.dom.getNode('#main');
|
||||||
var script = Docsify.dom.find(container, 'script');
|
var scripts = Docsify.dom.findAll(container, 'script');
|
||||||
|
|
||||||
if (script && script.src) {
|
var loop = function ( i ) {
|
||||||
var newScript = document.createElement('script');['src', 'async', 'defer'].forEach(function (attribute) {
|
var script = scripts[i];
|
||||||
newScript[attribute] = script[attribute];
|
|
||||||
});
|
|
||||||
|
|
||||||
script.parentNode.insertBefore(newScript, script);
|
if (script && script.src) {
|
||||||
script.parentNode.removeChild(script);
|
var newScript = document.createElement('script');['src', 'async', 'defer'].forEach(function (attribute) {
|
||||||
}
|
newScript[attribute] = script[attribute];
|
||||||
|
});
|
||||||
|
|
||||||
|
script.parentNode.insertBefore(newScript, script);
|
||||||
|
script.parentNode.removeChild(script);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
for (var i = scripts.length; i--;) loop( i );
|
||||||
}
|
}
|
||||||
|
|
||||||
var install = function (hook) {
|
var install = function (hook) {
|
||||||
|
|||||||
Vendored
+1
-1
@@ -1 +1 @@
|
|||||||
this.D=this.D||{},function(){"use strict";function i(){var i=Docsify.dom.getNode("#main"),n=Docsify.dom.find(i,"script");if(n&&n.src){var o=document.createElement("script");["src","async","defer"].forEach(function(i){o[i]=n[i]}),n.parentNode.insertBefore(o,n),n.parentNode.removeChild(n)}}var n=function(n){n.doneEach(i)};window.$docsify.plugins=[].concat(n,window.$docsify.plugins)}();
|
this.D=this.D||{},function(){"use strict";function n(){for(var n=Docsify.dom.getNode("#main"),i=Docsify.dom.findAll(n,"script"),o=function(n){var o=i[n];if(o&&o.src){var c=document.createElement("script");["src","async","defer"].forEach(function(n){c[n]=o[n]}),o.parentNode.insertBefore(c,o),o.parentNode.removeChild(o)}},c=i.length;c--;)o(c)}var i=function(i){i.doneEach(n)};window.$docsify.plugins=[].concat(i,window.$docsify.plugins)}();
|
||||||
|
|||||||
+1
-1
@@ -23,7 +23,7 @@ function init (id) {
|
|||||||
|
|
||||||
function collect () {
|
function collect () {
|
||||||
init(window.$docsify.ga);
|
init(window.$docsify.ga);
|
||||||
window.ga('set', 'page', location.href);
|
window.ga('set', 'page', location.hash);
|
||||||
window.ga('send', 'pageview');
|
window.ga('send', 'pageview');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Vendored
+1
-1
@@ -1 +1 @@
|
|||||||
this.D=this.D||{},function(){"use strict";function n(){var n=document.createElement("script");n.async=!0,n.src="https://www.google-analytics.com/analytics.js",document.body.appendChild(n)}function o(o){window.ga||(n(),window.ga=window.ga||function(){(window.ga.q=window.ga.q||[]).push(arguments)},window.ga.l=Number(new Date),window.ga("create",o,"auto"))}function i(){o(window.$docsify.ga),window.ga("set","page",location.href),window.ga("send","pageview")}var w=function(n){return window.$docsify.ga?void n.beforeEach(i):void console.error("[Docsify] ga is required.")};window.$docsify.plugins=[].concat(w,window.$docsify.plugins)}();
|
this.D=this.D||{},function(){"use strict";function n(){var n=document.createElement("script");n.async=!0,n.src="https://www.google-analytics.com/analytics.js",document.body.appendChild(n)}function o(o){window.ga||(n(),window.ga=window.ga||function(){(window.ga.q=window.ga.q||[]).push(arguments)},window.ga.l=Number(new Date),window.ga("create",o,"auto"))}function i(){o(window.$docsify.ga),window.ga("set","page",location.hash),window.ga("send","pageview")}var w=function(n){return window.$docsify.ga?void n.beforeEach(i):void console.error("[Docsify] ga is required.")};window.$docsify.plugins=[].concat(w,window.$docsify.plugins)}();
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "docsify",
|
"name": "docsify",
|
||||||
"version": "3.5.2",
|
"version": "3.6.2",
|
||||||
"description": "A magical documentation generator.",
|
"description": "A magical documentation generator.",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "qingwei-li",
|
"name": "qingwei-li",
|
||||||
|
|||||||
+2
-1
@@ -17,7 +17,8 @@ const config = merge({
|
|||||||
autoHeader: false,
|
autoHeader: false,
|
||||||
executeScript: null,
|
executeScript: null,
|
||||||
noEmoji: false,
|
noEmoji: false,
|
||||||
ga: ''
|
ga: '',
|
||||||
|
mergeNavbar: false
|
||||||
}, window.$docsify)
|
}, window.$docsify)
|
||||||
|
|
||||||
const script = document.currentScript ||
|
const script = document.currentScript ||
|
||||||
|
|||||||
@@ -7,17 +7,22 @@ const title = dom.$.title
|
|||||||
* Toggle button
|
* Toggle button
|
||||||
*/
|
*/
|
||||||
export function btn (el) {
|
export function btn (el) {
|
||||||
const toggle = () => dom.body.classList.toggle('close')
|
const toggle = _ => dom.body.classList.toggle('close')
|
||||||
|
|
||||||
el = dom.getNode(el)
|
el = dom.getNode(el)
|
||||||
dom.on(el, 'click', toggle)
|
dom.on(el, 'click', e => {
|
||||||
|
e.stopPropagation()
|
||||||
|
toggle()
|
||||||
|
})
|
||||||
|
|
||||||
const sidebar = dom.getNode('.sidebar')
|
const sidebar = dom.getNode('.sidebar')
|
||||||
|
|
||||||
dom.on(sidebar, 'click', () => {
|
isMobile && dom.on(dom.body, 'click', _ =>
|
||||||
isMobile && toggle()
|
dom.body.classList.contains('close') && toggle()
|
||||||
setTimeout(() => getAndActive(sidebar, true, true), 0)
|
)
|
||||||
})
|
dom.on(sidebar, 'click', _ =>
|
||||||
|
setTimeout((_ => getAndActive(sidebar, true, true), 0))
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
export function sticky () {
|
export function sticky () {
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import { markdown, sidebar, subSidebar, cover } from './compiler'
|
|||||||
import { callHook } from '../init/lifecycle'
|
import { callHook } from '../init/lifecycle'
|
||||||
import { getBasePath, getPath, isAbsolutePath } from '../route/util'
|
import { getBasePath, getPath, isAbsolutePath } from '../route/util'
|
||||||
import { isPrimitive } from '../util/core'
|
import { isPrimitive } from '../util/core'
|
||||||
|
import { isMobile } from '../util/env'
|
||||||
|
|
||||||
function executeScript () {
|
function executeScript () {
|
||||||
const script = dom.findAll('.markdown-section>script')
|
const script = dom.findAll('.markdown-section>script')
|
||||||
@@ -153,12 +154,8 @@ export function initRender (vm) {
|
|||||||
|
|
||||||
let el = dom.find(id)
|
let el = dom.find(id)
|
||||||
let html = ''
|
let html = ''
|
||||||
|
let navAppendToTarget = dom.body
|
||||||
|
|
||||||
navEl.classList.add('app-nav')
|
|
||||||
|
|
||||||
if (!config.repo) {
|
|
||||||
navEl.classList.add('no-badge')
|
|
||||||
}
|
|
||||||
if (!el) {
|
if (!el) {
|
||||||
el = dom.create(id)
|
el = dom.create(id)
|
||||||
dom.appendTo(dom.body, el)
|
dom.appendTo(dom.body, el)
|
||||||
@@ -173,8 +170,19 @@ export function initRender (vm) {
|
|||||||
html += tpl.main(config)
|
html += tpl.main(config)
|
||||||
// Render main app
|
// Render main app
|
||||||
vm._renderTo(el, html, true)
|
vm._renderTo(el, html, true)
|
||||||
|
|
||||||
|
if (config.mergeNavbar && isMobile) {
|
||||||
|
navAppendToTarget = dom.find('.sidebar')
|
||||||
|
} else {
|
||||||
|
navEl.classList.add('app-nav')
|
||||||
|
|
||||||
|
if (!config.repo) {
|
||||||
|
navEl.classList.add('no-badge')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Add nav
|
// Add nav
|
||||||
dom.before(dom.body, navEl)
|
dom.before(navAppendToTarget, navEl)
|
||||||
|
|
||||||
if (config.themeColor) {
|
if (config.themeColor) {
|
||||||
dom.$.head.innerHTML += tpl.theme(config.themeColor)
|
dom.$.head.innerHTML += tpl.theme(config.themeColor)
|
||||||
|
|||||||
@@ -1,16 +1,20 @@
|
|||||||
function handleExternalScript () {
|
function handleExternalScript () {
|
||||||
const container = Docsify.dom.getNode('#main')
|
const container = Docsify.dom.getNode('#main')
|
||||||
const script = Docsify.dom.find(container, 'script')
|
const scripts = Docsify.dom.findAll(container, 'script')
|
||||||
|
|
||||||
if (script && script.src) {
|
for (let i = scripts.length; i--;) {
|
||||||
const newScript = document.createElement('script')
|
const script = scripts[i]
|
||||||
|
|
||||||
;['src', 'async', 'defer'].forEach(attribute => {
|
if (script && script.src) {
|
||||||
newScript[attribute] = script[attribute]
|
const newScript = document.createElement('script')
|
||||||
})
|
|
||||||
|
|
||||||
script.parentNode.insertBefore(newScript, script)
|
;['src', 'async', 'defer'].forEach(attribute => {
|
||||||
script.parentNode.removeChild(script)
|
newScript[attribute] = script[attribute]
|
||||||
|
})
|
||||||
|
|
||||||
|
script.parentNode.insertBefore(newScript, script)
|
||||||
|
script.parentNode.removeChild(script)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -19,7 +19,7 @@ function init (id) {
|
|||||||
|
|
||||||
function collect () {
|
function collect () {
|
||||||
init(window.$docsify.ga)
|
init(window.$docsify.ga)
|
||||||
window.ga('set', 'page', location.href)
|
window.ga('set', 'page', location.hash)
|
||||||
window.ga('send', 'pageview')
|
window.ga('send', 'pageview')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
body:not(.ready) {
|
body:not(.ready) {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
||||||
[data-cloak], nav {
|
[data-cloak], .app-nav {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -83,7 +83,7 @@ kbd {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* navbar */
|
/* navbar */
|
||||||
nav.app-nav {
|
.app-nav {
|
||||||
left: 0;
|
left: 0;
|
||||||
margin: 25px 60px 0 0;
|
margin: 25px 60px 0 0;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@@ -238,6 +238,11 @@ main {
|
|||||||
color: inherit;
|
color: inherit;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.app-nav {
|
||||||
|
display: block;
|
||||||
|
position: static;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ul {
|
ul {
|
||||||
@@ -325,7 +330,7 @@ body.sticky {
|
|||||||
.markdown-section {
|
.markdown-section {
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
max-width: 800px;
|
max-width: 800px;
|
||||||
padding: 20px 15px 40px 15px;
|
padding: 30px 15px 40px 15px;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
> * {
|
> * {
|
||||||
@@ -430,7 +435,7 @@ body.close {
|
|||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
nav {
|
.app-nav {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -440,11 +445,11 @@ body.close {
|
|||||||
position: fixed;
|
position: fixed;
|
||||||
}
|
}
|
||||||
|
|
||||||
nav {
|
.app-nav {
|
||||||
margin-top: 16px;
|
margin-top: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
nav li ul {
|
.app-nav li ul {
|
||||||
top: 30px;
|
top: 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -465,7 +470,7 @@ body.close {
|
|||||||
transition: transform 250ms ease;
|
transition: transform 250ms ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
nav, .github-corner {
|
.app-nav, .github-corner {
|
||||||
transition: transform 250ms ease-out;
|
transition: transform 250ms ease-out;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -489,7 +494,7 @@ body.close {
|
|||||||
transform: translateX($sidebar-width);
|
transform: translateX($sidebar-width);
|
||||||
}
|
}
|
||||||
|
|
||||||
nav, .github-corner {
|
.app-nav, .github-corner {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user