I came across Quarto today, gave it a closer look and it looks excellent to me. I think it would be great if nbdev were compatible with Quarto – or something similar like jupyterbook – to extend the publishing options of nbdev projects (> websites, pdf). Would be interested to hear your opinion on whether that’s feasible/desirable/doable?
It makes it possible to convert (a set of) interactive (executable) notebooks to websites or PDFs and is open to use with Python and R as well as different file formats (ipynb, md) and tools (JupyterLab, text editors). It operates on top of pandoc which is great for interoperability.
It features a nice set of Markdown syntax conventions to cover all kinds of publishing needs (websites, academic) very comprehensively (citations, subtables etc.). Unlike jupyterbook, it does not depend on Sphinx and I think it’s closer to the nbdev/fastpages conventions.
I agree. I’ve been playing with it a lot and I am really enjoying working with Quarto, both within notebooks as well as in the qmd text format is vscode and rstudio.
Quarto creates a project with required boilerplate and files for websites. I think it would be awesome if nbdev acted in a similar way and felt like an extension that allowed for creating a python library project. Instead of rendering to website it renders to pip/conda compatible library. Quarto has the concept of hash-pipe flags which that syntax could be reused possible for nbdev flags.
I think his is more complicated than other formats quarto renders to because a library involves pip/conda compatibility, testing/CI, a website for documentation, AND the library - so not sure that it’s feasible.
But I am getting so much use out of quarto that I would love if there was a way to do it all from quarto notebooks and maintain tooling/syntax consistency across more things that I do.
Does quarto have a feature or configuration settings like fastpages where you just put .docx files and .ipynb files into a folder and it gets automatically converted and categorised as blog posts?