Skip to content

Commit 6102f15

Browse files
committed
[new release] odoc (5 packages) (3.0.0)
CHANGES: - 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. - 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) - 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) - 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 6102f15

File tree

5 files changed

+329
-0
lines changed
  • packages
    • 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

5 files changed

+329
-0
lines changed
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
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: "OCaml Documentation Generator - Driver"
27+
description: """
28+
The driver is a sample implementation of a tool to drive odoc to generate
29+
documentation for installed packages.
30+
"""
31+
32+
33+
depends: [
34+
"ocaml" {>= "5.1.0"}
35+
"odoc" {= version}
36+
"dune" {>= "3.7.0"}
37+
"odoc-md"
38+
"bos"
39+
"fpath"
40+
"yojson" {>= "2.0.0"}
41+
"ocamlfind"
42+
"opam-format" {>= "2.1.0"}
43+
"logs"
44+
"eio_main"
45+
"eio" {>= "1.0"}
46+
"progress"
47+
"cmdliner" {>= "1.1.0"}
48+
"sexplib"
49+
"ppx_sexp_conv"
50+
"sherlodoc"
51+
]
52+
53+
build: [
54+
["dune" "subst"] {dev}
55+
[
56+
"dune"
57+
"build"
58+
"-p"
59+
name
60+
"-j"
61+
jobs
62+
"@install"
63+
"@doc" {with-doc}
64+
]
65+
]
66+
67+
x-maintenance-intent: ["(latest)"]
68+
url {
69+
src: "https://github.com/ocaml/odoc/releases/download/3.0.0/odoc-3.0.0.tbz"
70+
checksum: [
71+
"sha256=ce84fa7e0cc5f3e8a54e6adeb10826152798b602057b9e46c5ae7e5d5206812b"
72+
"sha512=9febd413450ca2e3824c9ef7e1c9ae8d8094aa72ed71327a69d8d6b42f6f197b3f3f40d674de0d11fa1242ee0df95c693b5d74467d530704e1339f3a523452f6"
73+
]
74+
}
75+
x-commit-hash: "90e679061f68c5e5ee5915e280f63d842f41f300"
76+

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

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
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+
"Jon Ludlam <[email protected]>"
9+
"Jules Aguillon <[email protected]>"
10+
"Paul-Elliot Anglès d'Auriac <[email protected]>"
11+
]
12+
authors: [
13+
"Daniel Bünzli <[email protected]>"
14+
"Paul-Elliot Anglès d'Auriac <[email protected]>"
15+
"Jon Ludlam <[email protected]>"
16+
]
17+
dev-repo: "git+https://github.com/ocaml/odoc.git"
18+
19+
synopsis: "OCaml Documentation Generator - Markdown support"
20+
description: """
21+
Odoc-md is part of the odoc suite of tools for generating documentation for OCaml packages.
22+
23+
This package provides support for generating documentation from Markdown files.
24+
"""
25+
26+
depends: [
27+
"ocaml" {>= "4.14.0"}
28+
"odoc" {= version}
29+
"dune" {>= "3.7.0"}
30+
"cmarkit"
31+
]
32+
33+
build: [
34+
["dune" "subst"] {dev}
35+
[
36+
"dune"
37+
"build"
38+
"-p"
39+
name
40+
"-j"
41+
jobs
42+
"@install"
43+
"@doc" {with-doc}
44+
]
45+
]
46+
47+
x-maintenance-intent: ["(latest)"]
48+
url {
49+
src: "https://github.com/ocaml/odoc/releases/download/3.0.0/odoc-3.0.0.tbz"
50+
checksum: [
51+
"sha256=ce84fa7e0cc5f3e8a54e6adeb10826152798b602057b9e46c5ae7e5d5206812b"
52+
"sha512=9febd413450ca2e3824c9ef7e1c9ae8d8094aa72ed71327a69d8d6b42f6f197b3f3f40d674de0d11fa1242ee0df95c693b5d74467d530704e1339f3a523452f6"
53+
]
54+
}
55+
x-commit-hash: "90e679061f68c5e5ee5915e280f63d842f41f300"
56+
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
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+
depends: [
15+
"dune" {>= "3.7"}
16+
"ocaml" {>= "4.02.0" & < "5.4"}
17+
"astring"
18+
"result"
19+
"camlp-streams"
20+
"ppx_expect" {with-test}
21+
("ocaml" {< "4.04.1" & with-test} | "sexplib0" {with-test})
22+
]
23+
build: [
24+
["dune" "subst"] {dev}
25+
[
26+
"dune"
27+
"build"
28+
"-p"
29+
name
30+
"-j"
31+
jobs
32+
"@install"
33+
# Tests are not all associated with a package and would be run if using the
34+
# default '@runtest'.
35+
"@src/parser/runtest" {with-test}
36+
]
37+
]
38+
x-maintenance-intent: ["(latest)"]
39+
url {
40+
src: "https://github.com/ocaml/odoc/releases/download/3.0.0/odoc-3.0.0.tbz"
41+
checksum: [
42+
"sha256=ce84fa7e0cc5f3e8a54e6adeb10826152798b602057b9e46c5ae7e5d5206812b"
43+
"sha512=9febd413450ca2e3824c9ef7e1c9ae8d8094aa72ed71327a69d8d6b42f6f197b3f3f40d674de0d11fa1242ee0df95c693b5d74467d530704e1339f3a523452f6"
44+
]
45+
}
46+
x-commit-hash: "90e679061f68c5e5ee5915e280f63d842f41f300"
47+

