Markup Style Guide

This page covers conventions for writing Blender’s documentation using reStructuredText (RST) markup syntax. Following these conventions ensures clarity, consistency, and ease of maintenance.

General Conventions

  • Use a three-space indentation.

  • Limit line length to 120 characters.

  • Use italics for button and menu names.

  • Avoid using Unicode characters unless strictly necessary.

  • Prefer simple sentence structures for clarity.

  • Avoid heavily wrapped text (shorter paragraphs and clear sentences are recommended).

Headings

Use the following hierarchy for headings:

#################
  Document Part
#################

****************
Document Chapter
****************

Document Section
================

Document Subsection
-------------------

Document Subsubsection
^^^^^^^^^^^^^^^^^^^^^^

Document Paragraph
""""""""""""""""""

Merknad

  • Each .rst file should only have one chapter heading (*).

  • Parts should only be used on contents or index pages.

Basic Text Styling

Common text styles used throughout the documentation:

*italic text*
**bold text**
``literal text`` (e.g., filenames, Python code snippets)

Interface Elements

Standard markup for interface elements:

  • :kbd:`LMB` – keyboard and mouse shortcuts.

  • *Mirror* – interface labels (buttons, panels, etc.).

  • :menuselection:`3D Viewport --> Add --> Mesh --> Monkey` – navigation paths through menus.

Lists

Lists are used to clearly present sequential or grouped items:

Bullet List

- First item
- Second item
- Third item

Numbered List:

#. First step
#. Second step
#. Third step

Definition List:

Term
   Definition text here.

Useful Constructs

  • |BLENDER_VERSION|: Inserts the current Blender version automatically.

  • :abbr:`SSAO (Screen Space Ambient Occlusion)`: Abbreviation displays the full text on hover.

  • :term:`Manifold`: Links to the corresponding entry in the Glossary.

  • :bl-icon:`icon_name`: Include Blender icons as inline text, see the full list at Icons.

Admonitions

Admonitions are special blocks used to highlight important notes, warnings, or additional information in the documentation.

Common admonition types include:

  • note

  • tip

  • important

  • warning

  • caution

  • seealso

Admonitions are created using the following markup:

.. note::

   This is a note for general information.

Other types can be rendered by replacing note with the desired type from the list above.

Images

Use the figure directive for embedding images with captions:

.. figure:: /images/interface_splash_current.png

   Splash screen of Blender.

Screenshots Guidelines

To ensure consistency across screenshots:

  1. Use Blender’s default theme and settings.

  2. Zoom to the maximum level (Ctrl-MMB or NumpadPlus).

  3. Zoom out exactly eight steps (NumpadMinus, pressed eight times).

  4. Leave around a 30-pixel margin around the content, if applicable.

File Naming

Follow these guidelines for naming image files:

  • Use lowercase letters, no spaces, underscores between sections, and dashes within multi-word sections.

  • Place images only in the manual/images directory (no subfolders).

Examples:

  • interface_splash_current.png

  • modeling_meshes_edit-mode.png

Image Formats

  • .png: For interface screenshots or solid-color images.

  • .jpg: For photographic images or renders with high color variation.

  • Avoid .gif; use embedded videos for animations instead.

Videos

Embed videos hosted on Blender’s PeerTube at video.blender.org.

.. peertube:: ID

The ID is extracted from the video URL, e.g.:

https://video.blender.org/videos/watch/47448bc1-0cc0-4bd1-b6c8-9115d8f7e08c The ID is: 47448bc1-0cc0-4bd1-b6c8-9115d8f7e08c.

Guidelines for Videos

  • Prefer videos without spoken or textual explanations for easier translation.

  • Do not rely solely on videos to explain features. The manual text itself should clearly document the process.

Code Samples

Code snippets should use syntax highlighting and optional line numbering:

.. code-block:: python
   :linenos:

   import bpy

   def example_function():
       print("Hello Blender")

Placeholders & Editor Notes

For content that needs future updates or completion:

Visible to readers:

.. todo:: Complete this section when feature is finalized.

Internal notes (not visible to readers):

.. Internal developer reminder goes here

Further Reading