@@ -81,9 +81,9 @@ private void WriteImage(HtmlRenderer renderer, ImageBlock block)
8181 {
8282 var imageUrl =
8383 block . ImageUrl != null &&
84- ( block . ImageUrl . StartsWith ( "/_static" ) || block . ImageUrl . StartsWith ( "_static" ) )
85- ? $ "{ block . Build . UrlPathPrefix } /{ block . ImageUrl . TrimStart ( '/' ) } "
86- : block . ImageUrl ;
84+ ( block . ImageUrl . StartsWith ( "/_static" ) || block . ImageUrl . StartsWith ( "_static" ) )
85+ ? $ "{ block . Build . UrlPathPrefix } /{ block . ImageUrl . TrimStart ( '/' ) } "
86+ : block . ImageUrl ;
8787 var slice = Image . Create ( new ImageViewModel
8888 {
8989 Label = block . Label ,
@@ -100,7 +100,8 @@ private void WriteImage(HtmlRenderer renderer, ImageBlock block)
100100
101101 private void WriteFigure ( HtmlRenderer renderer , ImageBlock block )
102102 {
103- var imageUrl = block . ImageUrl != null && ( block . ImageUrl . StartsWith ( "/_static" ) || block . ImageUrl . StartsWith ( "_static" ) )
103+ var imageUrl = block . ImageUrl != null &&
104+ ( block . ImageUrl . StartsWith ( "/_static" ) || block . ImageUrl . StartsWith ( "_static" ) )
104105 ? $ "{ block . Build . UrlPathPrefix } /{ block . ImageUrl . TrimStart ( '/' ) } "
105106 : block . ImageUrl ;
106107 var slice = Slices . Directives . Figure . Create ( new ImageViewModel
@@ -161,7 +162,7 @@ private void WriteCode(HtmlRenderer renderer, CodeBlock block)
161162 {
162163 CrossReferenceName = block . CrossReferenceName , Language = block . Language , Caption = block . Caption
163164 } ) ;
164- RenderRazorSlice ( slice , renderer , block ) ;
165+ RenderRazorSliceRawContent ( slice , renderer , block ) ;
165166 }
166167
167168
@@ -179,7 +180,10 @@ private void WriteMermaid(HtmlRenderer renderer, MermaidBlock block)
179180
180181 private void WriteTabItem ( HtmlRenderer renderer , TabItemBlock block )
181182 {
182- var slice = TabItem . Create ( new TabItemViewModel { Index = block . Index , Title = block . Title , TabSetIndex = block . TabSetIndex } ) ;
183+ var slice = TabItem . Create ( new TabItemViewModel
184+ {
185+ Index = block . Index , Title = block . Title , TabSetIndex = block . TabSetIndex
186+ } ) ;
183187 RenderRazorSlice ( slice , renderer , block ) ;
184188 }
185189
@@ -200,15 +204,15 @@ private void WriteLiteralIncludeBlock(HtmlRenderer renderer, IncludeBlock block)
200204 } ) ;
201205 RenderRazorSlice ( slice , renderer , content ) ;
202206 }
203-
204207 }
205208
206209 private void WriteIncludeBlock ( HtmlRenderer renderer , IncludeBlock block )
207210 {
208211 if ( ! block . Found || block . IncludePath is null )
209212 return ;
210213
211- var parser = new MarkdownParser ( block . DocumentationSourcePath , block . Build , block . GetMarkdownFile , block . Configuration ) ;
214+ var parser = new MarkdownParser ( block . DocumentationSourcePath , block . Build , block . GetMarkdownFile ,
215+ block . Configuration ) ;
212216 var file = block . FileSystem . FileInfo . New ( block . IncludePath ) ;
213217 var document = parser . ParseAsync ( file , block . FrontMatter , default ) . GetAwaiter ( ) . GetResult ( ) ;
214218 var html = document . ToHtml ( parser . Pipeline ) ;
@@ -241,22 +245,47 @@ private static void RenderRazorSliceRawContent<T>(RazorSlice<T> slice, HtmlRende
241245 var blocks = html . Split ( "[CONTENT]" , 2 , StringSplitOptions . RemoveEmptyEntries ) ;
242246 renderer . Write ( blocks [ 0 ] ) ;
243247 foreach ( var o in obj )
248+ Render ( o ) ;
249+
250+ renderer . Write ( blocks [ 1 ] ) ;
251+
252+ void RenderLeaf ( LeafBlock p )
253+ {
254+ renderer . WriteLeafRawLines ( p , true , false , false ) ;
255+ renderer . EnableHtmlForInline = false ;
256+ foreach ( var oo in p . Inline ?? [ ] )
257+ {
258+ if ( oo is LiteralInline li )
259+ renderer . Write ( li ) ;
260+ if ( oo is LineBreakInline )
261+ renderer . WriteLine ( ) ;
262+ }
263+
264+ renderer . EnableHtmlForInline = true ;
265+ }
266+
267+ void RenderListBlock ( ListBlock l )
244268 {
245- if ( o is ParagraphBlock p )
269+ foreach ( var bb in l )
246270 {
247- renderer . WriteLeafRawLines ( p , true , false , false ) ;
248- renderer . EnableHtmlForInline = false ;
249- foreach ( var oo in p . Inline ?? [ ] )
271+ if ( bb is LeafBlock lbi )
272+ RenderLeaf ( lbi ) ;
273+ else if ( bb is ListItemBlock ll )
250274 {
251- if ( oo is LiteralInline li )
252- renderer . Write ( li ) ;
253- if ( oo is LineBreakInline )
254- renderer . WriteLine ( ) ;
275+ renderer . Write ( ll . TriviaBefore ) ;
276+ renderer . Write ( "-" ) ;
277+ foreach ( var lll in ll )
278+ Render ( lll ) ;
255279 }
256- renderer . EnableHtmlForInline = true ;
257280 }
258281 }
259282
260- renderer . Write ( blocks [ 1 ] ) ;
283+ void Render ( Block o )
284+ {
285+ if ( o is LeafBlock p )
286+ RenderLeaf ( p ) ;
287+ else if ( o is ListBlock l )
288+ RenderListBlock ( l ) ;
289+ }
261290 }
262291}
0 commit comments