The easiest way to contribute to the documentation is to simply open a pull request. A preview version of the documentation is built for PRs, so you can see how your changes look without having to build the entire site locally. (Note that if you are editing a tutorial that takes a long time to run, this feedback may take a while.)
The main
branch contains the Quarto source code.
The HTML documentation is automatically built using GitHub Actions, and deployed to the gh-pages
branch, so you do not have to build and commit the HTML files yourself.
If you wish to render the docs website locally, you'll need to have Quarto installed (at least version 1.6.31) on your computer. Then:
-
Clone this repository:
git clone https://github.com/TuringLang/docs
-
Navigate into the cloned directory:
cd docs
-
Instantiate the project environment:
julia --project=. -e 'using Pkg; Pkg.instantiate()'
-
Preview the website using Quarto.
[!WARNING]
This will take a very long time, as it will build every tutorial from scratch. See below for ways to speed this up.
quarto preview
This will launch a local server at http://localhost:4200/, which you can view in your web browser by navigating to the link shown in your terminal.
-
Render the website locally:
quarto render
This will build the entire documentation and place the output in the
_site
folder. You can then view the rendered website by launching a HTTP server from that directory, e.g. using Python:cd _site python -m http.server 8000
Then, navigate to http://localhost:8000/ in your web browser.
Note that rendering the entire documentation site can take a long time (usually multiple hours). If you wish to speed up local rendering, there are two options available:
-
Render a single tutorial or
qmd
file without compiling the entire site. To do this, pass theqmd
file as an argument toquarto render
:quarto render path/to/index.qmd
(Note that
quarto preview
does not support this single-file rendering.) -
Download the most recent
_freeze
folder from the GitHub releases of this repo, and place it in the root of the project. The_freeze
folder stores the cached outputs from a previous build of the documentation. If it is present, Quarto will reuse the outputs of previous computations for any files for which the source is unchanged.Note that the validity of a
_freeze
folder depends on the Julia environment that it was created with, because different package versions may lead to different outputs. In the GitHub release, theManifest.toml
is also provided, and you should also download this and place it in the root directory of the docs.If there isn't a suitably up-to-date
_freeze
folder in the releases, you can generate a new one by triggering a run for thecreate_release.yml
workflow. (You will need to have the appropriate permissions; please create an issue if you need help with this.)
As described in the Quarto docs, Quarto's Julia engine uses a worker process behind the scenes.
Sometimes this can result in issues with old package code not being unloaded (e.g. when package versions are upgraded).
If you find that Quarto's execution is failing with errors that aren't reproducible via a normal REPL, try adding the --execute-daemon-restart
flag to the quarto render
command:
quarto render /path/to/index.qmd --execute-daemon-restart
And also, kill any stray Quarto processes that are still running (sometimes it keeps running in the background):
pkill -9 -f quarto
This project is licensed under the MIT License - see the LICENSE file for details.