Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
sphinx-airflow-theme
Advanced tools
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 to files
directory in airflow
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 in
docs/_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
:
navbar_links
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)
hide_website_buttons
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_collapse
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.jsFAQs
Airflow theme for Sphinx
We found that sphinx-airflow-theme demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.