bump 1.3.0
This commit is contained in:
parent
50addfdac6
commit
a39eddba74
6 changed files with 74 additions and 18 deletions
|
|
@ -1,6 +1,6 @@
|
||||||

|

|
||||||
|
|
||||||
# docsify <small>1.2.0</small>
|
# docsify <small>1.3.0</small>
|
||||||
|
|
||||||
> A magical documentation site generator.
|
> A magical documentation site generator.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -137,11 +137,11 @@ function scrollActiveSidebar () {
|
||||||
|
|
||||||
function highlight () {
|
function highlight () {
|
||||||
for (var i = 0, len = anchors.length; i < len; i += 1) {
|
for (var i = 0, len = anchors.length; i < len; i += 1) {
|
||||||
var node = anchors[i].parentNode;
|
var node = anchors[i];
|
||||||
var bcr = node.getBoundingClientRect();
|
var bcr = node.getBoundingClientRect();
|
||||||
|
|
||||||
if (bcr.top < 10 && bcr.bottom > 10) {
|
if (bcr.top < 10 && bcr.bottom > 10) {
|
||||||
var li = nav[node.id];
|
var li = nav[node.getAttribute('data-id')];
|
||||||
|
|
||||||
if (!li || li === active) { return }
|
if (!li || li === active) { return }
|
||||||
if (active) { active.setAttribute('class', ''); }
|
if (active) { active.setAttribute('class', ''); }
|
||||||
|
|
@ -154,9 +154,8 @@ function scrollActiveSidebar () {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var dom = document.querySelector('main .content');
|
window.removeEventListener('scroll', highlight);
|
||||||
dom.removeEventListener('scroll', highlight);
|
window.addEventListener('scroll', highlight);
|
||||||
dom.addEventListener('scroll', highlight);
|
|
||||||
highlight();
|
highlight();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -215,6 +214,19 @@ function scroll2Top () {
|
||||||
cacheContentDOM.scrollTop = 0;
|
cacheContentDOM.scrollTop = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function sticky () {
|
||||||
|
var dom = document.querySelector('section.cover');
|
||||||
|
var coverHeight = dom.getBoundingClientRect().height;
|
||||||
|
|
||||||
|
return (function () {
|
||||||
|
if (window.pageYOffset >= coverHeight || dom.classList.contains('hidden')) {
|
||||||
|
document.body.classList.add('sticky');
|
||||||
|
} else {
|
||||||
|
document.body.classList.remove('sticky');
|
||||||
|
}
|
||||||
|
})()
|
||||||
|
}
|
||||||
|
|
||||||
var commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
var commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -2324,14 +2336,22 @@ function corner (data) {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Render main content
|
* Render main content
|
||||||
* @return {[type]} [description]
|
|
||||||
*/
|
*/
|
||||||
function main () {
|
function main (tpl) {
|
||||||
return "<main>\n <aside class=\"sidebar\"></aside>\n <section class=\"content\">\n <article class=\"markdown-section\"></article>\n </section>\n </main>"
|
return ("<main>\n " + tpl + "\n <aside class=\"sidebar\"></aside>\n <section class=\"content\">\n <article class=\"markdown-section\"></article>\n </section>\n </main>")
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggle (bool) {
|
/**
|
||||||
if (!bool) { return '' }
|
* Cover Page
|
||||||
|
*/
|
||||||
|
function cover () {
|
||||||
|
var SL = ', 100%, 85%';
|
||||||
|
var bgc = "linear-gradient(to left bottom, hsl(" + (Math.floor(Math.random() * 255) + SL) + ") 0%, hsl(" + (Math.floor(Math.random() * 255) + SL) + ") 100%)";
|
||||||
|
|
||||||
|
return ("<section class=\"cover\" style=\"background: " + bgc + "\">\n <div class=\"cover-main\"></div>\n </section>")
|
||||||
|
}
|
||||||
|
|
||||||
|
function toggle () {
|
||||||
return "<button class=\"sidebar-toggle\">\n <span></span><span></span><span></span>\n </button>"
|
return "<button class=\"sidebar-toggle\">\n <span></span><span></span><span></span>\n </button>"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2384,7 +2404,7 @@ renderer.heading = function (text, level) {
|
||||||
|
|
||||||
toc.push({ level: level, slug: (route + "#" + (encodeURIComponent(slug))), title: text });
|
toc.push({ level: level, slug: (route + "#" + (encodeURIComponent(slug))), title: text });
|
||||||
|
|
||||||
return ("<h" + level + " id=\"" + slug + "\"><a href=\"" + route + "#" + slug + "\" class=\"anchor\"></a>" + text + "</h" + level + ">")
|
return ("<a href=\"" + route + "#" + slug + "\" data-id=\"" + slug + "\" class=\"anchor\"><h" + level + " id=\"" + slug + "\">" + text + "</h" + level + "></a>")
|
||||||
};
|
};
|
||||||
// highlight code
|
// highlight code
|
||||||
renderer.code = function (code, lang) {
|
renderer.code = function (code, lang) {
|
||||||
|
|
@ -2409,11 +2429,21 @@ marked.setOptions({ renderer: renderer });
|
||||||
function renderApp (dom, replace) {
|
function renderApp (dom, replace) {
|
||||||
var nav = document.querySelector('nav') || document.createElement('nav');
|
var nav = document.querySelector('nav') || document.createElement('nav');
|
||||||
|
|
||||||
dom[replace ? 'outerHTML' : 'innerHTML'] = toggle(OPTIONS$1.sidebarToggle) + corner(OPTIONS$1.repo) + main();
|
if (!OPTIONS$1.repo) { nav.classList.add('no-badge'); }
|
||||||
|
|
||||||
|
dom[replace ? 'outerHTML' : 'innerHTML'] = corner(OPTIONS$1.repo) +
|
||||||
|
(OPTIONS$1.coverpage ? cover() : '') +
|
||||||
|
main(OPTIONS$1.sidebarToggle ? toggle() : '');
|
||||||
document.body.insertBefore(nav, document.body.children[0]);
|
document.body.insertBefore(nav, document.body.children[0]);
|
||||||
|
|
||||||
// bind toggle
|
// bind toggle
|
||||||
bindToggle('button.sidebar-toggle');
|
bindToggle('button.sidebar-toggle');
|
||||||
|
// bind sticky effect
|
||||||
|
if (OPTIONS$1.coverpage) {
|
||||||
|
!isMobile() && window.addEventListener('scroll', sticky);
|
||||||
|
} else {
|
||||||
|
document.body.classList.add('sticky');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -2464,6 +2494,20 @@ function renderSidebar (content) {
|
||||||
toc = [];
|
toc = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cover Page
|
||||||
|
*/
|
||||||
|
function renderCover (content) {
|
||||||
|
renderCover.dom = renderCover.dom || document.querySelector('section.cover');
|
||||||
|
if (!content) {
|
||||||
|
renderCover.dom.classList.add('hidden');
|
||||||
|
} else {
|
||||||
|
renderCover.dom.classList.remove('hidden');
|
||||||
|
!renderCover.rendered && renderTo('.cover-main', marked(content));
|
||||||
|
renderCover.rendered = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* render loading bar
|
* render loading bar
|
||||||
* @return {[type]} [description]
|
* @return {[type]} [description]
|
||||||
|
|
@ -2519,6 +2563,7 @@ var OPTIONS = {
|
||||||
loadNavbar: null,
|
loadNavbar: null,
|
||||||
router: false,
|
router: false,
|
||||||
homepage: 'README.md',
|
homepage: 'README.md',
|
||||||
|
coverpage: '',
|
||||||
basePath: '',
|
basePath: '',
|
||||||
auto2top: false
|
auto2top: false
|
||||||
};
|
};
|
||||||
|
|
@ -2532,6 +2577,7 @@ if (script) {
|
||||||
}
|
}
|
||||||
if (OPTIONS.loadSidebar === true) { OPTIONS.loadSidebar = '_sidebar.md'; }
|
if (OPTIONS.loadSidebar === true) { OPTIONS.loadSidebar = '_sidebar.md'; }
|
||||||
if (OPTIONS.loadNavbar === true) { OPTIONS.loadNavbar = '_navbar.md'; }
|
if (OPTIONS.loadNavbar === true) { OPTIONS.loadNavbar = '_navbar.md'; }
|
||||||
|
if (OPTIONS.coverpage === true) { OPTIONS.coverpage = '_coverpage.md'; }
|
||||||
if (OPTIONS.sidebar) { OPTIONS.sidebar = window[OPTIONS.sidebar]; }
|
if (OPTIONS.sidebar) { OPTIONS.sidebar = window[OPTIONS.sidebar]; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2563,6 +2609,15 @@ var mainRender = function (cb) {
|
||||||
page = route + ".md";
|
page = route + ".md";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Render Cover page
|
||||||
|
if (OPTIONS.coverpage) {
|
||||||
|
if (page === OPTIONS.homepage) {
|
||||||
|
load(OPTIONS.coverpage).then(renderCover);
|
||||||
|
} else {
|
||||||
|
renderCover();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
cacheXhr && cacheXhr.abort && cacheXhr.abort();
|
cacheXhr && cacheXhr.abort && cacheXhr.abort();
|
||||||
// Render markdown file
|
// Render markdown file
|
||||||
cacheXhr = load(page, 'GET', renderLoading);
|
cacheXhr = load(page, 'GET', renderLoading);
|
||||||
|
|
@ -2598,6 +2653,7 @@ var Docsify = function () {
|
||||||
mainRender(function (_) {
|
mainRender(function (_) {
|
||||||
activeLink('aside.sidebar', true);
|
activeLink('aside.sidebar', true);
|
||||||
scrollIntoView();
|
scrollIntoView();
|
||||||
|
OPTIONS.coverpage && sticky();
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
4
lib/docsify.min.js
vendored
4
lib/docsify.min.js
vendored
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
Loading…
Add table
Add a link
Reference in a new issue