Skip to content

Commit d211cb8

Browse files
committed
Type asset names
Signed-off-by: Paul-Elliot <[email protected]>
1 parent 4c03cf3 commit d211cb8

File tree

11 files changed

+27
-11
lines changed

11 files changed

+27
-11
lines changed

src/document/url.ml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,7 @@ module Path = struct
190190
| { iv = `AssetFile (parent, name); _ } ->
191191
let parent = from_identifier (parent :> any) in
192192
let kind = `File in
193+
let name = AssetName.to_string name in
193194
mk ~parent kind name
194195

195196
let from_identifier p =

src/model/names.ml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,3 +159,4 @@ module LabelName = SimpleName
159159
module PageName = SimpleName
160160
module DefName = SimpleName
161161
module LocalName = SimpleName
162+
module AssetName = SimpleName

src/model/names.mli

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,3 +100,5 @@ module PageName : SimpleName
100100
module DefName : SimpleName
101101

102102
module LocalName : SimpleName
103+
104+
module AssetName : SimpleName

src/model/paths.ml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ module Identifier = struct
6161
| `SourceLocationMod x -> name_aux (x :> t)
6262
| `SourceLocationInternal (x, anchor) ->
6363
name_aux (x :> t) ^ "#" ^ LocalName.to_string anchor
64-
| `AssetFile (_, name) -> name
64+
| `AssetFile (_, name) -> AssetName.to_string name
6565

6666
let rec is_hidden : t -> bool =
6767
fun x ->
@@ -143,7 +143,8 @@ module Identifier = struct
143143
LocalName.to_string name :: full_name_aux (parent :> t)
144144
| `SourceLocationMod name -> full_name_aux (name :> t)
145145
| `SourcePage (parent, name) -> name :: full_name_aux (parent :> t)
146-
| `AssetFile (parent, name) -> name :: full_name_aux (parent :> t)
146+
| `AssetFile (parent, name) ->
147+
AssetName.to_string name :: full_name_aux (parent :> t)
147148

148149
let fullname : [< t_pv ] id -> string list =
149150
fun n -> List.rev @@ full_name_aux (n :> t)
@@ -497,8 +498,8 @@ module Identifier = struct
497498
[> `LeafPage of ContainerPage.t option * PageName.t ] id =
498499
mk_parent_opt PageName.to_string "lp" (fun (p, n) -> `LeafPage (p, n))
499500

500-
let asset_file : Page.t * string -> AssetFile.t =
501-
mk_parent (fun k -> k) "asset" (fun (p, n) -> `AssetFile (p, n))
501+
let asset_file : Page.t * AssetName.t -> AssetFile.t =
502+
mk_parent AssetName.to_string "asset" (fun (p, n) -> `AssetFile (p, n))
502503

503504
let source_page (container_page, path) =
504505
let rec source_dir dir =

src/model/paths.mli

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ module Identifier : sig
253253

254254
val source_page : ContainerPage.t * string list -> SourcePage.t
255255

256-
val asset_file : Page.t * string -> AssetFile.t
256+
val asset_file : Page.t * AssetName.t -> AssetFile.t
257257

258258
val root :
259259
ContainerPage.t option * ModuleName.t ->

src/model/paths_types.ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ module Identifier = struct
3232
type source_page = source_page_pv id
3333
(** @canonical Odoc_model.Paths.Identifier.SourcePage.t *)
3434

35-
type asset_file_pv = [ `AssetFile of page * string ]
35+
type asset_file_pv = [ `AssetFile of page * AssetName.t ]
3636
(** The second argument is the filename.
3737
3838
@canonical Odoc_model.Paths.Identifier.AssetFile.t_pv *)

src/model/root.ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ let to_string t =
9494
| `AssetFile (parent, name) ->
9595
Format.fprintf fmt "%a::%s" pp
9696
(parent :> Paths.Identifier.OdocId.t)
97-
name
97+
(Names.AssetName.to_string name)
9898
in
9999

100100
Format.asprintf "%a" pp t.id

src/model_desc/paths_desc.ml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ module Names = struct
3636

3737
let pagename = To_string PageName.to_string
3838

39+
let assetname = To_string AssetName.to_string
40+
3941
let parametername = To_string ModuleName.to_string
4042

4143
let defname = To_string DefName.to_string
@@ -77,7 +79,10 @@ module General_paths = struct
7779
((parent :> id_t option), name),
7880
Pair (Option identifier, Names.pagename) )
7981
| `AssetFile (parent, name) ->
80-
C ("`AssetFile", ((parent :> id_t), name), Pair (identifier, string))
82+
C
83+
( "`AssetFile",
84+
((parent :> id_t), name),
85+
Pair (identifier, Names.assetname) )
8186
| `Root (parent, name) ->
8287
C
8388
( "`Root",

src/odoc/asset.ml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ let compile ~parent_id ~name ~output_dir =
22
let open Odoc_model in
33
let parent_id = Compile.mk_id parent_id in
44
let id =
5-
Paths.Identifier.Mk.asset_file ((parent_id :> Paths.Identifier.Page.t), name)
5+
Paths.Identifier.Mk.asset_file
6+
((parent_id :> Paths.Identifier.Page.t), Names.AssetName.make_std name)
67
in
78
let directory =
89
Compile.path_of_id output_dir parent_id

src/odoc/html_page.ml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,10 @@ let asset_documents parent_id children asset_paths =
5858
Error.raise_warning (Error.filename_only "asset is missing." name);
5959
None
6060
| Some path ->
61-
let asset_id = Paths.Identifier.Mk.asset_file (parent_id, name) in
61+
let asset_id =
62+
Paths.Identifier.Mk.asset_file
63+
(parent_id, Names.AssetName.make_std name)
64+
in
6265
let url = Odoc_document.Url.Path.from_identifier asset_id in
6366
Some (Odoc_document.Types.Document.Asset { url; src = path }))
6467
paired_or_missing

0 commit comments

Comments
 (0)