Adjust heading from README to at least level 2 (fixes #164)
This commit is contained in:
parent
5feb615e12
commit
1293e081c6
3 changed files with 27 additions and 3 deletions
24
lib/utils.ml
24
lib/utils.ml
|
@ -45,6 +45,30 @@ let compare_pkgs p1 p2 =
|
|||
in
|
||||
diff_map (parse_pkgs p1) (parse_pkgs p2)
|
||||
|
||||
let md_to_html ?adjust_heading ?(safe = true) data =
|
||||
let open Cmarkit in
|
||||
let doc = Doc.of_string ~heading_auto_ids:true data in
|
||||
let doc =
|
||||
Option.fold ~none:doc
|
||||
~some:(fun lvl ->
|
||||
let block _m = function
|
||||
| Block.Heading (h, meta) ->
|
||||
let open Block.Heading in
|
||||
let level = level h
|
||||
and id = id h
|
||||
and layout = layout h
|
||||
and inline = inline h
|
||||
in
|
||||
let h' = make ?id ~layout ~level:(level + lvl) inline in
|
||||
Mapper.ret (Block.Heading (h', meta))
|
||||
| _ -> Mapper.default
|
||||
in
|
||||
let mapper = Mapper.make ~block () in
|
||||
Mapper.map_doc mapper doc)
|
||||
adjust_heading
|
||||
in
|
||||
Cmarkit_html.of_doc ~safe doc
|
||||
|
||||
module Path = struct
|
||||
|
||||
let to_url ~path ~queries =
|
||||
|
|
|
@ -285,7 +285,7 @@ have questions or suggestions.
|
|||
|
||||
let make_header =
|
||||
[
|
||||
H.Unsafe.data (Cmarkit_html.of_doc ~safe:true (Cmarkit.Doc.of_string ~heading_auto_ids:true data));
|
||||
H.Unsafe.data (Utils.md_to_html data);
|
||||
H.form ~a:H.[a_action "/hash"; a_method `Get] [
|
||||
H.label [
|
||||
H.txt "Search artifact by SHA256";
|
||||
|
@ -383,7 +383,7 @@ module Job = struct
|
|||
[
|
||||
H.h2 ~a:H.[a_id "readme"] [H.txt "README"];
|
||||
H.a ~a:H.[a_href "#builds"] [H.txt "Skip to builds"];
|
||||
H.Unsafe.data (Cmarkit_html.of_doc ~safe:true (Cmarkit.Doc.of_string ~heading_auto_ids:true data))
|
||||
H.Unsafe.data (Utils.md_to_html ~adjust_heading:2 data)
|
||||
]
|
||||
)
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
let markdown_to_html data = Cmarkit_html.of_doc ~safe:true (Cmarkit.Doc.of_string ~heading_auto_ids:true data)
|
||||
let markdown_to_html = Builder_web__Utils.md_to_html
|
||||
|
||||
let test_simple () =
|
||||
let markdown = {|# Hello world|} in
|
||||
|
|
Loading…
Reference in a new issue