You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.0 KiB
50 lines
1.0 KiB
8 months ago
|
"""Do syntax checks, but no writing."""
|
||
|
|
||
|
from __future__ import annotations
|
||
|
|
||
|
from typing import TYPE_CHECKING
|
||
|
|
||
|
from sphinx.builders import Builder
|
||
|
from sphinx.locale import __
|
||
|
|
||
|
if TYPE_CHECKING:
|
||
|
from docutils.nodes import Node
|
||
|
|
||
|
from sphinx.application import Sphinx
|
||
|
from sphinx.util.typing import ExtensionMetadata
|
||
|
|
||
|
|
||
|
class DummyBuilder(Builder):
|
||
|
name = 'dummy'
|
||
|
epilog = __('The dummy builder generates no files.')
|
||
|
|
||
|
allow_parallel = True
|
||
|
|
||
|
def init(self) -> None:
|
||
|
pass
|
||
|
|
||
|
def get_outdated_docs(self) -> set[str]:
|
||
|
return self.env.found_docs
|
||
|
|
||
|
def get_target_uri(self, docname: str, typ: str | None = None) -> str:
|
||
|
return ''
|
||
|
|
||
|
def prepare_writing(self, docnames: set[str]) -> None:
|
||
|
pass
|
||
|
|
||
|
def write_doc(self, docname: str, doctree: Node) -> None:
|
||
|
pass
|
||
|
|
||
|
def finish(self) -> None:
|
||
|
pass
|
||
|
|
||
|
|
||
|
def setup(app: Sphinx) -> ExtensionMetadata:
|
||
|
app.add_builder(DummyBuilder)
|
||
|
|
||
|
return {
|
||
|
'version': 'builtin',
|
||
|
'parallel_read_safe': True,
|
||
|
'parallel_write_safe': True,
|
||
|
}
|