fix: Cache TOC for later usage in the case of cached file html (#649)

This commit is contained in:
程康 2018-10-23 08:24:22 +01:00 • committed by cinwell.li
commit 9e860177cb

View file

@ -85,24 +85,38 @@ export class Compiler {
} }
this._marked = compile this._marked = compile
this.compile = cached(text => { this.compile = text => {
let html = '' let isCached = true
const result = cached(_ => {
isCached = false
let html = ''
if (!text) { if (!text) {
return text return text
} }
if (isPrimitive(text)) { if (isPrimitive(text)) {
html = compile(text) html = compile(text)
} else {
html = compile.parser(text)
}
html = config.noEmoji ? html : emojify(html)
slugify.clear()
return html
})(text)
const curFileName = this.router.parse().file
if (isCached) {
this.toc = this.cacheTOC[curFileName]
} else { } else {
html = compile.parser(text) this.cacheTOC[curFileName] = [...this.toc]
} }
html = config.noEmoji ? html : emojify(html) return result
slugify.clear() }
return html
})
} }
compileEmbed(href, title) { compileEmbed(href, title) {