feat(render): add auto header

This commit is contained in:
qingwei.li 2017-02-18 21:59:19 +08:00 • committed by cinwell.li
commit b7768b1b3c
6 changed files with 50 additions and 26 deletions

View file

@ -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 (/^!&gt;/.test(text)) {

View file

@ -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)