@@ -165,32 +165,37 @@ let heading ~resolve (h : Heading.t) =
165165let rec block ~resolve (l : Block.t ) : flow Html.elt list =
166166 let as_flow x = (x : phrasing Html.elt list :> flow Html.elt list ) in
167167 let one (t : Block.one ) =
168- let a = class_ t.attr in
168+ let mk_block ?(extra_class = [] ) mk content =
169+ let a = Some (class_ (extra_class @ t.attr)) in
170+ [ mk ?a content ]
171+ in
169172 match t.desc with
170173 | Inline i ->
171- if a = [] then as_flow @@ inline ~resolve i
172- else [ Html. span ~a (inline ~resolve i) ]
173- | Paragraph i -> [ Html. p ~a (inline ~resolve i) ]
174+ if t.attr = [] then as_flow @@ inline ~resolve i
175+ else mk_block Html. span (inline ~resolve i)
176+ | Paragraph i -> mk_block Html. p (inline ~resolve i)
174177 | List (typ , l ) ->
175178 let mk = match typ with Ordered -> Html. ol | Unordered -> Html. ul in
176- [ mk ~a (List. map (fun x -> Html. li (block ~resolve x)) l) ]
179+ mk_block mk (List. map (fun x -> Html. li (block ~resolve x)) l)
177180 | Description l ->
178- [
179- (let item i =
180- let a = class_ i.Description. attr in
181- let term =
182- (inline ~resolve i.Description. key
183- : phrasing Html. elt list
184- :> flow Html. elt list )
185- in
186- let def = block ~resolve i.Description. definition in
187- Html. li ~a (term @ (Html. txt " " :: def))
188- in
189- Html. ul ~a (List. map item l));
190- ]
181+ let item i =
182+ let a = class_ i.Description. attr in
183+ let term =
184+ (inline ~resolve i.Description. key
185+ : phrasing Html. elt list
186+ :> flow Html. elt list )
187+ in
188+ let def = block ~resolve i.Description. definition in
189+ Html. li ~a (term @ (Html. txt " " :: def))
190+ in
191+ mk_block Html. ul (List. map item l)
191192 | Raw_markup r -> raw_markup r
192- | Verbatim s -> [ Html. pre ~a [ Html. txt s ] ]
193- | Source c -> [ Html. pre ~a (source (inline ~resolve ) c) ]
193+ | Verbatim s -> mk_block Html. pre [ Html. txt s ]
194+ | Source (lang_tag , c ) ->
195+ let extra_class =
196+ match lang_tag with None -> [] | Some lang -> [ " language-" ^ lang ]
197+ in
198+ mk_block ~extra_class Html. pre (source (inline ~resolve ) c)
194199 in
195200 Utils. list_concat_map l ~f: one
196201
0 commit comments