API Reference ============= .. toctree:: :hidden: autodoc cli core defaults fetch gds gettext graphdog highlight highlight/guidedoc host i18n inventory jinja odindoc project pyscan readers/commonmark readers/rst readers/rst/inline readers/sphinx render/html render/text render/typst treesitter typst - :odin:pkg:`autodoc` -- Package autodoc generates the reStructuredText that Sphinx's sphinx.ext.autodoc generates (Sphinx 9.1), from Python source analysed by lib/pyscan instead of imported modules: the same directives (".. - :odin:pkg:`cli` -- Package cli is the guidedog command: run parses a command line, does what it asks, and returns the exit status. - :odin:pkg:`core` -- Generated by tools/casefold from tools/data/CaseFolding-17.0.0.txt ; do not edit. - :odin:pkg:`defaults` -- Package defaults assembles the built-in readers and renderers into an explicit, immutable registry. - :odin:pkg:`fetch` - :odin:pkg:`gds` -- Package gds is the GDS process of docs/gds (GDS 0001) as a library: it loads the discussion records of a directory into a Catalog, plans changes to them (a new draft, a promotion, a state or label change, the regenerated index) as a Plan, applies a plan as one recoverable transaction under a lock. - :odin:pkg:`gettext` -- Package gettext reads, writes, merges, and looks up GNU gettext message catalogs: PO and POT text files, and compiled MO files. - :odin:pkg:`graphdog` -- Package graphdog turns Graphviz DOT source into SVG (or PNG, or laid-out DOT) by calling the Graphviz C library in process. - :odin:pkg:`highlight` -- Generated by tools/pygments\_styles from pygments-2.19.2's style modules and sphinx-9.1.0's pygments\_styles.py; do not edit. - :odin:pkg:`highlight/guidedoc` -- Package highlight\_guidedoc connects the highlight library to Guidedoc's renderers. - :odin:pkg:`host` -- Package host composes the allocation-free core with memory, files, and retries. - :odin:pkg:`i18n` -- Package i18n translates Guidedoc documents the way Sphinx does with gettext: it extracts every translatable message of a document into a POT template (Sphinx's gettext builder), and it replaces each message with its translation from a catalog (Sphinx's Locale transform), re-parsing the translation as inline markup of the document's own language. - :odin:pkg:`inventory` - :odin:pkg:`jinja` - :odin:pkg:`odindoc` -- Package odindoc reads Odin packages by static analysis, with Odin's own parser (core:odin/parser), and writes the reStructuredText of the Guidedoc odin domain that documents them, as sphinx.ext.autodoc writes the Python domain's: packages, procedures, procedure groups, types and their fields or enumerators, constants, variables, and foreign imports, each with its doc comment turned into reST. - :odin:pkg:`project` -- Package project builds a documentation project the way Sphinx does: a source directory with conf.toml, builders writing \_build/\, and incremental builds. - :odin:pkg:`pyscan` -- Package pyscan analyses Python source statically, through tree-sitter: modules and their docstrings, \_\_all\_\_, and imports; classes with their bases, decorators, and members in source order; functions with their parameters as written; and the attribute documentation Sphinx's ModuleAnalyzer finds (#: comments and docstrings after assignments). - :odin:pkg:`readers/commonmark` -- Package commonmark reads Markdown into a Guidedoc document without calling an allocator, as two readers with distinct ids: "commonmark" (reader, read, read\_inline) is pure CommonMark 0.31.2 and takes no settings; "myst" (myst\_reader, read\_myst, read\_myst\_inline) is the MyST Markdown that Sphinx projects write (myst-parser 0.16.1): directives, roles, targets, comments, front matter, footnotes, GFM tables, and the optional syntax that Settings.enable\_extensions turns on. - :odin:pkg:`readers/rst` -- Package rst reads reStructuredText as the Docutils markup specification defines it, implemented independently. - :odin:pkg:`readers/rst/inline` -- Package rst\_inline parses reStructuredText inline markup and resolves references. - :odin:pkg:`readers/sphinx` -- Package sphinx reads reStructuredText with the Sphinx layer: Sphinx's directives, roles, and domains (GDS "Guidedog: everything Sphinx does, the Odin way"), implemented independently on the base reader's extension interface. - :odin:pkg:`render/html` -- Package html renders a Guidedoc document as HTML without calling an allocator. - :odin:pkg:`render/text` -- Package text\_render renders a Guidedoc document as plain text without calling an allocator, following the conventions of Sphinx's text builder: paragraphs wrapped at 70 columns, titles underlined with = - ~ and the other section characters, "\* " and "1. - :odin:pkg:`render/typst` -- Package typst\_render encodes a validated Guidedoc document as one Typst source file. - :odin:pkg:`treesitter` -- Package treesitter is a thin binding of the tree-sitter C library and its Python grammar: parsers, trees, nodes, and cursors, and nothing more. - :odin:pkg:`typst` -- Package typst adapts the Typst toolchain for the host.