Skip to content

Commit ecba3f1

Browse files
committed
bump 1.5.0
1 parent e545224 commit ecba3f1

File tree

3 files changed

+79
-46
lines changed

3 files changed

+79
-46
lines changed

docs/_coverpage.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
![logo](_media/icon.svg)
22

3-
# docsify <small>1.4.3</small>
3+
# docsify <small>1.5.0</small>
44

55
> A magical documentation site generator.
66

lib/docsify.js

Lines changed: 76 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ function slugify (string) {
118118
var re = /[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,.\/:;<=>?@\[\]^`{|}~]/g;
119119
var maintainCase = false;
120120
var replacement = '-';
121+
121122
slugify.occurrences = slugify.occurrences || {};
122123

123124
if (typeof string !== 'string') { return '' }
@@ -143,6 +144,27 @@ function slugify (string) {
143144
return slug
144145
}
145146

147+
slugify.clear = function () {
148+
slugify.occurrences = {};
149+
};
150+
151+
var hasOwnProperty = Object.prototype.hasOwnProperty;
152+
var merge = Object.assign || function (to) {
153+
var arguments$1 = arguments;
154+
155+
for (var i = 1; i < arguments.length; i++) {
156+
var from = Object(arguments$1[i]);
157+
158+
for (var key in from) {
159+
if (hasOwnProperty.call(from, key)) {
160+
to[key] = from[key];
161+
}
162+
}
163+
}
164+
165+
return to
166+
};
167+
146168
/**
147169
* Active sidebar when scroll
148170
* @link https://buble.surge.sh/
@@ -2411,50 +2433,66 @@ function tree (toc, tpl) {
24112433
}
24122434

24132435
var OPTIONS$1 = {};
2436+
var markdown = marked;
2437+
var toc = [];
24142438
var CACHE = {};
24152439

24162440
var renderTo = function (dom, content) {
24172441
dom = typeof dom === 'object' ? dom : document.querySelector(dom);
24182442
dom.innerHTML = content;
2443+
slugify.clear();
24192444

24202445
return dom
24212446
};
2422-
var toc = [];
2423-
var renderer = new marked.Renderer();
24242447

24252448
/**
2426-
* render anchor tag
2427-
* @link https://github.com/chjj/marked#overriding-renderer-methods
2449+
* init render
2450+
* @param {Object} options
24282451
*/
2429-
renderer.heading = function (text, level) {
2430-
var slug = slugify(text);
2431-
var route = '';
2452+
function init (options) {
2453+
OPTIONS$1 = options;
24322454

2433-
if (OPTIONS$1.router) {
2434-
route = "#/" + (getRoute());
2435-
}
2455+
var renderer = new marked.Renderer();
2456+
/**
2457+
* render anchor tag
2458+
* @link https://github.com/chjj/marked#overriding-renderer-methods
2459+
*/
2460+
renderer.heading = function (text, level) {
2461+
var slug = slugify(text);
2462+
var route = '';
2463+
2464+
if (OPTIONS$1.router) {
2465+
route = "#/" + (getRoute());
2466+
}
24362467

2437-
toc.push({ level: level, slug: (route + "#" + (encodeURIComponent(slug))), title: text });
2468+
toc.push({ level: level, slug: (route + "#" + (encodeURIComponent(slug))), title: text });
24382469

2439-
return ("<h" + level + " id=\"" + slug + "\"><a href=\"" + route + "#" + slug + "\" data-id=\"" + slug + "\" class=\"anchor\"><span>" + text + "</span></a></h" + level + ">")
2440-
};
2441-
// highlight code
2442-
renderer.code = function (code, lang) {
2443-
if ( lang === void 0 ) lang = '';
2470+
return ("<h" + level + " id=\"" + slug + "\"><a href=\"" + route + "#" + slug + "\" data-id=\"" + slug + "\" class=\"anchor\"><span>" + text + "</span></a></h" + level + ">")
2471+
};
2472+
// highlight code
2473+
renderer.code = function (code, lang) {
2474+
if ( lang === void 0 ) lang = '';
24442475

2445-
var hl = prism.highlight(code, prism.languages[lang] || prism.languages.markup)
2446-
.replace(/{{/g, '<span>{{</span>');
2476+
var hl = prism.highlight(code, prism.languages[lang] || prism.languages.markup)
2477+
.replace(/{{/g, '<span>{{</span>');
24472478

2448-
return ("<pre data-lang=\"" + lang + "\"><code class=\"lang-" + lang + "\">" + hl + "</code></pre>")
2449-
};
2450-
renderer.link = function (href, title, text) {
2451-
if (OPTIONS$1.router && !/:/.test(href)) {
2452-
href = ("#/" + href).replace(/\/\//g, '/');
2453-
}
2479+
return ("<pre data-lang=\"" + lang + "\"><code class=\"lang-" + lang + "\">" + hl + "</code></pre>")
2480+
};
2481+
renderer.link = function (href, title, text) {
2482+
if (OPTIONS$1.router && !/:/.test(href)) {
2483+
href = ("#/" + href).replace(/\/\//g, '/');
2484+
}
24542485

2455-
return ("<a href=\"" + href + "\" title=\"" + (title || '') + "\">" + text + "</a>")
2456-
};
2457-
marked.setOptions({ renderer: renderer });
2486+
return ("<a href=\"" + href + "\" title=\"" + (title || '') + "\">" + text + "</a>")
2487+
};
2488+
2489+
if (typeof OPTIONS$1.markdown === 'function') {
2490+
markdown.setOptions({ renderer: renderer });
2491+
markdown = OPTIONS$1.markdown.call(this, markdown);
2492+
} else {
2493+
markdown.setOptions(merge({ renderer: renderer }, OPTIONS$1.markdown));
2494+
}
2495+
}
24582496

24592497
/**
24602498
* App
@@ -2483,7 +2521,7 @@ function renderApp (dom, replace) {
24832521
* article
24842522
*/
24852523
function renderArticle (content) {
2486-
renderTo('article', content ? marked(content) : 'not found');
2524+
renderTo('article', content ? markdown(content) : 'not found');
24872525
if (!OPTIONS$1.sidebar && !OPTIONS$1.loadSidebar) { renderSidebar(); }
24882526

24892527
if (content && typeof Vue !== 'undefined' && typeof Vuep !== 'undefined') {
@@ -2500,7 +2538,7 @@ function renderNavbar (content) {
25002538
if (CACHE.navbar && CACHE.navbar === content) { return }
25012539
CACHE.navbar = content;
25022540

2503-
if (content) { renderTo('nav', marked(content)); }
2541+
if (content) { renderTo('nav', markdown(content)); }
25042542
activeLink('nav');
25052543
}
25062544

@@ -2511,7 +2549,7 @@ function renderSidebar (content) {
25112549
var html;
25122550

25132551
if (content) {
2514-
html = marked(content);
2552+
html = markdown(content);
25152553
} else if (OPTIONS$1.sidebar) {
25162554
html = tree(OPTIONS$1.sidebar, '<ul>');
25172555
} else {
@@ -2544,7 +2582,7 @@ function renderCover (content) {
25442582
if (renderCover.rendered) { return }
25452583

25462584
// render cover
2547-
var html = marked(content);
2585+
var html = markdown(content);
25482586
var match = html.trim().match('<p><img[^s]+src="(.*?)"[^a]+alt="(.*?)"></p>$');
25492587

25502588
// render background
@@ -2603,15 +2641,7 @@ function renderLoading (ref) {
26032641
}
26042642
}
26052643

2606-
/**
2607-
* Load Config
2608-
* @param {Object} options
2609-
*/
2610-
function config (options) {
2611-
OPTIONS$1 = options;
2612-
}
2613-
2614-
var OPTIONS = {
2644+
var OPTIONS = merge({
26152645
el: '#app',
26162646
repo: '',
26172647
maxLevel: 6,
@@ -2625,7 +2655,7 @@ var OPTIONS = {
26252655
coverpage: '',
26262656
basePath: '',
26272657
auto2top: false
2628-
};
2658+
}, window.$docsify);
26292659
var script = document.currentScript || [].slice.call(document.getElementsByTagName('script')).pop();
26302660

26312661
// load configuration for script attribute
@@ -2641,7 +2671,7 @@ if (script) {
26412671
}
26422672

26432673
// load options
2644-
config(OPTIONS);
2674+
init(OPTIONS);
26452675

26462676
var cacheRoute = null;
26472677
var cacheXhr = null;
@@ -2701,7 +2731,10 @@ var Docsify = function () {
27012731
var dom = document.querySelector(OPTIONS.el) || document.body;
27022732
var replace = dom !== document.body;
27032733
var main = function () {
2704-
mainRender(function (_) { return scrollIntoView(); });
2734+
mainRender(function (_) {
2735+
scrollIntoView();
2736+
activeLink('nav');
2737+
});
27052738
};
27062739

27072740
// Render app

0 commit comments

Comments
 (0)