All Posts
What is Sphinx built-in search, and how to use it in themes?
- Jan 10, 2025
Sphinx is a powerful documentation generator with features that enhance content usability. Its built-in search offers a simple way to find information within your documentation. This guide will help you implement and customize Sphinx’s search in your themes for a better user experience for documentation readers.
How to insert video to Sphinx document
- Nov 21, 2024
Although it sounds easy, it’s not straightforward. Sadly, pure Sphinx and the underlying library Docutils do not directly support inserting videos into documents. But we will show you two approaches to insert it anyway.
3 Steps for Release Notes Which Users Will Love
- Oct 18, 2024
Release notes (RNs) are a specific type of documentation for software applications. No matter if you call it changelogs, announcements, or ‘what’s new’. Unfortunately, they’re often poorly maintained or missing altogether because people tend to skip over them.
Sphinx Themes: Permalinks to heading
- Oct 15, 2024
Permalinks are small anchors next to the heading which allows to copy and share URL directly to that heading within the page. By default, Sphinx generates those permalinks with ¶
character (the paragraph sign), but the most themes hides it until heading mouse hover.
Project-specific Sphinx Themes
- Oct 15, 2024
As explained in our Sphinx Themes: Introduction, the theme is basically a folder with theme.toml
, some Jinja HTML templates and static files.
Sphinx Versions Summary
- Jun 26, 2024
On this page, we’ll summarize a few recent Sphinx releases. We don’t want to duplicate the official Sphinx changelogs, but briefly highlight the most important changes and list supported Python and Docutils versions.
Documatt 1.0 released. Finale or startline?
- Jun 26, 2024
🎉 Documatt is finally here 🎉. For everyone, not just our friends and fellow tech writers. After 12+ months of development and 6 months of closed beta, you can now author in Markdown/reStructuredText and host your next documentation with us.
Creating URL-encoded URLs in Falcon web framework
- Aug 02, 2023
REST APIs can pass another URL as part of the API’s URL. E.g., /cache/foo%2Fbar.html
is passing foo/bar.html
to /cache/
endpoint. Building these APIs in Python is difficult because of the unfortunate omission of the WSGI specification that doesn’t provide the means to access the raw request URL. WSGI offers web frameworks only already URL-decoded PATH_INFO
CGI variable. I.e., for the previous example, they actually got /cache/foo/bar.html
which likely leads to 404 Not Found as there is no cache/foo/bar.html
endpoint.
Centralized user messages in Python apps
- Jul 16, 2023
Helpful errors with error codes. Do you love it too? During the development of the Snippets, an online preview tool for reStructuredText (and Markdown coming soon), I tried to produce actually helpful messages to the API user. I started with collecting text strings that could appear to users across the codebase and put them into a single file.
URL encoding
- Jun 15, 2023
URL encoding (also known as percentage encoding) is a way to pass around characters otherwise prohibited in the URL and HTML forms because they have special meanings. For example, to use http://
as part of a URL, not its beginning, it has to be %-encoded to http%3A%2F%2F
.
Translating with gettext overview
- Oct 15, 2021
Localization with gettext is streamlined process with responsibility distributed among original messages author, gettext tooling, and translator or translator tools. This post will help you understand extracting messages and starting new translation.
Getttext PO/POT format explained
- Oct 15, 2021
Gettext is internationalization (i18n) mechanism and library used not only in many software products, programming languages but also for translating Sphinx documentations. Gettext extracts strings marked “to-be-localized” from a source code (or a document) to plain text file with .po
or .pot
file extension. Let’s look at its format.
Debugging Sphinx extensions
- May 26, 2021
Developing extensions for Sphinx documentation projects can easily grow into a big Python project. Debugging with print()
quickly becomes a no-go. Let’s have a look how to debug Sphinx extension of any size.
Best Sphinx conf.py tips
- May 13, 2021
Over the years writing documentation in Sphinx, I found I do the same tweaks in every Sphinx project’s conf.py
again and again. Here are the best ones.
CSS to remove document title from Sphinx local ToC
- May 07, 2021
This week, I’m working on Documatt Sphinx Theme, a theme used for example in this blog. One of the longest postponed feature is displaying a local table of contents (ToC) in the right sidebar. By default, Sphinx displays a current document title in the local ToC, so let’s fix it.
How to modify Sphinx theme?
- Aug 13, 2020
Tech writers should write. Delivering documentation in a visually appealing manner is almost the same important as the content itself, however. Sphinx themes are “skins” that define look & feel of documentation when outputted to HTML format. In this post, you will learn how to customize existing or create a new theme from scratch.
Sphinx Themes: Introduction
- Aug 12, 2020
Sphinx theme is a collection of files that changes the appearance of HTML version of the documentation. It contains HTML templates, CSS stylesheets, and static files like images, favicon, fonts, etc.
How to add a sitemap to the Sphinx project?
- Jul 02, 2020
Sitemap is essential part of making your website more visible for search engines. It is usually represented by the sitemap.xml
file and lists URLs of all website pages, translations of pages in alternative languages, etc. sphinx-sitemap extension can easily generate sitemap for your Sphinx documentation project.
Pictures in documentation best practices
- Jun 10, 2020
Generally, pictures in documentation serve two purposes – they are a complement to the text or replace the textual description. Some people learn better with words, others with pictures (or videos).
Editor skills of every tech writer
- May 04, 2020
Know and love your editor. Programmers and tech writers literally spend their lives in powerful text editor and IDEs but sometimes aren’t aware of all their editing features. In the following post, I share some essential skills you, as a tech writer, should definitively adopt.