diff --git a/CHANGELOG.md b/CHANGELOG.md index bac93c32..a44a1396 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,9 @@ ``` +### Bug fixes +- fix sidebar style + ## 2.0.3 ### Bug fixes - fix: rendering emojis diff --git a/docs/_coverpage.md b/docs/_coverpage.md index bc99caab..42151edb 100644 --- a/docs/_coverpage.md +++ b/docs/_coverpage.md @@ -1,6 +1,6 @@ ![logo](_media/icon.svg) -# docsify 2.0.3 +# docsify 2.1.0 > A magical documentation site generator. diff --git a/docs/index.html b/docs/index.html index 16adf827..56af51f2 100644 --- a/docs/index.html +++ b/docs/index.html @@ -20,6 +20,7 @@ data-max-level="4" data-coverpage data-name="docsify"> + diff --git a/lib/docsify.js b/lib/docsify.js index 58599404..de4fbb9b 100644 --- a/lib/docsify.js +++ b/lib/docsify.js @@ -1,4 +1,4 @@ -var Docsify = (function () { +var D = (function () { 'use strict'; /** @@ -97,7 +97,7 @@ function getRoute () { var loc = window.location; if (cacheHash === loc.hash && !isNil(cacheRoute$1)) { return cacheRoute$1 } - var route = loc.hash.match(/^#\/([^#]+)/); + var route = loc.hash.replace(/%23/g, '#').match(/^#\/([^#]+)/); if (route && route.length === 2) { route = route[1]; @@ -175,6 +175,20 @@ function emojify (text) { .replace(/__colon__/g, ':') } + + +var utils = Object.freeze({ + load: load, + genTree: genTree, + camel2kebab: camel2kebab, + isNil: isNil, + getRoute: getRoute, + isMobile: isMobile, + slugify: slugify, + merge: merge, + emojify: emojify +}); + /** * Active sidebar when scroll * @link https://buble.surge.sh/ @@ -184,7 +198,7 @@ function scrollActiveSidebar () { var hoveredOverSidebar = false; var anchors = document.querySelectorAll('.anchor'); - var sidebar = document.querySelector('aside.sidebar'); + var sidebar = document.querySelector('.sidebar'); var sidebarHeight = sidebar.clientHeight; var nav = {}; @@ -299,7 +313,7 @@ function bindToggle (dom) { dom.addEventListener('click', function () { return body.classList.toggle('close'); }); if (isMobile()) { - var sidebar = document.querySelector('aside.sidebar'); + var sidebar = document.querySelector('.sidebar'); sidebar.addEventListener('click', function () { body.classList.toggle('close'); setTimeout(function () { return activeLink(sidebar, true); }, 0); @@ -2449,7 +2463,7 @@ function corner (data) { * Render main content */ function main () { - var aside = (toggle()) + ""; + var aside = (toggle()) + ""; return (isMobile() ? (aside + "
") : ("
" + aside)) + "
\n
\n
\n
" @@ -2499,7 +2513,7 @@ function theme (color) { } function replaceVar (block) { - block.innerHTML = block.innerHTML.replace(/var\(\s*--theme-color.*?\)/g, __docsify__.themeColor); + block.innerHTML = block.innerHTML.replace(/var\(\s*--theme-color.*?\)/g, $docsify.themeColor); } function cssVars () { @@ -2565,7 +2579,7 @@ function init () { }; renderer.link = function (href, title, text) { if (!/:/.test(href)) { - href = ("#/" + href).replace(/\/\//g, '/'); + href = ("#/" + href).replace(/\/+/g, '/'); } return ("" + text + "") @@ -2579,16 +2593,22 @@ function init () { return ("

" + text + "

") }; - if (typeof __docsify__.markdown === 'function') { + if (typeof $docsify.markdown === 'function') { markdown.setOptions({ renderer: renderer }); - markdown = __docsify__.markdown.call(this, markdown); + markdown = $docsify.markdown.call(this, markdown); } else { - markdown.setOptions(merge({ renderer: renderer }, __docsify__.markdown)); + markdown.setOptions(merge({ renderer: renderer }, $docsify.markdown)); } var md = markdown; markdown = function (text) { return emojify(md(text)); }; + + window.Docsify.utils.marked = function (text) { + var result = markdown(text); + toc = []; + return result + }; } /** @@ -2596,27 +2616,35 @@ function init () { */ function renderApp (dom, replace) { var nav = document.querySelector('nav') || document.createElement('nav'); + var body = document.body; + var head = document.head; - if (!__docsify__.repo) { nav.classList.add('no-badge'); } + if (!$docsify.repo) { nav.classList.add('no-badge'); } - dom[replace ? 'outerHTML' : 'innerHTML'] = corner(__docsify__.repo) + - (__docsify__.coverpage ? cover() : '') + + dom[replace ? 'outerHTML' : 'innerHTML'] = corner($docsify.repo) + + ($docsify.coverpage ? cover() : '') + main(); - document.body.insertBefore(nav, document.body.children[0]); + body.insertBefore(nav, body.children[0]); // theme color - if (__docsify__.themeColor) { - document.head.innerHTML += theme(__docsify__.themeColor); + if ($docsify.themeColor) { + head.innerHTML += theme($docsify.themeColor); cssVars(); } + // render name + if ($docsify.name) { + var aside = document.querySelector('.sidebar'); + aside.innerHTML = "

" + ($docsify.name) + "

" + aside.innerHTML; + } + // bind toggle bindToggle('button.sidebar-toggle'); // bind sticky effect - if (__docsify__.coverpage) { + if ($docsify.coverpage) { !isMobile() && window.addEventListener('scroll', sticky); } else { - document.body.classList.add('sticky'); + body.classList.add('sticky'); } } @@ -2625,7 +2653,7 @@ function renderApp (dom, replace) { */ function renderArticle (content) { renderTo('article', content ? markdown(content) : 'not found'); - if (!__docsify__.loadSidebar) { renderSidebar(); } + if (!$docsify.loadSidebar) { renderSidebar(); } if (content && typeof Vue !== 'undefined') { CACHE.vm && CACHE.vm.$destroy(); @@ -2642,7 +2670,7 @@ function renderArticle (content) { : new Vue({ el: 'main' }); // eslint-disable-line CACHE.vm && CACHE.vm.$nextTick(function (_) { return scrollActiveSidebar(); }); } - if (__docsify__.auto2top) { setTimeout(function () { return scroll2Top(__docsify__.auto2top); }, 0); } + if ($docsify.auto2top) { setTimeout(function () { return scroll2Top($docsify.auto2top); }, 0); } } /** @@ -2667,12 +2695,11 @@ function renderSidebar (content) { // find url tag html = html.match(/]*>([\s\S]+)<\/ul>/g)[0]; } else { - html = tree(genTree(toc, __docsify__.maxLevel), '