Skip to content

Octavo integration - #1659

Open
RensDimmendaal wants to merge 17 commits into
mainfrom
octavo-integration
Open

RensDimmendaal wants to merge 17 commits into
mainfrom
octavo-integration

Conversation

@RensDimmendaal

@RensDimmendaal RensDimmendaal commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

This PR adds octavo as an optional backend for nbdev-docs. The migration instructions are added to the octavo notebook's module docstring.

The migration is probably not perfect, because quarto has many features and I dont know which features other nbdev projects all use.

To test it I recommend reading through the notebook of course, but also to test it on another nbdev project's docs. I've ran it on nbdev's own docs and basedpl's docs for example.

I know the number of changes looks very large, but it's mainly explanations and tests in the octavo notebook.

$ g d main --stat
 nbdev/__init__.py           |    1 +
 nbdev/_modidx.py            |   23 +
 nbdev/doclinks.py           |   18 +-
 nbdev/octavo.py             |  288 +++++++++++
 nbdev/processors.py         |    4 +-
 nbdev/quarto.py             |   25 +-
 nbs/api/05_doclinks.ipynb   |   18 +-
 nbs/api/10_processors.ipynb |    4 +-
 nbs/api/14_quarto.ipynb     |   43 +-
 nbs/api/20_octavo.ipynb     | 1600 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 pyproject.toml              |    4 +-
 11 files changed, 1996 insertions(+), 32 deletions(-)

Select Octavo when octavo.yml exists in the notebooks directory,
retaining Quarto otherwise.

- Route docs, README, and CONTRIBUTING through the selected backend
- Skip Quarto config generation during prepare for Octavo projects
- Support local symbol links through an injected lookup
- Reject non-default Quarto file filters for Octavo builds
- Fix _nbglob_docs delegation to expose nbglob parameters
- Add the nbdev[octavo] extra and build examples

Export and Octavo notebook tests pass. Preview and source migration
remain pending.
@RensDimmendaal
RensDimmendaal requested a review from jph00 October 14, 2026 15:20
@RensDimmendaal RensDimmendaal added the enhancement New feature or request label Oct 14, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant