@@ -3,36 +3,40 @@ import {merge} from '../util/core'
3
3
4
4
const cached = { }
5
5
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
8
10
9
- if ( ! token ) {
10
- return cb ( { } )
11
- }
12
-
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
- )
11
+ while ( ( token = embedTokens [ step ++ ] ) ) {
12
+ const next = ( function ( token ) {
13
+ return 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
+ )
26
+ }
27
+ }
28
+ cb ( { token, embedToken} )
29
+ if ( ++ count >= step ) {
30
+ cb ( { } )
31
+ }
26
32
}
27
- }
28
- cb ( { token, embedToken} )
29
- walkFetchEmbed ( { step : ++ step , compile, embedTokens, fetch} , cb )
30
- }
33
+ } ) ( token )
31
34
32
- if ( process . env . SSR ) {
33
- fetch ( token . embed . url ) . then ( next )
34
- } else {
35
- get ( token . embed . url ) . then ( next )
35
+ if ( process . env . SSR ) {
36
+ fetch ( token . embed . url ) . then ( next )
37
+ } else {
38
+ get ( token . embed . url ) . then ( next )
39
+ }
36
40
}
37
41
}
38
42
0 commit comments