bump 1.6.0

This commit is contained in:
qingwei.li 2017-01-10 23:33:41 +08:00
commit 87b373b841
6 changed files with 52 additions and 31 deletions

View file

@ -1,6 +1,6 @@
![logo](_media/icon.svg) ![logo](_media/icon.svg)
# docsify <small>1.5.2</small> # docsify <small>1.6.0</small>
> A magical documentation site generator. > A magical documentation site generator.

View file

@ -175,10 +175,12 @@ var merge = Object.assign || function (to) {
function scrollActiveSidebar () { function scrollActiveSidebar () {
if (isMobile()) { return } if (isMobile()) { return }
var hoveredOverSidebar = false;
var anchors = document.querySelectorAll('.anchor'); var anchors = document.querySelectorAll('.anchor');
var sidebar = document.querySelector('aside.sidebar');
var nav = {}; var nav = {};
var lis = document.querySelectorAll('.sidebar li'); var lis = sidebar.querySelectorAll('li');
var active = null; var active = sidebar.querySelector('li.active');
for (var i = 0, len = lis.length; i < len; i += 1) { for (var i = 0, len = lis.length; i < len; i += 1) {
var li = lis[i]; var li = lis[i];
@ -193,27 +195,34 @@ function scrollActiveSidebar () {
} }
function highlight () { function highlight () {
var top = document.body.scrollTop;
var last;
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]; var node = anchors[i];
var bcr = node.getBoundingClientRect();
if (bcr.top < 10 && bcr.bottom > 10) { if (node.offsetTop > top) {
var li = nav[node.getAttribute('data-id')]; if (!last) { last = node; }
break
if (!li || li === active) { return } } else {
if (active) { active.setAttribute('class', ''); } last = node;
li.setAttribute('class', 'active');
active = li;
return
} }
} }
if (!last) { return }
var li = nav[last.getAttribute('data-id')];
if (!li || li === active) { return }
if (active) { active.classList.remove('active'); }
li.classList.add('active');
active = li;
!hoveredOverSidebar && active.scrollIntoView();
} }
window.removeEventListener('scroll', highlight); window.removeEventListener('scroll', highlight);
window.addEventListener('scroll', highlight); window.addEventListener('scroll', highlight);
highlight(); sidebar.addEventListener('mouseover', function () { hoveredOverSidebar = true; });
sidebar.addEventListener('mouseleave', function () { hoveredOverSidebar = false; });
} }
function scrollIntoView () { function scrollIntoView () {
@ -221,7 +230,9 @@ function scrollIntoView () {
if (!id || !id.length) { return } if (!id || !id.length) { return }
var section = document.querySelector(decodeURIComponent(id[0])); var section = document.querySelector(decodeURIComponent(id[0]));
if (section) { section.scrollIntoView(); } if (section) { setTimeout(function () { return section.scrollIntoView(); }, 0); }
return section
} }
/** /**
@ -237,13 +248,13 @@ function activeLink (dom, activeParent) {
.forEach(function (node) { .forEach(function (node) {
if (host.indexOf(node.href) === 0 && !target) { if (host.indexOf(node.href) === 0 && !target) {
activeParent activeParent
? node.parentNode.setAttribute('class', 'active') ? node.parentNode.classList.add('active')
: node.setAttribute('class', 'active'); : node.classList.add('active');
target = node; target = node;
} else { } else {
activeParent activeParent
? node.parentNode.removeAttribute('class') ? node.parentNode.classList.remove('active')
: node.removeAttribute('class'); : node.classList.remove('active');
} }
}); });
@ -261,13 +272,18 @@ function bindToggle (dom) {
dom.addEventListener('click', function () { return body.classList.toggle('close'); }); dom.addEventListener('click', function () { return body.classList.toggle('close'); });
if (isMobile()) { if (isMobile()) {
document.querySelector('aside') var sidebar = document.querySelector('aside.sidebar');
.addEventListener('click', function (_) { return body.classList.toggle('close'); }); document.body.addEventListener('click', function (e) {
if (e.target !== dom && !dom.contains(e.target)) { body.classList.toggle('close'); }
if (sidebar.contains(e.target)) { setTimeout(function () { return activeLink(sidebar, true); }, 0); }
});
} }
} }
function scroll2Top () { function scroll2Top (offset) {
document.body.scrollTop = 0; if ( offset === void 0 ) offset = 0;
document.body.scrollTop = offset === true ? 0 : Number(offset);
} }
function sticky () { function sticky () {
@ -2439,6 +2455,7 @@ var OPTIONS$1 = {};
var markdown = marked; var markdown = marked;
var toc = []; var toc = [];
var CACHE = {}; var CACHE = {};
var TIP_RE = /^!\s/;
var renderTo = function (dom, content) { var renderTo = function (dom, content) {
dom = typeof dom === 'object' ? dom : document.querySelector(dom); dom = typeof dom === 'object' ? dom : document.querySelector(dom);
@ -2488,6 +2505,10 @@ function init (options) {
return ("<a href=\"" + href + "\" title=\"" + (title || '') + "\">" + text + "</a>") return ("<a href=\"" + href + "\" title=\"" + (title || '') + "\">" + text + "</a>")
}; };
renderer.paragraph = function (text) {
var isTip = TIP_RE.test(text);
return isTip ? ("<p class=\"tip\">" + (text.replace(TIP_RE, '')) + "</p>") : ("<p>" + text + "</p>")
};
if (typeof OPTIONS$1.markdown === 'function') { if (typeof OPTIONS$1.markdown === 'function') {
markdown.setOptions({ renderer: renderer }); markdown.setOptions({ renderer: renderer });
@ -2531,7 +2552,7 @@ function renderArticle (content) {
var vm = new Vue({ el: 'main' }); // eslint-disable-line var vm = new Vue({ el: 'main' }); // eslint-disable-line
vm.$nextTick(function (_) { return scrollActiveSidebar(); }); vm.$nextTick(function (_) { return scrollActiveSidebar(); });
} }
if (OPTIONS$1.auto2top) { scroll2Top(); } if (OPTIONS$1.auto2top) { setTimeout(function () { return scroll2Top(OPTIONS$1.auto2top); }, 0); }
} }
/** /**
@ -2561,7 +2582,7 @@ function renderSidebar (content) {
renderTo('aside.sidebar', html); renderTo('aside.sidebar', html);
var target = activeLink('aside.sidebar', true); var target = activeLink('aside.sidebar', true);
if (content) { renderSubSidebar(target); } if (target) { renderSubSidebar(target); }
toc = []; toc = [];
scrollActiveSidebar(); scrollActiveSidebar();

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