update sphinx extension to automatically pad lists to fill tables and avoid errors processing the documentation

This commit is contained in:
Axel Kohlmeyer
2020-01-21 11:39:29 -05:00
parent 3db920b8a6
commit 405eb63a51
7 changed files with 12 additions and 23 deletions

View File

@ -1,6 +1,6 @@
from docutils import nodes
from sphinx.util.docutils import SphinxDirective
from docutils.nodes import Element, Node
from docutils.nodes import Element, Node, list_item
from typing import Any, Dict, List
from sphinx import addnodes
from sphinx.util import logging
@ -26,8 +26,12 @@ class TableFromList(SphinxDirective):
raise SphinxError('table_from_list content is not a list')
fulllist = node.children[0]
# fill list with empty items to have a number of entries
# that is divisible by ncolumns
if (len(fulllist) % ncolumns) != 0:
raise SphinxError('number of list elements not a multiple of column number')
missing = int(ncolumns - (len(fulllist) % ncolumns))
for i in range(0,missing):
fulllist += list_item()
table = nodes.table()
tgroup = nodes.tgroup(cols=ncolumns)