Main Proposal¶
Work In Progress
This contains a proposal for _toc.yml. Given LaTeX is the more restrictive
medium – this approach is based on support LaTeX in the _toc.yml structure and
relating it back to HTML in as flexible a way as possible.
Introduce Categories¶
Introduce optional named sections in the yml such as frontmatter, abstract, backmatter). This
could extend the current toctree directive to include wrappers
for different content types for neater alignment with LaTeX and
html themes built to support book style qualities.
# [optional] Front Matter
frontmatter:
- file: preface
- file: intro
# [required] Main Matter (Current Implementation
# but main file is a generated index file and first file
# is a standard chapter / document equivalent to other files)
- file: chapter1
- part: A Group of Chapters
chapter:
- file: chapter2
# [optional] Abstracts
abstract: Abstract Group
- file: abstract1
# [optional] Back Matter
backmatter:
- file: bibliography
Implementation Ideas:¶
This essentially needs to be supported by Sphinx and could be organised by an updated
sphinx toctree that wraps documents inside appropriate document nodes providing
the contextual information needed for formatting more like traditional book structures:
frontmatter,backmatter,abstract
Simple Chapter Structure:
.. toctree::
:frontmatter: preface
:appendix: appendixA
preface
chapter1
chapter2
appendixA
would wrap the contents of the preface document within a frontmatter document node in the
Sphinx.AST and appendixA within an appendix document node.
This additional information in the AST would provide the opportunity to adjust section numbering based
on these structural positions in a document.
Parts/Chapter Document Structure:
To implement parts and chapter structure would include
.. toctree::
:frontmatter: preface
:appendix: appendixA
preface
part1
part2
appendixA
part1 would have its own toctree and title in part1.md document
.. toctree::
chapter1
chapter2
part2 would have its own toctree and title in part2.md document
.. toctree::
chapter3
chapter4
Alternative Options¶
Use a list approach that would
enable multiple files to be classified as frontmatter.
This could be useful when building books with preface and
secondary frontmatter sections.
Current
- file: myintro
- part: My first part
chapters:
- file: part1_chapter1
- file: part1_chapter2
- part: My second part
chapters:
- file: part2_chapter1
Proposed
- front:
- file: intro.md
- part: My first part
chapters:
- file: part1_chapter1
- file: part1_chapter2
- part: My second part
chapters:
- file: part2_chapter1
Sphinx toctree Resources:¶
sphinx/directives/other.py contains
toctreedirective definitions
Other Ideas:¶
For html perhaps we should write an inliner for toctree to get the numbering correct. A single toc may aslo be a useful way to generate sitemap.xml?