parent
cd09d91434
commit
feea7f9b48
1 changed files with 32 additions and 24 deletions
|
|
@ -3,36 +3,44 @@ import {merge} from '../util/core'
|
||||||
|
|
||||||
const cached = {}
|
const cached = {}
|
||||||
|
|
||||||
function walkFetchEmbed({step = 0, embedTokens, compile, fetch}, cb) {
|
function walkFetchEmbed({embedTokens, compile, fetch}, cb) {
|
||||||
const token = embedTokens[step]
|
let token
|
||||||
|
let step = 0
|
||||||
|
let count = 1
|
||||||
|
|
||||||
if (!token) {
|
if (!embedTokens.length) {
|
||||||
return cb({})
|
return cb({})
|
||||||
}
|
}
|
||||||
|
|
||||||
const next = text => {
|
while ((token = embedTokens[step++])) {
|
||||||
let embedToken
|
const next = (function (token) {
|
||||||
if (text) {
|
return text => {
|
||||||
if (token.embed.type === 'markdown') {
|
let embedToken
|
||||||
embedToken = compile.lexer(text)
|
if (text) {
|
||||||
} else if (token.embed.type === 'code') {
|
if (token.embed.type === 'markdown') {
|
||||||
embedToken = compile.lexer(
|
embedToken = compile.lexer(text)
|
||||||
'```' +
|
} else if (token.embed.type === 'code') {
|
||||||
token.embed.lang +
|
embedToken = compile.lexer(
|
||||||
'\n' +
|
'```' +
|
||||||
text.replace(/`/g, '@DOCSIFY_QM@') +
|
token.embed.lang +
|
||||||
'\n```\n'
|
'\n' +
|
||||||
)
|
text.replace(/`/g, '@DOCSIFY_QM@') +
|
||||||
|
'\n```\n'
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cb({token, embedToken})
|
||||||
|
if (++count >= step) {
|
||||||
|
cb({})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
})(token)
|
||||||
cb({token, embedToken})
|
|
||||||
walkFetchEmbed({step: ++step, compile, embedTokens, fetch}, cb)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (process.env.SSR) {
|
if (process.env.SSR) {
|
||||||
fetch(token.embed.url).then(next)
|
fetch(token.embed.url).then(next)
|
||||||
} else {
|
} else {
|
||||||
get(token.embed.url).then(next)
|
get(token.embed.url).then(next)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue