diff --git a/src/document/comment.ml b/src/document/comment.ml index 1b41a40e5b..86f4e15044 100644 --- a/src/document/comment.ml +++ b/src/document/comment.ml @@ -290,15 +290,10 @@ let rec nestable_block_element : match href with | `Reference (`Resolved r) -> ( let id = - Odoc_model.Paths.Reference.Resolved.(identifier (r :> t)) + Odoc_model.Paths.Reference.Resolved.Asset.(identifier (r :> t)) in - match Url.from_identifier ~stop_before:false id with - | Ok url -> Target.Internal (Resolved url) - | Error exn -> - (* FIXME: better error message *) - Printf.eprintf "Id.href failed: %S\n%!" - (Url.Error.to_string exn); - Internal Unresolved) + match Url.from_asset_identifier id with + | url -> Target.Internal (Resolved url)) | `Reference _ -> Internal Unresolved | `Link href -> External href in diff --git a/src/document/url.ml b/src/document/url.ml index ee7067df34..e945f883de 100644 --- a/src/document/url.ml +++ b/src/document/url.ml @@ -456,6 +456,8 @@ let from_identifier ~stop_before = function Ok (from_path @@ Path.from_identifier p) | p -> Anchor.from_identifier p +let from_asset_identifier p = from_path @@ Path.from_identifier p + let kind id = match Anchor.from_identifier id with | Error e -> failwith (Error.to_string e) diff --git a/src/document/url.mli b/src/document/url.mli index 539da979d6..da35bc3c63 100644 --- a/src/document/url.mli +++ b/src/document/url.mli @@ -109,6 +109,8 @@ val from_path : Path.t -> t val from_identifier : stop_before:bool -> Identifier.t -> (t, Error.t) result +val from_asset_identifier : Identifier.AssetFile.t -> t + val kind : Identifier.t -> kind val render_path : Odoc_model.Paths.Path.t -> string diff --git a/src/model/paths.ml b/src/model/paths.ml index fbee453573..958cda7ede 100644 --- a/src/model/paths.ml +++ b/src/model/paths.ml @@ -1093,6 +1093,8 @@ module Reference = struct end module Asset = struct + let identifier = function `Identifier id -> id + type t = Paths_types.Resolved_reference.asset end end diff --git a/src/model/paths.mli b/src/model/paths.mli index ddddb98466..f513169bce 100644 --- a/src/model/paths.mli +++ b/src/model/paths.mli @@ -553,6 +553,8 @@ module rec Reference : sig module Asset : sig type t = Paths_types.Resolved_reference.asset + + val identifier : t -> Identifier.AssetFile.t end type t = Paths_types.Resolved_reference.any