Sphinx theme for Apache Airflow documentation.
In order to start working with the theme, please follow the instructions below.
-
Make sure your
python
shell command executes Python3 interpreter. If necessary, use a virtual environment:mkvirtualenv -p python3 <name_of_environment>
-
To make Javascript and CSS code available for the theme, run the following command in the root directory:
./site.sh build-site && ./site.sh prepare-theme
-
To install the required Python packages, in
<ROOT DIRECTORY>/sphinx_airflow_theme
run:pip install -e .
-
To launch the demo documentation page, in
<ROOT DIRECTORY>/sphinx_airflow_theme/demo
run:./docs.sh build && ./docs.sh preview
To install the latest development version of a theme, run:
THEME_VERSION="$(curl -s https://api.github.com/repos/apache/airflow-site/releases/latest | grep '"tag_name":' | cut -d '"' -f 4)"
pip install "https://github.com/apache/airflow-site/releases/download/${THEME_VERSION}/sphinx_airflow_theme-${THEME_VERSION}-py3-none-any.whl"
Python packages for your PRs is available as downloadable artifact in GitHub Actions after the CI builds your PR.
A theme that supports the following configuration options under the html_theme_options
dict in your projects conf.py
:
The list of links that should be available in the navigation bar at the top of the pages. The order of items will not be changed.
Example values:
html_theme_options = {
'navbar_links': [
{'href': '/docs/', 'text': 'Documentation'}
]
}
(This is the default)
If True
, all links on the same domain but not pointing to this theme's page (e.g. /community/
) will be hidden.
Example values:
html_theme_options = {
'hide_website_buttons': False,
}
sidebar_includehidden
Controls the ToC display in the sidebar. See https://www.sphinx-doc.org/en/master/templating.html#toctree for more info
<ROOT DIRECTORY>/sphinx_airflow_theme/sphinx_airflow_theme
- HTML files<ROOT DIRECTORY>/landing-pages/site/assets/scss
- SCSS files<ROOT DIRECTORY>/landing-pages/src/js
- Javascript files. If you create a new JS file, don't forget to include it in `/landing-pages/src/docs-index.js