@@ -21,6 +21,8 @@ type class_type_lookup_result = Resolved.ClassType.t * Component.ClassType.t
2121
2222type page_lookup_result = Resolved.Page .t * Odoc_model.Lang.Page .t
2323
24+ type asset_lookup_result = Resolved.Asset .t * Odoc_model.Lang.Asset .t
25+
2426type type_lookup_result =
2527 [ `T of datatype_lookup_result
2628 | `C of class_lookup_result
@@ -233,6 +235,10 @@ module Path = struct
233235 Env. lookup_page_by_path p env |> handle_lookup_error p >> = fun p ->
234236 Ok (`Identifier p.name, p)
235237
238+ let asset_in_env env p : asset_lookup_result ref_result =
239+ Env. lookup_asset_by_path p env |> handle_lookup_error p >> = fun p ->
240+ Ok (`Identifier p.name, p)
241+
236242 let module_in_env env p : module_lookup_result ref_result =
237243 Env. lookup_unit_by_path p env |> handle_lookup_error p >> = fun m ->
238244 Ok (M. of_element env m)
@@ -626,6 +632,15 @@ module Page = struct
626632 let of_element _env (`Page (id , page )) : t = (`Identifier id, page)
627633end
628634
635+ module Asset = struct
636+ type t = asset_lookup_result
637+
638+ let in_env env name : t ref_result =
639+ match Env. lookup_asset_by_name name env with
640+ | Ok p -> Ok (`Identifier p.Odoc_model.Lang.Asset. name, p)
641+ | Error `Not_found -> Error (`Lookup_by_name (`Page (* TODO *) , name))
642+ end
643+
629644module LP = struct
630645 (* * Label parent *)
631646
@@ -939,7 +954,7 @@ let resolve_reference : _ -> Reference.t -> _ =
939954 resolve_label_parent_reference env parent >> = fun p ->
940955 L. in_label_parent env p name >> = resolved_with_text
941956 | `Root (name , (`TPage | `TChildPage )) -> Page. in_env env name >> = resolved2
942- | `Root (name , `TAsset) -> Error ( `Find_by_name ( `Asset_path , name))
957+ | `Root (name , `TAsset) -> Asset. in_env env name >> = resolved2
943958 | `Dot (parent , name ) -> resolve_reference_dot env parent name
944959 | `Root (name , `TConstructor) -> CS. in_env env name >> = resolved1
945960 | `Constructor (parent , name ) ->
@@ -970,7 +985,7 @@ let resolve_reference : _ -> Reference.t -> _ =
970985 resolve_class_signature_reference env parent >> = fun p ->
971986 MV. in_class_signature env p name >> = resolved1
972987 | `Page_path p -> Path. page_in_env env p >> = resolved2
973- | `Asset_path ( tag , p ) -> Error ( `Path_error ( `Not_found , tag, p))
988+ | `Asset_path a -> Path. asset_in_env env a >> = resolved2
974989 | `Module_path p ->
975990 Path. module_in_env env p
976991 >> = module_lookup_to_signature_lookup env
0 commit comments