#!/usr/bin/env python # -*- coding: utf-8 -*- """ Build Gemini blog from Sphinx. """ __version_info__ = (0, 0, 1) __version__ = '.'.join([str(val) for val in __version_info__]) from typing import Set, Dict, Any from sphinx.builders.text import TextBuilder from sphinx.util import logging from sphinx.locale import __ from sphinx.application import Sphinx from .writer import GeminiTranslator, GeminiWriter logger = logging.getLogger(__name__) class GeminiBuilder(TextBuilder): """ Gemini builder, based on native TextBuilder code from Sphinx """ name = 'gemini' format = 'gemini' epilog = __('The gemini files are in %(outdir)s.') out_suffix = '.gmi' allow_parallel = True default_translator_class = GeminiTranslator current_docname = None def prepare_writing(self, docnames: Set[str]) -> None: self.writer = GeminiWriter(self) def setup(app: Sphinx) -> Dict[str, Any]: app.add_builder(GeminiBuilder) return { 'version': __version__, 'parallel_read_safe': True, 'parallel_write_safe': True }