this repo has no description

Fix build and doc warnings, remove dune subtree

Build fixes:
- Change odoc extension library refs to odoc.extension_api
- Add missing assets field to extension result records

Documentation fixes:
- Fix cross-package references using documentation dependencies
- Fix reference syntax: {!Stdlib.String.escaped}, {!Webfinger.Jrd}, etc.
- Fix heading levels and anchor syntax (#→.)
- Add @canonical annotation for Loc0.t
- Escape braces in doc comments
- Add asset support via (files ...) in documentation stanza

Infrastructure:
- Remove dune subtree (now pinned to jonludlam/dune#odoc-assets-support)
- Add dune-workspace with fatal odoc warnings
- Remove conflicting odoc-config.sexp install stanzas

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

+18 -25
+3 -3
doc/cheatsheet.mld
··· 72 72 73 73 See {{!/fmt/Fmt.pf}this function from another library}. 74 74 75 - See {{!/cmdliner/tutorial}this page from another package}. 75 + See {{!/cmdliner/page-tutorial}this page from another package}. 76 76 77 77 See {{!odoc_for_authors.links_and_references}this section} for the syntax of references.]}} 78 78 {td ··· 82 82 83 83 See {{!/fmt/Fmt.pf}this function from another library}. 84 84 85 - See {{!/cmdliner/tutorial}this page from another package}. 85 + See {{!/cmdliner/page-tutorial}this page from another package}. 86 86 87 87 See {{!odoc_for_authors.links_and_references}this section} for the syntax of references.}} 88 88 {tr ··· 182 182 {image:https://picsum.photos/200/100} 183 183 ]}} 184 184 {td 185 - {image!odoc_logo_placeholder.jpg} 185 + {image!/odoc/odoc_logo_placeholder.jpg} 186 186 187 187 {image:https://picsum.photos/200/100} 188 188 }}
+1 -1
doc/driver.mld
··· 12 12 13 13 Several drivers for [odoc] exist, such as: 14 14 {{:https://dune.readthedocs.io/en/stable/documentation.html}dune} and 15 - {{!/odig/page-index}odig}. 15 + {{:https://erratique.ch/software/odig/doc/}odig}. 16 16 17 17 This document explains how to drive [odoc], as of version 3. It is not needed to 18 18 know any of this to {e use} [odoc], it is targeted at driver authors, tools that
-5
doc/driver/dune
··· 1 1 (documentation 2 2 (package odoc-driver)) 3 - 4 - (install 5 - (section doc) 6 - (files odoc-config.sexp) 7 - (package odoc-driver))
+2 -7
doc/dune
··· 9 9 ocamldoc_differences 10 10 odoc_for_authors 11 11 cheatsheet 12 - json)) 12 + json) 13 + (files odoc_logo_placeholder.jpg)) 13 14 14 15 ; Uncomment to run mdx on the documentation's code blocks. 15 16 ; (mdx ··· 51 52 (install 52 53 (section doc) 53 54 (files 54 - odoc-config.sexp 55 55 (odoc_logo_placeholder.jpg as odoc-pages/odoc_logo_placeholder.jpg)) 56 56 (package odoc)) 57 57 58 - (install 59 - (section doc) 60 - (files 61 - (odoc-parser-config.sexp as odoc-config.sexp)) 62 - (package odoc-parser))
+5 -4
dune-project
··· 34 34 35 35 (package 36 36 (name odoc) 37 - (sites (lib extensions))) 37 + (sites (lib extensions)) 38 + (documentation (depends odoc-driver cmdliner))) 38 39 39 - (package (name odoc-parser)) 40 + (package (name odoc-parser) (documentation (depends odoc))) 40 41 (package (name odoc-md)) 41 - (package (name odoc-driver)) 42 - (package (name odoc-bench)) 42 + (package (name odoc-driver) (documentation (depends sherlodoc odoc))) 43 + (package (name odoc-bench) (allow_empty)) 43 44 (package (name sherlodoc)) 44 45 45 46 (using mdx 0.3)
+1 -1
sherlodoc/db/db.mli
··· 18 18 [db_types] has [Entry.t array Int_map.t] ([Occ.t]) as a payload because we want 19 19 the query [blabla : int -> int -> _] to return only entries that take at 20 20 least two ints as arguments, an entry of type [int -> string] is invalid. 21 - The [Int_map.t] maps a number of occurences to a set of entries. See {!Occ}. 21 + The [Int_map.t] maps a number of occurences to a set of entries. See {!Occurences}. 22 22 [db_types] still is a suffix tree, so you can search in it only for text. The 23 23 way we transform types into searchable text is in {!Type_polarity}. *)
+1 -1
sherlodoc/db/type_polarity.mli
··· 59 59 60 60 type t = string * int * Sign.t 61 61 (** The search database is a suffix tree structure, implemented in 62 - {!Suffix_tree}. It is a solely text-based datastructure. Therefore, we need 62 + {!String_automata}. It is a solely text-based datastructure. Therefore, we need 63 63 a text represention for the polarities. 64 64 65 65 The polarity [+t] is represented by ["+t"], and the polarity [-t] is
+2
src/driver/test/config_file/dune
··· 1 + ; This is test data for manual testing, not part of the build 2 + (data_only_dirs test_odoc_driver)
+2 -2
src/extension_api/odoc_extension_api.ml
··· 126 126 Returns [Some output] to replace the code block, or [None] to 127 127 fall back to default rendering. 128 128 129 - Example metadata for [{@dot width=500 format=svg[digraph {...}]}]: 129 + Example metadata for [{\@dot width=500 format=svg[digraph \{...\}]}]: 130 130 - [meta.language = "dot"] 131 131 - [meta.tags = [`Binding ("width", "500"); `Binding ("format", "svg")]] 132 - - content = "digraph {...}" *) 132 + - content = "digraph \{...\}" *) 133 133 end 134 134 135 135 (** {1 Support Files}
+1 -1
src/parser/odoc_parser.mli
··· 46 46 47 47 val codeblock_content : Loc.span -> string -> string * Warning.t list 48 48 (** Process the content of a code block, following the rules described 49 - {{!/odoc/odoc_for_authors.indentation_code_blocks}here}. To achieve this, it 49 + {{!/odoc/page-odoc_for_authors.indentation_code_blocks}here}. To achieve this, it 50 50 needs the location of the code block (including the separators) and the raw 51 51 content of the code block. For instance, with the following code block: 52 52