Skip to content

Commit fc2c447

Browse files
committed
[new release] odoc (6 packages) (3.0.0)
CHANGES: ### Highlight - Hierarchical documentation (@jonludlam, @panglesd, @Julow). Pages can now be organized in a directory tree structure. Relative and absolute references are added: `{!./other_page.label}`, `{!//other_page}`. - Improved sidebar and breadcrumbs navigation (@panglesd, @gpetiot). The documentation pages and the libraries of the entire package are shown on the left sidebar. - Added support for images, videos, audio and other assets. The syntax is `{image!/reference/to/asset}` or `{image:URL}` for images. The syntax for `{video...}` and `{audio...}` is the same. (@panglesd, @EmileTrotignon, ocaml/odoc#1170, ocaml/odoc#1171, ocaml/odoc#1184, ocaml/odoc#1185) - Search using Sherlodoc (@panglesd, @EmileTrotignon, @Julow). A new search bar that supports full-text and type-based search. ### Added - Experimental driver (@jonludlam, @panglesd) The driver builds the documentation for a collection of Opam packages using the newer Odoc features. It supports linking external packages to ocaml.org and markdown files. This is experimental and will break in the future. - Cross-package references (@panglesd, @Julow) Pages and modules from other packages can be referenced: `{!/otherpackage/page}`, `{!/otherpackage/Module.t}`. - Option to remap links to other packages to ocaml.org or other site. See the `--remap` option of the driver or the `--remap-file` option of `odoc html-generate`. (@jonludlam, ocaml/odoc#1189, ocaml/odoc#1248) - Option to compute occurrences of use of each identifiers The commands `aggregate-occurrences` and `count-occurrences` are added. (@panglesd, ocaml/odoc#976, ocaml/odoc#1076, ocaml/odoc#1206) - Added an `extract-code` subcommand to extract code blocks from mld/mli files (@panglesd, ocaml/odoc#1326) - Added the `odoc classify` command (@jonludlam, ocaml/odoc#1121) Helps driver detecting which modules belong to which libraries. - Added `--warnings-tag` options to the CLI to silence warnings from a unit, even if they end up being raised in another unit through expansion (@jonludlam, ocaml/odoc#1260) - Add clock emoji before `@since` tag (@yawaramin, ocaml/odoc#1089) - Navigation for the search bar : use '/' to enter search, up and down arrows to select a result, and enter to follow the selected link. (@EmileTrotignon, ocaml/odoc#1088) - Fix a big gap between the preamble and the content of a page (@EmileTrotignon, ocaml/odoc#1147) - Add a marshalled search index consumable by sherlodoc (@EmileTrotignon, @panglesd, ocaml/odoc#1084) - Allow referencing of polymorphic constructors in polymorphic variant type aliases (@panglesd, ocaml/odoc#1115) - Added a home icon in the breacrumbs (@panglesd, ocaml/odoc#1251) It can be disabled with a CLI option. - Add a frontmatter syntax for mld pages (@panglesd, ocaml/odoc#1187, ocaml/odoc#1193, ocaml/odoc#1243, ocaml/odoc#1246, ocaml/odoc#1251) Allows to specify the title of a page, the order of sub-pages and other behaviors in the sidebar. - Added `odoc-md` to process standalone Markdown pages (@jonludlam, ocaml/odoc#1234) - Added CSS selectors to style version and and nav links when they appear within page titles, as produced by odig (@katrinafyi, ocaml/odoc#1290) - Added support for (local) images in the latex backend (@Octachron, ocaml/odoc#1297) ### Changed - The command line interface changed to support the new features. + Packages and libraries: `odoc link` must now be aware of packages and libraries with the `-L libname:path` and `-P pkgname:path` options. The module search path should still be passed with the `-I` option. The current package should be specified with `--current-package=pkgname`. + Hierarchy: `odoc compile` now outputs `.odoc` in the directory tree specified with `--output-dir=DIR` and the parent identifier must be specified with `--parent-id=PARENT`. The option `--source-parent-file` is removed. + Source code: Implementations are compiled with `compile-impl` instead of with `compile`. The options `--cmt=..` and `--source-name=..` are removed. Source code pages are generated with `html-generate-source`. + Assets: The commands `compile-asset`, `html-generate-asset` are added. The option `html-generate --asset` is removed. + Sidebar: The index is built using `compile-index`. The sidebar data is extracted from the index with `sidebar-generate` and passed to `html-generate --sidebar=..`. - The syntax for `@tag` is now delimited (@panglesd, ocaml/odoc#1239) A `@tag` can now be followed by a paragraph or other elements. - Updated colors for code fragments (@EmileTrotignon, ocaml/odoc#1023) - Fixed complexity of looking up `.odoc` files (@panglesd, ocaml/odoc#1075) - Normalize whitespaces in codespans (@gpetiot, ocaml/odoc#1085) A newline followed by any whitespaces is normalized as one space character. - Reduce size of `Odoc_html_frontend` when compiled to javascript (@EmileTrotignon, ocaml/odoc#1072) - Overhaul of module-type-of expansions and shadowing code (@jonludlam, ocaml/odoc#1081) - Output file paths and labels in the man and latex backends changed to avoid name clashes (@Julow, ocaml/odoc#1191) - Added a `header` field to the json output (@panglesd, ocaml/odoc#1314) - Changed indentation rules for code block and verbatim content (@panglesd, ocaml/odoc#1317) - odoc-parser: Store raw content in verbatim and code block, and expose a function to process it (@panglesd, ocaml/odoc#1325) ### Fixed - Fix variant constructors being hidden if they contain hidden types (@jonludlam, ocaml/odoc#1105) - Fix rare assertion failure due to optional parameters (@jonludlam, ocaml/odoc#1272, issue ocaml/odoc#1001) - Fix resolution of module synopses in {!modules} lists that require --open (@jonludlam, ocaml/odoc#1104} - Fix top comment not being taken from includes often enough (@panglesd, ocaml/odoc#1117) - Fixed 404 links from search results (@panglesd, ocaml/odoc#1108) - Fixed title content not being picked up across pages when rendering references (ocaml/odoc#1116, @panglesd) - Fix wrong links to standalone comments in search results (ocaml/odoc#1118, @panglesd) - Remove duplicated or unwanted comments with inline includes (@Julow, ocaml/odoc#1133) - Fix bug where source rendering would cause odoc to fail completely if it encounters invalid syntax (@jonludlam ocaml/odoc#1208) - Add missing parentheses in 'val (let*) : ...' (@Julow, ocaml/odoc#1268) - Fix syntax highlighting not working for very large files (@jonludlam, @Julow, ocaml/odoc#1277) - Fix backtrace on invalid input in compile-deps (@jonludlam, ocaml/odoc#1313) - Fix bug in our CSS hitting verbatim blocks in tags (@jonludlam, ocaml/odoc#1312) - Fix issue ocaml/odoc#610 where `odoc html-fragment` wasn't rendering headings correctly (@jonludlam, ocaml/odoc#1306)
1 parent 1a8bbb0 commit fc2c447

