https://github.com/eliemichel/sphinx_literate
An advanced literate programming tool for writing incremental programming courses.
https://github.com/eliemichel/sphinx_literate
documentation literate-programming sphinx-extension
Last synced: 4 months ago
JSON representation
An advanced literate programming tool for writing incremental programming courses.
- Host: GitHub
- URL: https://github.com/eliemichel/sphinx_literate
- Owner: eliemichel
- Created: 2023-03-15T07:38:32.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2025-06-29T08:45:31.000Z (12 months ago)
- Last Synced: 2025-07-12T09:38:59.366Z (12 months ago)
- Topics: documentation, literate-programming, sphinx-extension
- Language: Python
- Homepage: https://eliemichel.github.io/sphinx_literate/doc
- Size: 345 KB
- Stars: 6
- Watchers: 2
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
Sphinx Literate
===============
This is a sphinx extension inspired by *literate programming* that I develop for the redaction of the [LearnWebGPU C++ guide](https://eliemichel.github.io/LearnWebGPU).
Basically, the idea of *literate programming* is that instead of first writing a code with docstring comments and then extract a documentation out of it, we first write the documentation and specify how to connect the different code snippets together so that we can extract the source tree from the documentation (what is called "tangling").
**Important:** At this early stage, the project focuses on providing what I need for myself rather than properly documenting, because I focus on the redaction of the WebGPU guide, but feel free to reach out to get more info about the undocumented bits.
Building
--------
Building the website requires Python.
1. It is recommended, but not mandatory, to set up a virtual Python environment:
```
$ virtualenv venv
$ venv/Scripts/activate
```
2. Then install Python packages
```
pip install -r requirements.txt
```
3. Build the html documentation by running:
```
make html
```
4. And extract the source code from doc (what is call "tangling") by running:
```
make tangle
```
Basic usage
-----------
As I was saying, no time to fully document now, but you can still check out [`doc/introduction.md`](doc/introduction.md) for some details.
