Skip to main content

sphinx-tabular

PyPI Python Docs Downloads

Full documentation

Instead of just modifying the final table output, sphinx-tabular builds real docutils table nodes (table/tgroup/row/entry) the same way docutils' own table directives do, and only overrides the HTML rendering of table cells (for colspan/rowspan/inline styling) — the rest of the output is generated by Sphinx's normal HTML writer.

While the table structure and merged cells will work in the LaTeX builder PDF output, the table formatting (colors, icons, bacgkround color, text color, and alignment) is HTML only.

Features

  • Sphinx extension.
  • Uses standard CSV files or native reStructuredText list-table syntax.
  • Easily merge table cells with < and ^.
  • Support reStructuredText, rich reStructuredText list cells, and Markdown.
  • Support for inline table data and external files.
  • Optional sticky header support for one or more header rows.
  • Provides a minimal set of spreadsheet formulas.
  • Set table cell alignment and per-cell alignment in both horizontal and vertical directions.
  • Set custom cell text and background colors.
  • Custom status pill.
  • Support for Font Awesome and Bootstrip icons if installed by your theme.
  • Sortable rows by clicking on the header row.
  • Searchable option.

Installation

pip install sphinx-tabular

conf.py

extensions = [
    ...,
    "sphinx_tabular",
    ...,
]

Directives

rcsv-table

Use CSV rows with reStructuredText cell content. Data may be inline or loaded from an external .rcsv file.

.. rcsv-table:: Title
    :file: table.rcsv

mcsv-table

Use CSV rows with MyST Markdown cell content. Data may be inline or loaded from an external .mcsv file.

.. mcsv-table:: Title
    :file: table.mcsv

rlist-table

Use a uniform two-level reStructuredText bullet list. Each top-level item is a row, and each nested item is a cell. Rich reStructuredText nodes are preserved inside ordinary cells.

.. rlist-table:: Interface status
    :header-rows: 1
    :stub-columns: 1

    * - Name
      - Owner
      - Status
    * - Alpha
      - **Able Team**
      - =STATUS(Ready; green)

rlist-table is inline-only. Use .. include:: when the list should be kept in another source file.

Merging Cells

In rcsv-table and mcsv-table, an unquoted < merges with the cell to its left and an unquoted ^ merges with the cell above it.

.. rcsv-table:: Horizontal merge

    Merged,<
    Unmerged,Unmerged
.. rcsv-table:: Vertical merge

    Merged,Unmerged
    ^,Unmerged

In rlist-table, a cell containing one plain-text < or ^ is a merge marker. Use an inline literal such as `<` or `^` when the character should be displayed instead.

.. rlist-table:: List merge

    * - Merged
      - <
    * - Unmerged
      - Unmerged

Options

Supported options include:

  • :align: Place an rlist-table at left, center, or right.
  • :class: Additional classes to add to the table.
  • :file: Path to the .rcsv or .mcsv file. Not supported by rlist-table.
  • :header-rows: Number of top rows to format as header rows. If :sticky-header: is set, these rows become sticky.
  • :initial-sort: Apply independent page-load ordering using one-based COLUMN=TYPE[:reverse] criteria.
  • :name: Assign an explicit target name to an rlist-table.
  • :search: Add a search field with a row count to the table and enable searching.
  • :sortable: Enable row sorting by clicking on the headers.
  • :sort-types: Assign interactive sort types using one-based COLUMN=TYPE entries.
  • :sticky-header: Make the header rows sticky when scrolling long tables.
  • :sticky-offset: CSS offset for sticky headers, such as 3.5rem.
  • :strict: Treat ragged rows and malformed input as errors instead of warnings.
  • :stub-columns: Mark leftmost columns as semantic stubs for rlist-table.
  • :text-align: Horizontal alignment of text in the cells. Default is left.
  • :vertical-align: Vertical alignment of text in cells. Default is middle.
  • :width: CSS width for the table, such as 100%.
  • :widths: A space-separated list of column widths.

Formatting

  • Custom theming.
  • =ALIGN() horizontal/vertical cell value alignment.
  • =BG() set the background cell color.
  • =FG() set text color.
  • =ICON() use a Font Awesome or Bootstrap icon, or a fallback.
  • =STATUS() insert a colored status pill.

Spreadsheet

  • ' interprest as literal text without evaluation.
  • +,-,*,/ arithmetic operations on cells.
  • =C4 cell references.
  • =A4:B4 cell ranges.
  • =AVG() take the average.
  • =CONCAT() concatenation of cell values.
  • =COUNT() count number of numerical values.
  • =IF() conditional evaluation.
  • =MAX() find the maximum value.
  • =MIN() find the minimum value.
  • =ROUND() round the number to an int or the specified decimal places.
  • =SUM() sum a set or range of values.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sphinx_tabular-0.2.5.tar.gz (39.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sphinx_tabular-0.2.5-py3-none-any.whl (34.1 kB view details)

Uploaded Python 3

File details

Details for the file sphinx_tabular-0.2.5.tar.gz.

File metadata

  • Download URL: sphinx_tabular-0.2.5.tar.gz
  • Upload date:
  • Size: 39.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for sphinx_tabular-0.2.5.tar.gz
Algorithm Hash digest
SHA256 07c0f3baffb68f9f7471a625fe0dcc62fcb9e986067eed12cacdaba7732ae613
MD5 52a1fafe658abad4d6c7c9b1d13603d5
BLAKE2b-256 ce3f329a8bd3eb96bbe258c59d4ad2a5b1b09ba6c90824b58568583f8d224fd4

See more details on using hashes here.

Provenance

The following attestation bundles were made for sphinx_tabular-0.2.5.tar.gz:

Publisher: publish.yml on deepthinker2001/sphinx-tabular

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sphinx_tabular-0.2.5-py3-none-any.whl.

File metadata

  • Download URL: sphinx_tabular-0.2.5-py3-none-any.whl
  • Upload date:
  • Size: 34.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for sphinx_tabular-0.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 adc6c00ba3f5c66bc26faa1301a0df3e5f42ae37ba75680ad5907d18ae546532
MD5 cac10dd29ffb2600e52dfe444fbfa767
BLAKE2b-256 2953b8cd3ac88a552bfa28e6f463c543e5e3713c0647d60f2283368b437e05c8

See more details on using hashes here.

Provenance

The following attestation bundles were made for sphinx_tabular-0.2.5-py3-none-any.whl:

Publisher: publish.yml on deepthinker2001/sphinx-tabular

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.2.5 This release

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.9

2 files

0.1.8

2 files

0.1.7

2 files

0.1.6

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page