mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
71 lines
2.0 KiB
Python
71 lines
2.0 KiB
Python
"""
|
|
sphinx.builders.dirhtml
|
|
~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Directory HTML builders.
|
|
|
|
:copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS.
|
|
:license: BSD, see LICENSE for details.
|
|
"""
|
|
|
|
from os import path
|
|
from typing import Any, Dict, Set
|
|
|
|
from sphinx.application import Sphinx
|
|
from sphinx.builders.html import StandaloneHTMLBuilder
|
|
from sphinx.deprecation import RemovedInSphinx40Warning, deprecated_alias
|
|
from sphinx.util import logging
|
|
from sphinx.util.osutil import SEP, os_path
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
class DirectoryHTMLBuilder(StandaloneHTMLBuilder):
|
|
"""
|
|
A StandaloneHTMLBuilder that creates all HTML pages as "index.html" in
|
|
a directory given by their pagename, so that generated URLs don't have
|
|
``.html`` in them.
|
|
"""
|
|
name = 'dirhtml'
|
|
|
|
def get_target_uri(self, docname: str, typ: str = None) -> str:
|
|
if docname == 'index':
|
|
return ''
|
|
if docname.endswith(SEP + 'index'):
|
|
return docname[:-5] # up to sep
|
|
return docname + SEP
|
|
|
|
def get_outfilename(self, pagename: str) -> str:
|
|
if pagename == 'index' or pagename.endswith(SEP + 'index'):
|
|
outfilename = path.join(self.outdir, os_path(pagename) +
|
|
self.out_suffix)
|
|
else:
|
|
outfilename = path.join(self.outdir, os_path(pagename),
|
|
'index' + self.out_suffix)
|
|
|
|
return outfilename
|
|
|
|
def prepare_writing(self, docnames: Set[str]) -> None:
|
|
super().prepare_writing(docnames)
|
|
self.globalcontext['no_search_suffix'] = True
|
|
|
|
|
|
# for compatibility
|
|
deprecated_alias('sphinx.builders.html',
|
|
{
|
|
'DirectoryHTMLBuilder': DirectoryHTMLBuilder,
|
|
},
|
|
RemovedInSphinx40Warning)
|
|
|
|
|
|
def setup(app: Sphinx) -> Dict[str, Any]:
|
|
app.setup_extension('sphinx.builders.html')
|
|
|
|
app.add_builder(DirectoryHTMLBuilder)
|
|
|
|
return {
|
|
'version': 'builtin',
|
|
'parallel_read_safe': True,
|
|
'parallel_write_safe': True,
|
|
}
|