A clean customisable Sphinx documentation theme.
- Intentionally minimal --- the most important thing is the content, not the scaffolding around it.
- Responsive --- adapting perfectly to the available screen space, to work on all sorts of devices.
- Customisable --- change the color palette, font families, logo and more!
- Easy to navigate --- with carefully-designed sidebar navigation and inter-page links.
- Good looking content --- through clear typography and well-stylised elements.
- Good looking search --- helps readers find what they want quickly.
- Biased for smaller docsets --- intended for smaller documentation sets, where presenting the entire hierarchy in the sidebar is not overwhelming.
Furo is distributed on PyPI. To use the theme in your Sphinx project:
-
Install Furo in documentation's build environment.
pip install furo
-
Update the
html_theme
inconf.py
.html_theme = "furo"
-
Your Sphinx documentation's HTML pages will now be generated with this theme! 🎉
For more information, visit Furo's documentation.
Furo is a volunteer maintained open source project, and we welcome contributions of all forms. Please take a look at our Contributing Guide for more information.
Furo is inspired by (and borrows elements from) some excellent technical documentation themes:
- mkdocs-material for MkDocs
- Just the Docs for Jekyll
- GitBook
- pdoc3
We use BrowserStack to test on real devices and browsers. Shoutout to them for supporting OSS projects!
I plucked this from the scientific name for Domesticated Ferrets: Mustela putorius furo.
A ferret is actually a really good spirit animal for this project: cute, small, steals little things from various places, and hisses at you when you try to make it do things it doesn't like.
I plan on commissioning a logo for this project (or making one myself) consisting of a cute ferret. Please reach out if you're interested!
I'm being told that mentioning who uses
$thing
is a good way to promote$thing
.
- urllib3 -- THE first adopter of Furo
- attrs -- one of the early adopters!
- pip -- what I wrote this for
- Python Developer’s Guide
- psycopg3 -- another of the early adopters!
- black
This project is licensed under the MIT License.
This fork of furo
adds some flyte-specific customizations. For example, the
css styles are slightly different from the upstream repo, the navbar.html
file has custom elements, and the main.js
file has custom logic to pull
together all the different Flyte documentation sites.
We recommend using conda
to isolate your enviroment from your system's node
installation. Install miniconda
depending on your system, then create a virtual environment:
conda create -n flyte-furo python=3.9
conda activate flyte-furo
conda install -c conda-forge nox nodejs==15.14.0
You may have to create a new shell session to make sure the correct node executable is being used. You should expect it to point to the path of your conda environment, for example:
$ which node
/path/to/miniconda3/envs/flyte-furo/bin/node
Then install npm dependencies with npm install
.
To build the docs locally, do:
$ nox -s docs-live
Since we don't have a proper deployment system for our fork of furo, we always install furo in the flyte docs using:
pip install git+https://github.com/flyteorg/furo@main
Therefore, we need to check in all the compiled code that's typically not
checked into git. So if you make changes to any of the css
or js
files in
the src
directory, you need to compile the project and check it in.
The nox -s docs-live
command above should generate all the files needed, so after
a successful build you can add the changes and commit it as usual.