File tree

6 files changed

+391
-0
lines changed
  • packages
    • odoc-bench/odoc-bench.3.0.0
    • odoc-driver/odoc-driver.3.0.0
    • odoc-md/odoc-md.3.0.0
    • odoc-parser/odoc-parser.3.0.0
    • odoc/odoc.3.0.0
    • sherlodoc/sherlodoc.3.0.0

6 files changed

+391
-0
lines changed
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
opam-version: "2.0"
2+
homepage: "https://github.com/ocaml/odoc"
3+
doc: "https://ocaml.github.io/odoc/"
4+
bug-reports: "https://github.com/ocaml/odoc/issues"
5+
license: "ISC"
6+
7+
maintainer: [
8+
"Daniel Bünzli <[email protected]>"
9+
"Jon Ludlam <[email protected]>"
10+
"Jules Aguillon <[email protected]>"
11+
"Paul-Elliot Anglès d'Auriac <[email protected]>"
12+
]
13+
authors: [
14+
"Anton Bachin <[email protected]>"
15+
"Daniel Bünzli <[email protected]>"
16+
"David Sheets <[email protected]>"
17+
"Jon Ludlam <[email protected]>"
18+
"Jules Aguillon <[email protected]>"
19+
"Leo White <[email protected]>"
20+
"Lubega Simon <[email protected]>"
21+
"Paul-Elliot Anglès d'Auriac <[email protected]>"
22+
"Thomas Refis <[email protected]>"
23+
]
24+
dev-repo: "git+https://github.com/ocaml/odoc.git"
25+
26+
synopsis: "Meta package defining dependencies for the benchmark rule. Not released"
27+
28+
depends: [
29+
"astring"
30+
"cmdliner" {>= "1.0.0"}
31+
"cppo" {build & >= "1.1.0"}
32+
"dune" {>= "3.7.0"}
33+
"fpath"
34+
"ocaml" {>= "4.02.0"}
35+
"result"
36+
"tyxml" {>= "4.3.0"}
37+
"fmt"
38+
"ocamlfind"
39+
"bos"
40+
"yojson" {>= "1.6.0"}
41+
"mdx" {>= "2.3.0"}
42+
"core" {= "v0.16.2"}
43+
"core_kernel" {= "v0.16.0"}
44+
"crunch"
45+
"odig"
46+
"base"
47+
"alcotest"
48+
"menhirLib"
49+
]
50+
url {
51+
src: "https://github.com/ocaml/odoc/releases/download/3.0.0/odoc-3.0.0.tbz"
52+
checksum: [
53+
"sha256=52e4cb5ae816568e7492c511c1af93d1c543e70c5b2de6ba47691d9fd224e543"
54+
"sha512=565eef31c66df5ae28c4bbf4b52e925d71b1f6c8e0c2e56b76ad13ceebc893f4c2418cc190295892de357c9d997da901a6657e5b3212d224261c2593d73f44ac"
55+
]
56+
}
57+
x-commit-hash: "0e9920f106729d1793ade3d29151c02fc64d0ba6"
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
opam-version: "2.0"
2+
homepage: "https://github.com/ocaml/odoc"
3+
doc: "https://ocaml.github.io/odoc/"
4+
bug-reports: "https://github.com/ocaml/odoc/issues"
5+
license: "ISC"
6+
flags: [ avoid-version ]
7+
8+
maintainer: [
9+
"Daniel Bünzli <[email protected]>"
10+
"Jon Ludlam <[email protected]>"
11+
"Jules Aguillon <[email protected]>"
12+
"Paul-Elliot Anglès d'Auriac <[email protected]>"
13+
]
14+
authors: [
15+
"Anton Bachin <[email protected]>"
16+
"Daniel Bünzli <[email protected]>"
17+
"David Sheets <[email protected]>"
18+
"Jon Ludlam <[email protected]>"
19+
"Jules Aguillon <[email protected]>"
20+
"Leo White <[email protected]>"
21+
"Lubega Simon <[email protected]>"
22+
"Paul-Elliot Anglès d'Auriac <[email protected]>"
23+
"Thomas Refis <[email protected]>"
24+
]
25+
dev-repo: "git+https://github.com/ocaml/odoc.git"
26+
27+
synopsis: "OCaml Documentation Generator - Driver"
28+
description: """
29+
The driver is a sample implementation of a tool to drive odoc to generate
30+
documentation for installed packages.
31+
"""
32+
33+
34+
depends: [
35+
"ocaml" {>= "5.1.0"}
36+
"odoc" {= version}
37+
"dune" {>= "3.7.0"}
38+
"odoc-md"
39+
"bos"
40+
"fpath"
41+
"yojson" {>= "2.0.0"}
42+
"ocamlfind"
43+
"opam-format" {>= "2.1.0"}
44+
"logs"
45+
"eio_main"
46+
"eio" {>= "1.0"}
47+
"progress"
48+
"cmdliner" {>= "1.1.0"}
49+
"sexplib"
50+
"ppx_sexp_conv"
51+
"sherlodoc"
52+
]
53+
54+
build: [
55+
["dune" "subst"] {dev}
56+
[
57+
"dune"
58+
"build"
59+
"-p"
60+
name
61+
"-j"
62+
jobs
63+
"@install"
64+
"@doc" {with-doc}
65+
]
66+
]
67+
68+
x-maintenance-intent: ["(latest)"]
69+
url {
70+
src: "https://github.com/ocaml/odoc/releases/download/3.0.0/odoc-3.0.0.tbz"
71+
checksum: [
72+
"sha256=52e4cb5ae816568e7492c511c1af93d1c543e70c5b2de6ba47691d9fd224e543"
73+
"sha512=565eef31c66df5ae28c4bbf4b52e925d71b1f6c8e0c2e56b76ad13ceebc893f4c2418cc190295892de357c9d997da901a6657e5b3212d224261c2593d73f44ac"
74+
]
75+
}
76+
x-commit-hash: "0e9920f106729d1793ade3d29151c02fc64d0ba6"
77+

