sphinx_weasyprint_builder/sphinx_weasyprint_builder/__init__.py

115 lines
2.5 KiB
Python

#!/usr/bin/env python3
from .weasyprint_builder import WeasyPrintPDFBuilder
from typing import Dict, Any
from sphinx.application import Sphinx
from sphinx.util.osutil import make_filename
from sphinx.locale import __
version = (0, 1, 0)
def setup(app: Sphinx) -> Dict[str, Any]:
app.setup_extension('sphinx.builders.html')
app.add_builder(WeasyPrintPDFBuilder)
app.add_config_value(
'weasyprint_theme_options',
lambda self: self.html_theme_options,
'weasyprint'
)
app.add_config_value(
'weasyprint_basename',
lambda self: make_filename(self.project),
'weasyprint'
)
app.add_config_value(
'weasyprint_theme',
lambda self: self.html_theme,
'weasyprint'
)
app.add_config_value(
'weasyprint_title',
lambda self: self.html_title,
'weasyprint'
)
app.add_config_value(
'weasyprint_theme_path',
lambda self: self.html_theme_path,
'weasyprint'
)
app.add_config_value(
'weasyprint_short_title',
lambda self: self.html_short_title,
'weasyprint'
)
app.add_config_value(
'weasyprint_style',
None,
'weasyprint',
[str]
)
app.add_config_value(
'weasyprint_css_files',
[],
'weasyprint'
)
app.add_config_value(
'weasyprint_show_copyright',
True,
'weasyprint'
)
app.add_config_value(
'weasyprint_show_sphinx',
True,
'weasyprint'
)
app.add_config_value(
'weasyprint_sign_method',
'none',
'weasyprint'
)
app.add_config_value(
'weasyprint_sign_certid',
'',
'weasyprint'
)
app.add_config_value(
'weasyprint_sign_reason',
'',
'weasyprint'
)
app.add_config_value(
'weasyprint_sign_contact',
'',
'weasyprint'
)
app.add_config_value(
'weasyprint_sign_location',
'',
'weasyprint'
)
app.add_config_value(
'weasyprint_sign_image',
None,
'weasyprint'
)
app.add_config_value(
'weasyprint_sign_position',
None,
'weasyprint'
)
app.add_config_value(
'weasyprint_sign_text',
__('Signed on {sign_date}\nat {sign_location}\nby {sign_contact}\nfor {sign_reason}'),
'weasyprint'
)
return {
'version': version,
'parallel_read_safe': True,
'parallel_write_safe': True,
}