Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions docs/source/docxbuilder.rst
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,16 @@ customize the docx document properties.
If true, Office Word will ask to update fields in generated documents when the document is opened.
This is useful when generated documents references some document properties.
Default: ``False``.
**docx_hide_section_numbers**
If true, section numbers will be removed from section titles.
This is useful when Word header styles are auto-numbered, and the Sphinx toctree
is numbered. When this is setting is not set to true, headers would have
double section numbers.
Default: ``False``.
**docx_hide_subtoctrees**
If true, any TOC tree that is not in the root document will be hidden from
the Word output.
Default: ``False``.
**docx_table_options**
A dictionary with table layout options.
The following options are supported.
Expand Down
2 changes: 2 additions & 0 deletions docxbuilder/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ def default_docx_documents(conf):
app.add_config_value('docx_pagebreak_after_table_of_contents', 0, 'env')
app.add_config_value('docx_coverpage', True, 'env')
app.add_config_value('docx_update_fields', False, 'env')
app.add_config_value('docx_hide_section_numbers', False, 'env')
app.add_config_value('docx_hide_subtoctrees', False, 'env')
app.add_config_value('docx_table_options', {
'landscape_columns': 0,
'in_single_page': False,
Expand Down
8 changes: 7 additions & 1 deletion docxbuilder/writer.py
Original file line number Diff line number Diff line change
Expand Up @@ -1304,7 +1304,10 @@ def visit_title(self, node):
elif isinstance(node.parent, nodes.section):
style = 'Heading %d' % self._section_level
self._docx.create_style('paragraph', style, 'Heading', False)
title_num = self._get_numsec(node.parent['ids'])
if self.builder.config.docx_hide_section_numbers:
title_num = None
else:
title_num = self._get_numsec(node.parent['ids'])
indent = None
right_indent = None
align = None
Expand Down Expand Up @@ -2194,6 +2197,9 @@ def visit_raw(self, node):
raise nodes.SkipNode

def visit_toctree(self, node):
is_root_doc = (self.builder.config.root_doc == self.builder.app.project.path2doc(node.source))
if not is_root_doc and self.builder.config.docx_hide_subtoctrees:
return
if node.get('hidden', False):
return
caption = node.get('caption')
Expand Down