packages/odoc-md/odoc-md.3.0.0/opam

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
opam-version: "2.0"
2+
homepage: "https://github.com/ocaml/odoc"
3+
doc: "https://ocaml.github.io/odoc/"
4+
bug-reports: "https://github.com/ocaml/odoc/issues"
5+
license: "ISC"
6+
flags: [ avoid-version ]
7+
8+
maintainer: [
9+
"Jon Ludlam <[email protected]>"
10+
"Jules Aguillon <[email protected]>"
11+
"Paul-Elliot Anglès d'Auriac <[email protected]>"
12+
]
13+
authors: [
14+
"Daniel Bünzli <[email protected]>"
15+
"Paul-Elliot Anglès d'Auriac <[email protected]>"
16+
"Jon Ludlam <[email protected]>"
17+
]
18+
dev-repo: "git+https://github.com/ocaml/odoc.git"
19+
20+
synopsis: "OCaml Documentation Generator - Markdown support"
21+
description: """
22+
Odoc-md is part of the odoc suite of tools for generating documentation for OCaml packages.
23+
24+
This package provides support for generating documentation from Markdown files.
25+
"""
26+
27+
depends: [
28+
"ocaml" {>= "4.14.0"}
29+
"odoc" {= version}
30+
"dune" {>= "3.7.0"}
31+
"cmarkit"
32+
]
33+
34+
build: [
35+
["dune" "subst"] {dev}
36+
[
37+
"dune"
38+
"build"
39+
"-p"
40+
name
41+
"-j"
42+
jobs
43+
"@install"
44+
"@doc" {with-doc}
45+
]
46+
]
47+
48+
x-maintenance-intent: ["(latest)"]
49+
url {
50+
src: "https://github.com/ocaml/odoc/releases/download/3.0.0/odoc-3.0.0.tbz"
51+
checksum: [
52+
"sha256=52e4cb5ae816568e7492c511c1af93d1c543e70c5b2de6ba47691d9fd224e543"
53+
"sha512=565eef31c66df5ae28c4bbf4b52e925d71b1f6c8e0c2e56b76ad13ceebc893f4c2418cc190295892de357c9d997da901a6657e5b3212d224261c2593d73f44ac"
54+
]
55+
}
56+
x-commit-hash: "0e9920f106729d1793ade3d29151c02fc64d0ba6"
57+
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
opam-version: "2.0"
2+
synopsis: "Parser for ocaml documentation comments"
3+
description: """
4+
Odoc_parser is a library for parsing the contents of OCaml documentation
5+
comments, formatted using 'odoc' syntax, an extension of the language
6+
understood by ocamldoc."""
7+
maintainer: ["Jon Ludlam <[email protected]>"]
8+
authors: ["Anton Bachin <[email protected]>"]
9+
license: "ISC"
10+
homepage: "https://github.com/ocaml/odoc"
11+
bug-reports: "https://github.com/ocaml/odoc/issues"
12+
dev-repo: "git+https://github.com/ocaml/odoc.git"
13+
doc: "https://ocaml.github.io/odoc/odoc_parser"
14+
flags: [ avoid-version ]
15+
depends: [
16+
"dune" {>= "3.7"}
17+
"ocaml" {>= "4.02.0" & < "5.4"}
18+
"astring"
19+
"result"
20+
"camlp-streams"
21+
"ppx_expect" {with-test}
22+
("ocaml" {< "4.04.1" & with-test} | "sexplib0" {with-test})
23+
]
24+
build: [
25+
["dune" "subst"] {dev}
26+
[
27+
"dune"
28+
"build"
29+
"-p"
30+
name
31+
"-j"
32+
jobs
33+
"@install"
34+
# Tests are not all associated with a package and would be run if using the
35+
# default '@runtest'.
36+
"@src/parser/runtest" {with-test}
37+
]
38+
]
39+
x-maintenance-intent: ["(latest)"]
40+
url {
41+
src: "https://github.com/ocaml/odoc/releases/download/3.0.0/odoc-3.0.0.tbz"
42+
checksum: [
43+
"sha256=52e4cb5ae816568e7492c511c1af93d1c543e70c5b2de6ba47691d9fd224e543"
44+
"sha512=565eef31c66df5ae28c4bbf4b52e925d71b1f6c8e0c2e56b76ad13ceebc893f4c2418cc190295892de357c9d997da901a6657e5b3212d224261c2593d73f44ac"
45+
]
46+
}
47+
x-commit-hash: "0e9920f106729d1793ade3d29151c02fc64d0ba6"
48+

