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
If you made some modifications to Sphinx theme and want to generate Airflow documentation to check the end results, please follow these steps:
-
In
airflow-site
repository, build Airflow website:./site.sh build-site
-
Package the Sphinx theme in a
whl
file:cd ./sphinx_airflow_theme python3 setup.py sdist bdist_wheel
-
(Optional) Double-check your modifications to the Sphinx theme are in the
whl
file:pip install wheel wheel unpack ./sphinx_airflow_theme-0.0.11-py3-none-any.whl
-
Copy the
whl
file tofiles
directory inairflow
repository:cp ./sphinx_airflow_theme-0.0.11-py3-none-any.whl ${AIRFLOW_REPO}/files/
-
In
airflow
repository, initiate a new breeze environment:breeze
-
In the breeze container, generate the documentation after installing the theme:
pip install /files/sphinx_airflow_theme-0.0.11-py3-none-any.whl --force-reinstall # Generate Airflow documentation only. If you need to generate the whole documentation (all providers), # you can do it using `/opt/airflow/scripts/in_container/run_docs_build.sh`. It takes longer to execute. /opt/airflow/scripts/in_container/run_docs_build.sh --package-filter apache-airflow
-
Verify the documentation generated is correct and includes your modifications. The documentation is generated in
docs/_build/docs/
. If you generated Airflow documentation only, you can check the results indocs/_build/docs/apache-airflow/latest/
.
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