Source repository for the openEO documentation site. The site documents the openEO API, processes, clients, backends, examples, and project news.
The website is built with Quarto and published through GitHub Pages.
- Quarto
- Python 3.11 or later (GitHub Actions uses Python 3.11)
- Git, including submodule support
Clone the repository together with its example-notebook submodule:
git clone --recurse-submodules https://github.com/Open-EO/openeo-docs.git
cd openeo-docs
pip install -r requirements.txtIf the repository was already cloned without submodules, initialise them with:
git submodule update --init --recursiveRun:
quarto previewThe local preview is configured to use http://localhost. Quarto watches the source files and rebuilds the pages when they change. Use Ctrl+C to stop it.
To produce a complete local build without the preview server, run:
quarto renderThe generated website is written to _site/, which is not committed.
index.qmd– homepagedocumentation/– user documentation and cookbook contentnews/,events/, andmeetings.qmd– project communicationcustom.cssandcustom.html– shared presentation and browser behaviour_quarto.yml– Quarto site configuration, navigation, rendering rules, and pre-render hooksnews/images/– shared image assets, including the navbar logo
Use .qmd files for new Quarto content. Quarto resolves relative links and images from the location of the source file.
client_examples/openeo-community-examples is a Git submodule pointing to the openEO community examples repository. It contains notebooks and supporting material used by the documentation.
The submodule is deliberately excluded from Quarto's normal render input. Update an example in its own repository, then update the submodule pointer in this repository:
cd client_examples/openeo-community-examples
git pull origin main
cd ../..
git add client_examples/openeo-community-examplesCommit the updated pointer together with any documentation links that use the example.
Before every Quarto render, py_scripts/update_api_version.py fetches:
- the latest openEO API release;
- the backend count from the openEO Hub; and
- the process count from the official openEO process catalogue.
It writes the generated values to _variables.yml and _data/_variables.yml. These values are used by the site, for example on the homepage. A render therefore needs internet access to these services.
py_scripts/check_images.py runs before Quarto renders. It checks local image references in Quarto/Markdown sources, notebooks, and CSS and prints warnings for missing files. External URLs and data URLs are skipped.
Run it directly with:
python py_scripts/check_images.pyUse strict mode when you want missing local images to fail the command:
python py_scripts/check_images.py --strict
# or
$env:IMAGE_CHECK_STRICT = '1'
python py_scripts/check_images.pyThe GitHub Pages workflows build an openEO-hosted JupyterLite site at:
https://open-eo.github.io/openeo-docs/jupyterlite/
The current showcase bundles the Random Forest training notebook only. It is intended for exploring the notebook interface; helper files, datasets, and scientific dependencies are not preinstalled. See jupyterlite/README.md for details.
GitHub Actions handles site publication:
- pushes to
mainrender Quarto, build JupyterLite, and deploy the site to GitHub Pages; - pushes to
stagingrender and archive a staging build under thegh-pagesbranch; and - pull requests receive archived previews under
gh-pages/previews/.
The relevant workflow files are in .github/workflows/. Do not commit _site/ or generated JupyterLite content.
Keep changes focused, use relative links for repository content, and run quarto preview or quarto render before opening a pull request. If you change an image reference, run the image checker and ensure it points to an existing local asset.