@@ -186,20 +186,27 @@ export function decodeBlockCapsuleText(text: string, tok: PandocToken, filters:
186
186
} ) ;
187
187
return text ;
188
188
}
189
- const resolveTokenBlockCapsuleText = ( token : PandocToken , filters : readonly PandocBlockCapsuleFilter [ ] ) => ( {
190
- t : token . t ,
191
- c : token . t !== PandocTokenType . Str && typeof token . c === 'string' ?
192
- decodeBlockCapsuleText ( token . c , token , filters ) :
193
- token . c
194
- } ) ;
189
+
190
+ const decodeContent = ( token : PandocToken , filters : readonly PandocBlockCapsuleFilter [ ] ) => {
191
+ if ( token . t !== PandocTokenType . Str && typeof token . c === 'string' ) {
192
+ return decodeBlockCapsuleText ( token . c , token , filters ) ;
193
+ } else {
194
+ return token . c ;
195
+ }
196
+ } ;
195
197
// block capsules can also end up not as block tokens, but rather as text within another
196
198
// token (e.g. within a backtick code block or raw_block). this function takes a set
197
199
// of pandoc tokens and recursively converts block capsules that aren't of type
198
200
// PandocTokenType.Str (which is what we'd see in a paragraph) into their original form
199
201
export const resolvePandocBlockCapsuleText = (
200
202
tokens : PandocToken [ ] ,
201
203
filters : readonly PandocBlockCapsuleFilter [ ] ,
202
- ) => mapTokensRecursive ( tokens , token => resolveTokenBlockCapsuleText ( token , filters ) ) ;
204
+ ) => mapTokensRecursive ( tokens , token => {
205
+ return {
206
+ t : token . t ,
207
+ c : decodeContent ( token , filters )
208
+ } ;
209
+ } ) ;
203
210
204
211
export function blockCapsuleTextHandler ( type : string , pattern : RegExp , textFilter ?: ( text : string ) => string ) {
205
212
return ( text : string , tok : PandocToken ) : string => {
0 commit comments