@@ -84,10 +84,9 @@ let linkedChapter = null, raw = false, quote = false
84
84
let renderer = {
85
85
fence ( token ) {
86
86
if ( / \b h i d d e n : \s * t r u e / . test ( token . info ) ) return ""
87
- /* if (noStarch)
88
- return `\n\n${id(token)}\\begin{Code}\n${token.content.trimRight()}\n\\end{Code}\n`
89
- else*/
90
- return `\n\n${ id ( token ) } \\begin{lstlisting}\n${ escapeComplexScripts ( token . content . trimRight ( ) ) } \n\\end{lstlisting}\n\\noindent`
87
+ let esc = escapeComplexScripts ( token . content . trimRight ( ) )
88
+ if ( noStarch ) esc = esc . replace ( / [ “ ” ] / g, '"' ) . replace ( / … / g, "..." )
89
+ return `\n\n${ id ( token ) } \\begin{lstlisting}\n${ esc } \n\\end{lstlisting}\n`
91
90
} ,
92
91
93
92
hardbreak ( ) { return "\\break\n" } ,
@@ -99,10 +98,16 @@ let renderer = {
99
98
return raw ? content : escape ( content )
100
99
} ,
101
100
102
- paragraph_open ( token ) {
101
+ paragraph_open ( token , i , tokens ) {
102
+ let noIndent = ""
103
+ if ( ! noStarch ) for ( i -- ; i >= 0 ; i -- ) {
104
+ let prev = tokens [ i ]
105
+ if ( prev . type == "fence" ) noIndent = "\\noindent "
106
+ if ( ! / ^ m e t a _ i n d e x / . test ( prev . type ) ) break
107
+ }
103
108
let nl = "\n\n" ;
104
109
if ( quote ) { nl = "" ; quote = false }
105
- return nl + id ( token )
110
+ return nl + noIndent + id ( token )
106
111
} ,
107
112
paragraph_close ( ) { return "" } ,
108
113
@@ -183,7 +188,9 @@ let renderer = {
183
188
let { url, width, chapter} = token . args [ 0 ]
184
189
if ( chapter ) return "" // FIXME
185
190
if ( / \. s v g $ / . test ( url ) ) url = url . replace ( / ^ i m g \/ / , "img/generated/" ) . replace ( / \. s v g $ / , ".pdf" )
186
- return `\n\n\\vskip 1.5ex\n\\includegraphics[width=${ width || "10cm" } ]{${ url } }\n\\vskip 1.5ex`
191
+ let graphics = `\\includegraphics[width=${ width || "10cm" } ]{${ url } }`
192
+ if ( noStarch ) return `\n\n\\begin{figure}[H]\n${ graphics } \n\\end{figure}\n`
193
+ return `\n\n\\vskip 1.5ex\n${ graphics } \n\\vskip 1.5ex\n`
187
194
} ,
188
195
189
196
meta_quote_open ( token ) {
@@ -228,7 +235,7 @@ function renderArray(tokens) {
228
235
for ( let i = 0 ; i < tokens . length ; i ++ ) {
229
236
let token = tokens [ i ] , f = renderer [ token . type ]
230
237
if ( ! f ) throw new Error ( "No render function for " + token . type )
231
- result += f ( token , tokens [ i + 1 ] )
238
+ result += f ( token , i , tokens )
232
239
}
233
240
return result
234
241
}
@@ -244,7 +251,7 @@ if (noStarch) {
244
251
let image = tokens . findIndex ( t => t . type == "meta_figure" && t . args [ 0 ] ?. chapter )
245
252
if ( image ) {
246
253
tokens [ 0 ] . args [ 0 ] . image = tokens [ image ] . args [ 0 ] . url
247
- tokens . splice ( image , image + 1 )
254
+ tokens . splice ( image , 1 )
248
255
}
249
256
}
250
257
}
0 commit comments