Skip to content

Commit 12e2479

Browse files
committed
fix: render name
1 parent 168d847 commit 12e2479

File tree

5 files changed

+47
-34
lines changed

5 files changed

+47
-34
lines changed

src/event.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export function scrollActiveSidebar () {
99

1010
let hoveredOverSidebar = false
1111
const anchors = document.querySelectorAll('.anchor')
12-
const sidebar = document.querySelector('aside.sidebar')
12+
const sidebar = document.querySelector('.sidebar>div')
1313
const sidebarHeight = sidebar.clientHeight
1414

1515
const nav = {}
@@ -126,7 +126,7 @@ export function bindToggle (dom) {
126126
dom.addEventListener('click', () => body.classList.toggle('close'))
127127

128128
if (isMobile()) {
129-
const sidebar = document.querySelector('aside.sidebar')
129+
const sidebar = document.querySelector('.sidebar div')
130130
sidebar.addEventListener('click', () => {
131131
body.classList.toggle('close')
132132
setTimeout(() => activeLink(sidebar, true), 0)

src/index.js

+18-13
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import { load, camel2kebab, isNil, getRoute, merge } from './util'
1+
import * as utils from './util'
22
import { scrollIntoView, activeLink } from './event'
33
import * as render from './render'
44

5-
const OPTIONS = merge({
5+
const OPTIONS = utils.merge({
66
el: '#app',
77
repo: '',
88
maxLevel: 6,
@@ -22,8 +22,8 @@ const script = document.currentScript || [].slice.call(document.getElementsByTag
2222
// load configuration for script attribute
2323
if (script) {
2424
for (const prop in OPTIONS) {
25-
const val = script.getAttribute('data-' + camel2kebab(prop))
26-
OPTIONS[prop] = isNil(val) ? OPTIONS[prop] : (val || true)
25+
const val = script.getAttribute('data-' + utils.camel2kebab(prop))
26+
OPTIONS[prop] = utils.isNil(val) ? OPTIONS[prop] : (val || true)
2727
}
2828
if (OPTIONS.loadSidebar === true) OPTIONS.loadSidebar = '_sidebar.md'
2929
if (OPTIONS.loadNavbar === true) OPTIONS.loadNavbar = '_navbar.md'
@@ -33,16 +33,20 @@ if (script) {
3333
}
3434

3535
// utils
36-
window.__docsify__ = OPTIONS
36+
window.$docsify = OPTIONS
37+
window.Docsify = {
38+
installed: true,
39+
utils: utils.merge({}, utils)
40+
}
3741

3842
// load options
39-
render.init(OPTIONS)
43+
render.init()
4044

4145
let cacheRoute = null
4246
let cacheXhr = null
4347

4448
const mainRender = function (cb) {
45-
const route = OPTIONS.basePath + getRoute()
49+
const route = OPTIONS.basePath + utils.getRoute()
4650
if (cacheRoute === route) return cb()
4751

4852
let basePath = cacheRoute = route
@@ -64,12 +68,12 @@ const mainRender = function (cb) {
6468

6569
// Render Cover page
6670
if (OPTIONS.coverpage && page === OPTIONS.homepage) {
67-
load(OPTIONS.coverpage).then(render.renderCover)
71+
utils.load(OPTIONS.coverpage).then(render.renderCover)
6872
}
6973

7074
cacheXhr && cacheXhr.abort && cacheXhr.abort()
7175
// Render markdown file
72-
cacheXhr = load(page, 'GET', render.renderLoading)
76+
cacheXhr = utils.load(page, 'GET', render.renderLoading)
7377
cacheXhr.then(result => {
7478
render.renderArticle(result)
7579
// clear cover
@@ -78,17 +82,17 @@ const mainRender = function (cb) {
7882
if (OPTIONS.loadSidebar) {
7983
const renderSidebar = result => { render.renderSidebar(result); cb() }
8084

81-
load(basePath + OPTIONS.loadSidebar).then(renderSidebar,
82-
_ => load(OPTIONS.loadSidebar).then(renderSidebar))
85+
utils.load(basePath + OPTIONS.loadSidebar).then(renderSidebar,
86+
_ => utils.load(OPTIONS.loadSidebar).then(renderSidebar))
8387
} else {
8488
cb()
8589
}
8690
}, _ => render.renderArticle(null))
8791

8892
// Render navbar
8993
if (OPTIONS.loadNavbar) {
90-
load(basePath + OPTIONS.loadNavbar).then(render.renderNavbar,
91-
_ => load(OPTIONS.loadNavbar).then(render.renderNavbar))
94+
utils.load(basePath + OPTIONS.loadNavbar).then(render.renderNavbar,
95+
_ => utils.load(OPTIONS.loadNavbar).then(render.renderNavbar))
9296
}
9397
}
9498

@@ -99,6 +103,7 @@ const Docsify = function () {
99103
mainRender(_ => {
100104
scrollIntoView()
101105
activeLink('nav')
106+
;[].concat(window.$docsify.plugins).forEach(fn => fn && fn())
102107
})
103108
}
104109

src/polyfill.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { load } from './util'
22

33
function replaceVar (block) {
4-
block.innerHTML = block.innerHTML.replace(/var\(\s*--theme-color.*?\)/g, __docsify__.themeColor)
4+
block.innerHTML = block.innerHTML.replace(/var\(\s*--theme-color.*?\)/g, $docsify.themeColor)
55
}
66

77
export function cssVars () {

src/render.js

+25-17
Original file line numberDiff line numberDiff line change
@@ -57,16 +57,18 @@ export function init () {
5757
return `<p>${text}</p>`
5858
}
5959

60-
if (typeof __docsify__.markdown === 'function') {
60+
if (typeof $docsify.markdown === 'function') {
6161
markdown.setOptions({ renderer })
62-
markdown = __docsify__.markdown.call(this, markdown)
62+
markdown = $docsify.markdown.call(this, markdown)
6363
} else {
64-
markdown.setOptions(merge({ renderer }, __docsify__.markdown))
64+
markdown.setOptions(merge({ renderer }, $docsify.markdown))
6565
}
6666

6767
const md = markdown
6868

6969
markdown = text => emojify(md(text))
70+
71+
window.Docsify.utils.marked = markdown
7072
}
7173

7274
/**
@@ -75,23 +77,29 @@ export function init () {
7577
export function renderApp (dom, replace) {
7678
const nav = document.querySelector('nav') || document.createElement('nav')
7779

78-
if (!__docsify__.repo) nav.classList.add('no-badge')
80+
if (!$docsify.repo) nav.classList.add('no-badge')
7981

80-
dom[replace ? 'outerHTML' : 'innerHTML'] = tpl.corner(__docsify__.repo) +
81-
(__docsify__.coverpage ? tpl.cover() : '') +
82+
dom[replace ? 'outerHTML' : 'innerHTML'] = tpl.corner($docsify.repo) +
83+
($docsify.coverpage ? tpl.cover() : '') +
8284
tpl.main()
8385
document.body.insertBefore(nav, document.body.children[0])
8486

8587
// theme color
86-
if (__docsify__.themeColor) {
87-
document.head.innerHTML += tpl.theme(__docsify__.themeColor)
88+
if ($docsify.themeColor) {
89+
document.head.innerHTML += tpl.theme($docsify.themeColor)
8890
polyfill.cssVars()
8991
}
9092

93+
// render name
94+
if ($docsify.name) {
95+
const aside = document.querySelector('.sidebar')
96+
aside.innerHTML = `<h1><a href="${$docsify.nameLink}">${$docsify.name}</a></h1>` + aside.innerHTML
97+
}
98+
9199
// bind toggle
92100
event.bindToggle('button.sidebar-toggle')
93101
// bind sticky effect
94-
if (__docsify__.coverpage) {
102+
if ($docsify.coverpage) {
95103
!isMobile() && window.addEventListener('scroll', event.sticky)
96104
} else {
97105
document.body.classList.add('sticky')
@@ -103,7 +111,7 @@ export function renderApp (dom, replace) {
103111
*/
104112
export function renderArticle (content) {
105113
renderTo('article', content ? markdown(content) : 'not found')
106-
if (!__docsify__.loadSidebar) renderSidebar()
114+
if (!$docsify.loadSidebar) renderSidebar()
107115

108116
if (content && typeof Vue !== 'undefined') {
109117
CACHE.vm && CACHE.vm.$destroy()
@@ -120,7 +128,7 @@ export function renderArticle (content) {
120128
: new Vue({ el: 'main' }) // eslint-disable-line
121129
CACHE.vm && CACHE.vm.$nextTick(_ => event.scrollActiveSidebar())
122130
}
123-
if (__docsify__.auto2top) setTimeout(() => event.scroll2Top(__docsify__.auto2top), 0)
131+
if ($docsify.auto2top) setTimeout(() => event.scroll2Top($docsify.auto2top), 0)
124132
}
125133

126134
/**
@@ -145,21 +153,21 @@ export function renderSidebar (content) {
145153
// find url tag
146154
html = html.match(/<ul[^>]*>([\s\S]+)<\/ul>/g)[0]
147155
} else {
148-
html = tpl.tree(genTree(toc, __docsify__.maxLevel), '<ul>')
156+
html = tpl.tree(genTree(toc, $docsify.maxLevel), '<ul>')
149157
}
150158

151-
html = (__docsify__.name ? `<h1><a href="${__docsify__.nameLink}">${__docsify__.name}</a></h1>` : '') + html
152-
renderTo('aside.sidebar', html)
153-
const target = event.activeLink('aside.sidebar', true)
159+
console.log(html)
160+
renderTo('.sidebar>div', html)
161+
const target = event.activeLink('.sidebar>div', true)
154162
if (target) renderSubSidebar(target)
155163
toc = []
156164

157165
event.scrollActiveSidebar()
158166
}
159167

160168
export function renderSubSidebar (target) {
161-
if (!__docsify__.subMaxLevel) return
162-
target.parentNode.innerHTML += tpl.tree(genTree(toc, __docsify__.subMaxLevel), '<ul>')
169+
if (!$docsify.subMaxLevel) return
170+
target.parentNode.innerHTML += tpl.tree(genTree(toc, $docsify.subMaxLevel), '<ul>')
163171
}
164172

165173
/**

src/tpl.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ export function corner (data) {
2323
* Render main content
2424
*/
2525
export function main () {
26-
const aside = `${toggle()}<aside class="sidebar"></aside>`
26+
const aside = `${toggle()}<aside class="sidebar"><div></div></aside>`
2727

2828
return (isMobile() ? `${aside}<main>` : `<main>${aside}`) +
2929
`<section class="content">

0 commit comments

Comments
 (0)