packages/odoc/odoc.3.0.0/opam

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
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: "OCaml Documentation Generator"
27+
description: """
28+
**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.
29+
30+
- **Output Formats:** Odoc generates HTML for web browsing, LaTeX for PDF generation, and man pages for use on Unix-like systems.
31+
- **Cross-References:** odoc uses the `ocamldoc` markup, which allows to create links for functions, types, modules, and documentation pages.
32+
- **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.
33+
- **Code Highlighting:** odoc automatically highlights syntax in code snippets for different languages.
34+
35+
odoc is part of the [OCaml Platform](https://ocaml.org/docs/platform), the recommended set of tools for OCaml.
36+
"""
37+
38+
39+
depends: [
40+
"odoc-parser" {= version}
41+
"astring"
42+
"cmdliner" {>= "1.0.0" & < "2.0.0"}
43+
"cppo" {build & >= "1.1.0"}
44+
"dune" {>= "3.7.0"}
45+
"fpath"
46+
"ocaml" {>= "4.02.0" & < "5.4"}
47+
"result"
48+
"tyxml" {>= "4.4.0"}
49+
"fmt"
50+
51+
"ocamlfind" {with-test}
52+
"yojson" {>= "2.1.0"}
53+
("ocaml" {< "4.04.1" & with-test} | "sexplib0" {with-test})
54+
"conf-jq" {with-test}
55+
56+
"ppx_expect" {with-test}
57+
"bos" {with-test}
58+
"crunch" {>= "1.4.1"}
59+
60+
("ocaml" {< "4.07.0" & with-test} | "bisect_ppx" {with-test & > "2.5.0"})
61+
]
62+
63+
conflicts: [ "ocaml-option-bytecode-only" ]
64+
65+
x-extra-doc-deps: [
66+
"odoc-driver" {= version}
67+
"sherlodoc" {= version}
68+
"odig"
69+
]
70+
71+
build: [
72+
["dune" "subst"] {dev}
73+
[
74+
"dune"
75+
"build"
76+
"-p"
77+
name
78+
"-j"
79+
jobs
80+
"@install"
81+
"@runtest" {with-test}
82+
"@doc" {with-doc}
83+
]
84+
]
85+
x-maintenance-intent: ["(latest)"]
86+
url {
87+
src: "https://github.com/ocaml/odoc/releases/download/3.0.0/odoc-3.0.0.tbz"
88+
checksum: [
89+
"sha256=ce84fa7e0cc5f3e8a54e6adeb10826152798b602057b9e46c5ae7e5d5206812b"
90+
"sha512=9febd413450ca2e3824c9ef7e1c9ae8d8094aa72ed71327a69d8d6b42f6f197b3f3f40d674de0d11fa1242ee0df95c693b5d74467d530704e1339f3a523452f6"
91+
]
92+
}
93+
x-commit-hash: "90e679061f68c5e5ee5915e280f63d842f41f300"
94+
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
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+
depends: [
10+
"dune" {>= "3.7"}
11+
"ocaml" {>= "4.0.8"}
12+
"odoc" {= version}
13+
"base64" {>= "3.5.1"}
14+
"bigstringaf" {>= "0.9.1"}
15+
"js_of_ocaml" {>= "5.6.0"}
16+
"brr" {>= "0.0.6"}
17+
"cmdliner" {>= "1.2.0"}
18+
"decompress" {>= "1.5.3"}
19+
"fpath" {>= "0.7.3"}
20+
"lwt" {>= "5.7.0"}
21+
"menhir" {>= "20230608"}
22+
"ppx_blob" {>= "0.9.0"}
23+
"tyxml" {>= "4.6.0"}
24+
"result" {>= "1.5"}
25+
"odig" {with-test}
26+
"base" {with-test & = "v0.16.3"}
27+
"alcotest" {with-test}
28+
]
29+
depopts: [
30+
"ancient" {>= "0.9.1"}
31+
]
32+
build: [
33+
["dune" "subst"] {dev}
34+
[
35+
"dune"
36+
"build"
37+
"-p"
38+
name
39+
"-j"
40+
jobs
41+
"@install"
42+
"@sherlodoc/runtest" {with-test}
43+
"@doc" {with-doc}
44+
]
45+
]
46+
dev-repo: "git+https://github.com/ocaml/odoc.git"
47+
x-maintenance-intent: ["(latest)"]
48+
url {
49+
src: "https://github.com/ocaml/odoc/releases/download/3.0.0/odoc-3.0.0.tbz"
50+
checksum: [
51+
"sha256=ce84fa7e0cc5f3e8a54e6adeb10826152798b602057b9e46c5ae7e5d5206812b"
52+
"sha512=9febd413450ca2e3824c9ef7e1c9ae8d8094aa72ed71327a69d8d6b42f6f197b3f3f40d674de0d11fa1242ee0df95c693b5d74467d530704e1339f3a523452f6"
53+
]
54+
}
55+
x-commit-hash: "90e679061f68c5e5ee5915e280f63d842f41f300"
56+

0 commit comments

Comments
 (0)