diff --git a/demo-repository/exercises/demo2/descr.md b/demo-repository/exercises/demo2/descr.md index 3b7c6f0ca..13c15704a 100644 --- a/demo-repository/exercises/demo2/descr.md +++ b/demo-repository/exercises/demo2/descr.md @@ -1,5 +1,5 @@ - -This exercise is just another demo for the exercise environment. +The following example link will open another tab/window: [OCaml](https://ocaml.org "External link") +This exercise is just another demo for the exercise environment. Test
diff --git a/learn-ocaml-client.opam b/learn-ocaml-client.opam index f4e06fffc..476ab76e8 100644 --- a/learn-ocaml-client.opam +++ b/learn-ocaml-client.opam @@ -17,7 +17,7 @@ depends: [ "base" {>= "v0.9.4"} "base64" "cmdliner" - "omd" + "omd" {<= "1.3.1"} "asak" "cohttp" {>= "1.0.0" & < "2.0.0"} "cohttp-lwt-unix" {>= "1.0.0" & < "2.0.0"} diff --git a/learn-ocaml.opam b/learn-ocaml.opam index 19c67b877..8777f30d6 100644 --- a/learn-ocaml.opam +++ b/learn-ocaml.opam @@ -46,7 +46,7 @@ depends: [ "ocp-ocamlres" {>= "0.4"} "ocplib-json-typed" {= "0.6"} "odoc" {build & >= "1.3.0"} - "omd" + "omd" {<= "1.3.1"} "pprint" "ppx_cstruct" "ppx_tools" diff --git a/src/repo/learnocaml_exercise.ml b/src/repo/learnocaml_exercise.ml index 5157b05e0..f919d3a3a 100644 --- a/src/repo/learnocaml_exercise.ml +++ b/src/repo/learnocaml_exercise.ml @@ -317,8 +317,23 @@ module File = struct descrs := (lang, f raw) :: !descrs; return () in + let override_url = function + | Omd_representation.Url(href,s,title) -> + if String.length href > 0 then + if Char.equal (String.get href 0) '#' then + None + else + let title_url = + if title <> "" then Printf.sprintf {| title="%s"|} title else "" in + let html = + Printf.sprintf + {|%s|} + href title_url (Omd_backend.html_of_md s) in + Some html + else None + | _ -> None in let markdown_to_html md = - Omd.(md |> of_string |> to_html) + Omd.(md |> of_string |> to_html ~override:override_url) in let read_descrs () = let langs = [] in