Skip to content

Commit feea7f9

Browse files
authored
fix: loading embed files synchronously, fixed #525, fixed #527 (#544)
* fix: loading embed files synchronously, fixed #525, fixed #527 * fix
1 parent cd09d91 commit feea7f9

File tree

1 file changed

+32
-24
lines changed

1 file changed

+32
-24
lines changed

Diff for: src/core/render/embed.js

+32-24
Original file line numberDiff line numberDiff line change
@@ -3,36 +3,44 @@ import {merge} from '../util/core'
33

44
const cached = {}
55

6-
function walkFetchEmbed({step = 0, embedTokens, compile, fetch}, cb) {
7-
const token = embedTokens[step]
6+
function walkFetchEmbed({embedTokens, compile, fetch}, cb) {
7+
let token
8+
let step = 0
9+
let count = 1
810

9-
if (!token) {
11+
if (!embedTokens.length) {
1012
return cb({})
1113
}
1214

13-
const next = text => {
14-
let embedToken
15-
if (text) {
16-
if (token.embed.type === 'markdown') {
17-
embedToken = compile.lexer(text)
18-
} else if (token.embed.type === 'code') {
19-
embedToken = compile.lexer(
20-
'```' +
21-
token.embed.lang +
22-
'\n' +
23-
text.replace(/`/g, '@DOCSIFY_QM@') +
24-
'\n```\n'
25-
)
15+
while ((token = embedTokens[step++])) {
16+
const next = (function (token) {
17+
return text => {
18+
let embedToken
19+
if (text) {
20+
if (token.embed.type === 'markdown') {
21+
embedToken = compile.lexer(text)
22+
} else if (token.embed.type === 'code') {
23+
embedToken = compile.lexer(
24+
'```' +
25+
token.embed.lang +
26+
'\n' +
27+
text.replace(/`/g, '@DOCSIFY_QM@') +
28+
'\n```\n'
29+
)
30+
}
31+
}
32+
cb({token, embedToken})
33+
if (++count >= step) {
34+
cb({})
35+
}
2636
}
27-
}
28-
cb({token, embedToken})
29-
walkFetchEmbed({step: ++step, compile, embedTokens, fetch}, cb)
30-
}
37+
})(token)
3138

32-
if (process.env.SSR) {
33-
fetch(token.embed.url).then(next)
34-
} else {
35-
get(token.embed.url).then(next)
39+
if (process.env.SSR) {
40+
fetch(token.embed.url).then(next)
41+
} else {
42+
get(token.embed.url).then(next)
43+
}
3644
}
3745
}
3846

0 commit comments

Comments
 (0)