packages/odoc/odoc.3.0.0/opam

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
opam-version: "2.0"
2+
homepage: "https://github.com/ocaml/odoc"
3+
doc: "https://ocaml.github.io/odoc/"
4+
bug-reports: "https://github.com/ocaml/odoc/issues"
5+
license: "ISC"
6+
flags: [ avoid-version ]
7+
8+
maintainer: [
9+
"Daniel Bünzli <[email protected]>"
10+
"Jon Ludlam <[email protected]>"
11+
"Jules Aguillon <[email protected]>"
12+
"Paul-Elliot Anglès d'Auriac <[email protected]>"
13+
]
14+
authors: [
15+
"Anton Bachin <[email protected]>"
16+
"Daniel Bünzli <[email protected]>"
17+
"David Sheets <[email protected]>"
18+
"Jon Ludlam <[email protected]>"
19+
"Jules Aguillon <[email protected]>"
20+
"Leo White <[email protected]>"
21+
"Lubega Simon <[email protected]>"
22+
"Paul-Elliot Anglès d'Auriac <[email protected]>"
23+
"Thomas Refis <[email protected]>"
24+
]
25+
dev-repo: "git+https://github.com/ocaml/odoc.git"
26+
27+
synopsis: "OCaml Documentation Generator"
28+
description: """
29+
**odoc** is a powerful and flexible documentation generator for OCaml. It reads *doc comments*, demarcated by `(** ... *)`, and transforms them into a variety of output formats, including HTML, LaTeX, and man pages.
30+
31+
- **Output Formats:** Odoc generates HTML for web browsing, LaTeX for PDF generation, and man pages for use on Unix-like systems.
32+
- **Cross-References:** odoc uses the `ocamldoc` markup, which allows to create links for functions, types, modules, and documentation pages.
33+
- **Link to Source Code:** Documentation generated includes links to the source code of functions, providing an easy way to navigate from the docs to the actual implementation.
34+
- **Code Highlighting:** odoc automatically highlights syntax in code snippets for different languages.
35+
36+
odoc is part of the [OCaml Platform](https://ocaml.org/docs/platform), the recommended set of tools for OCaml.
37+
"""
38+
39+
40+
depends: [
41+
"odoc-parser" {= version}
42+
"astring"
43+
"cmdliner" {>= "1.0.0" & < "2.0.0"}
44+
"cppo" {build & >= "1.1.0"}
45+
"dune" {>= "3.7.0"}
46+
"fpath"
47+
"ocaml" {>= "4.02.0" & < "5.4"}
48+
"result"
49+
"tyxml" {>= "4.4.0"}
50+
"fmt"
51+
52+
"ocamlfind" {with-test}
53+
"yojson" {>= "2.1.0"}
54+
("ocaml" {< "4.04.1" & with-test} | "sexplib0" {with-test})
55+
"conf-jq" {with-test}
56+
57+
"ppx_expect" {with-test}
58+
"bos" {with-test}
59+
"crunch" {>= "1.4.1"}
60+
61+
("ocaml" {< "4.07.0" & with-test} | "bisect_ppx" {with-test & > "2.5.0"})
62+
]
63+
64+
conflicts: [ "ocaml-option-bytecode-only" ]
65+
66+
x-extra-doc-deps: [
67+
"odoc-driver" {= version}
68+
"sherlodoc" {= version}
69+
"odig"
70+
]
71+
72+
build: [
73+
["dune" "subst"] {dev}
74+
[
75+
"dune"
76+
"build"
77+
"-p"
78+
name
79+
"-j"
80+
jobs
81+
"@install"
82+
"@runtest" {with-test}
83+
"@doc" {with-doc}
84+
]
85+
]
86+
x-maintenance-intent: ["(latest)"]
87+
url {
88+
src: "https://github.com/ocaml/odoc/releases/download/3.0.0/odoc-3.0.0.tbz"
89+
checksum: [
90+
"sha256=52e4cb5ae816568e7492c511c1af93d1c543e70c5b2de6ba47691d9fd224e543"
91+
"sha512=565eef31c66df5ae28c4bbf4b52e925d71b1f6c8e0c2e56b76ad13ceebc893f4c2418cc190295892de357c9d997da901a6657e5b3212d224261c2593d73f44ac"
92+
]
93+
}
94+
x-commit-hash: "0e9920f106729d1793ade3d29151c02fc64d0ba6"
95+
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
opam-version: "2.0"
2+
synopsis: "Search engine for OCaml documentation"
3+
maintainer: ["[email protected]"]
4+
authors: ["Arthur Wendling" "Emile Trotignon"]
5+
license: "MIT"
6+
homepage: "https://github.com/ocaml/odoc"
7+
doc: "https://ocaml.github.io/odoc/"
8+
bug-reports: "https://github.com/ocaml/odoc/issues"
9+
flags: [ avoid-version ]
10+
depends: [
11+
"dune" {>= "3.7"}
12+
"ocaml" {>= "4.0.8"}
13+
"odoc" {= version}
14+
"base64" {>= "3.5.1"}
15+
"bigstringaf" {>= "0.9.1"}
16+
"js_of_ocaml" {>= "5.6.0"}
17+
"brr" {>= "0.0.6"}
18+
"cmdliner" {>= "1.2.0"}
19+
"decompress" {>= "1.5.3"}
20+
"fpath" {>= "0.7.3"}
21+
"lwt" {>= "5.7.0"}
22+
"menhir" {>= "20230608"}
23+
"ppx_blob" {>= "0.9.0"}
24+
"tyxml" {>= "4.6.0"}
25+
"result" {>= "1.5"}
26+
"odig" {with-test}
27+
"base" {with-test & = "v0.16.3"}
28+
"alcotest" {with-test}
29+
]
30+
depopts: [
31+
"ancient" {>= "0.9.1"}
32+
]
33+
build: [
34+
["dune" "subst"] {dev}
35+
[
36+
"dune"
37+
"build"
38+
"-p"
39+
name
40+
"-j"
41+
jobs
42+
"@install"
43+
"@sherlodoc/runtest" {with-test}
44+
"@doc" {with-doc}
45+
]
46+
]
47+
dev-repo: "git+https://github.com/ocaml/odoc.git"
48+
x-maintenance-intent: ["(latest)"]
49+
url {
50+
src: "https://github.com/ocaml/odoc/releases/download/3.0.0/odoc-3.0.0.tbz"
51+
checksum: [
52+
"sha256=52e4cb5ae816568e7492c511c1af93d1c543e70c5b2de6ba47691d9fd224e543"
53+
"sha512=565eef31c66df5ae28c4bbf4b52e925d71b1f6c8e0c2e56b76ad13ceebc893f4c2418cc190295892de357c9d997da901a6657e5b3212d224261c2593d73f44ac"
54+
]
55+
}
56+
x-commit-hash: "0e9920f106729d1793ade3d29151c02fc64d0ba6"
57+

0 commit comments

Comments
 (0)