feat(render): add auto header
This commit is contained in:
parent
fd9c3bd19d
commit
b7768b1b3c
6 changed files with 50 additions and 26 deletions
|
|
@ -67,10 +67,7 @@ renderer.code = function (code, lang = '') {
|
|||
return `<pre v-pre data-lang="${lang}"><code class="lang-${lang}">${hl}</code></pre>`
|
||||
}
|
||||
renderer.link = function (href, title, text) {
|
||||
if (!/:|(\/{2})/.test(href)) {
|
||||
href = toURL(href)
|
||||
}
|
||||
return `<a href="${href}" title="${title || ''}">${text}</a>`
|
||||
return `<a href="${toURL(href)}" title="${title || text}">${text}</a>`
|
||||
}
|
||||
renderer.paragraph = function (text) {
|
||||
if (/^!>/.test(text)) {
|
||||
|
|
|
|||
|
|
@ -46,12 +46,22 @@ export function renderMixin (proto) {
|
|||
}
|
||||
|
||||
proto._renderSidebar = function (text) {
|
||||
const { maxLevel, subMaxLevel } = this.config
|
||||
const { maxLevel, subMaxLevel, autoHeader } = this.config
|
||||
|
||||
this._renderTo('.sidebar-nav', sidebar(text, maxLevel))
|
||||
subSidebar(getAndActive('.sidebar-nav', true), subMaxLevel)
|
||||
const active = getAndActive('.sidebar-nav', true, true)
|
||||
subSidebar(active, subMaxLevel)
|
||||
// bind event
|
||||
scrollActiveSidebar()
|
||||
|
||||
if (autoHeader && active) {
|
||||
const main = dom.getNode('#main')
|
||||
if (main.children[0].tagName !== 'H1') {
|
||||
const h1 = dom.create('h1')
|
||||
h1.innerText = active.innerText
|
||||
dom.before(main, h1)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
proto._renderNav = function (text) {
|
||||
|
|
@ -128,7 +138,7 @@ export function initRender (vm) {
|
|||
// Render main app
|
||||
vm._renderTo(el, html, true)
|
||||
// Add nav
|
||||
dom.body.insertBefore(navEl, dom.body.children[0])
|
||||
dom.before(dom.body, navEl)
|
||||
|
||||
if (config.themeColor) {
|
||||
dom.$.head += tpl.theme(config.themeColor)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue