Merged in dcmouser/sphinx-fork-dcmouser (pull request #161)

Added option to apidoc to write each module to standalone page instead of combining all modules in a package on one page.
This commit is contained in:
Georg Brandl 2013-09-17 14:39:04 +02:00
commit d0cf2617cf
2 changed files with 36 additions and 3 deletions

View File

@ -33,6 +33,7 @@ Options
-T, --no-toc Do not create a table of contents file.
-F, --full If given, a full Sphinx project is generated (``conf.py``,
``Makefile`` etc.) using sphinx-quickstart.
-E, --separate Put each module file in its own page.
These options are used with ``-F``:

View File

@ -100,9 +100,37 @@ def create_package_file(root, master_package, subroot, py_files, opts, subs):
heading = ':mod:`%s` Package' % package
else:
heading = ':mod:`%s` Module' % py_file
# option to have each module go on its own page
if (opts.separatepages):
if (is_package):
# we handle packages SLIGHTLY differently in this case; no need
# for double nested heading for package that apidoc usually does
# since all other modules are going to be on separate pages
text += format_directive(is_package and subroot or py_path,
master_package)
else:
# with separatepages option, instead of embedding all module
# file contents on the one package page, each module will have
# its own page.
outfilepath = py_path + '.singlepage'
# text for this page just links to standalone page
text += '.. toctree::\n\n'
text += ' %s\n\n' % outfilepath
# and now the contents of the standalone page file is just what
# apidoc used to write inside this page, but with top level
# heading.
filetext = format_heading(1, heading)
filetext += format_directive(is_package and subroot or py_path,
master_package)
# write out standalone page file
write_file(outfilepath, filetext, opts)
else:
# standard apidoc behavior
text += format_heading(2, heading)
text += format_directive(is_package and subroot or py_path,
master_package)
text += '\n'
# build a list of directories that are packages (contain an INITPY file)
@ -271,6 +299,10 @@ Note: By default this script will not overwrite already created files.""")
parser.add_option('-R', '--doc-release', action='store', dest='release',
help='Project release, used when --full is given, '
'defaults to --doc-version')
parser.add_option('-E', '--separate', action='store_true', dest='separatepages',
help='Put each module file in its own page, ')
(opts, args) = parser.parse_args(argv[1:])