annotate docs/conf.py @ 176:34c6b714c8cd

FIX: Do not use IBM Plex Mono but DejaVu Sans Mono because it has all needed symbols
author Franz Glasner <fzglas.hg@dom66.de>
date Mon, 11 May 2026 16:06:14 +0200
parents 551c3421bccb
children dcbc66f851eb
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
45
6ac1ea5d2d4a Begin documentation: add the Sphinx generated configuration as-is
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
1 # Configuration file for the Sphinx documentation builder.
6ac1ea5d2d4a Begin documentation: add the Sphinx generated configuration as-is
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
2 #
6ac1ea5d2d4a Begin documentation: add the Sphinx generated configuration as-is
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
3 # For the full list of built-in configuration values, see the documentation:
6ac1ea5d2d4a Begin documentation: add the Sphinx generated configuration as-is
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
4 # https://www.sphinx-doc.org/en/master/usage/configuration.html
6ac1ea5d2d4a Begin documentation: add the Sphinx generated configuration as-is
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
5
49
5c0f26a21e81 Determine "release" dynamically from the package's "__version__"
Franz Glasner <fzglas.hg@dom66.de>
parents: 48
diff changeset
6 import ast
167
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
7 import datetime
63
414bf3cbb152 Add a custom lexer to the Sphinx application dynamically with "no_end" set to True
Franz Glasner <fzglas.hg@dom66.de>
parents: 60
diff changeset
8 import functools
49
5c0f26a21e81 Determine "release" dynamically from the package's "__version__"
Franz Glasner <fzglas.hg@dom66.de>
parents: 48
diff changeset
9 import io
63
414bf3cbb152 Add a custom lexer to the Sphinx application dynamically with "no_end" set to True
Franz Glasner <fzglas.hg@dom66.de>
parents: 60
diff changeset
10 import os
414bf3cbb152 Add a custom lexer to the Sphinx application dynamically with "no_end" set to True
Franz Glasner <fzglas.hg@dom66.de>
parents: 60
diff changeset
11 import sys
49
5c0f26a21e81 Determine "release" dynamically from the package's "__version__"
Franz Glasner <fzglas.hg@dom66.de>
parents: 48
diff changeset
12 import re
5c0f26a21e81 Determine "release" dynamically from the package's "__version__"
Franz Glasner <fzglas.hg@dom66.de>
parents: 48
diff changeset
13
63
414bf3cbb152 Add a custom lexer to the Sphinx application dynamically with "no_end" set to True
Franz Glasner <fzglas.hg@dom66.de>
parents: 60
diff changeset
14 sys.path.insert(0, os.path.dirname(os.path.abspath('.')))
414bf3cbb152 Add a custom lexer to the Sphinx application dynamically with "no_end" set to True
Franz Glasner <fzglas.hg@dom66.de>
parents: 60
diff changeset
15
164
a4317957148b Move all lexers into a subpackage pygments_lexer_pseudocode2.lexers.
Franz Glasner <fzglas.hg@dom66.de>
parents: 160
diff changeset
16 from pygments_lexer_pseudocode2.lexers.algpseudocode import AlgPseudocodeLexer
68
93ade4c595b7 Reorg conf.py: import globally
Franz Glasner <fzglas.hg@dom66.de>
parents: 63
diff changeset
17
93ade4c595b7 Reorg conf.py: import globally
Franz Glasner <fzglas.hg@dom66.de>
parents: 63
diff changeset
18
134
62407bd73ba8 Require Sphinx >= 2.1.
Franz Glasner <fzglas.hg@dom66.de>
parents: 132
diff changeset
19 needs_sphinx = '2.1'
155
16faae7ecdb6 Document why Sphinx>=2.1 is needed
Franz Glasner <fzglas.hg@dom66.de>
parents: 151
diff changeset
20 """2.1: - :py:meth:Sphinx.add_lexer` takes a class as argument
16faae7ecdb6 Document why Sphinx>=2.1 is needed
Franz Glasner <fzglas.hg@dom66.de>
parents: 151
diff changeset
21
16faae7ecdb6 Document why Sphinx>=2.1 is needed
Franz Glasner <fzglas.hg@dom66.de>
parents: 151
diff changeset
22 """
134
62407bd73ba8 Require Sphinx >= 2.1.
Franz Glasner <fzglas.hg@dom66.de>
parents: 132
diff changeset
23
167
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
24 today = datetime.date.today().isoformat()
134
62407bd73ba8 Require Sphinx >= 2.1.
Franz Glasner <fzglas.hg@dom66.de>
parents: 132
diff changeset
25
171
4b87a9ecffdd The first somewhat useable version of documentation in PDF.
Franz Glasner <fzglas.hg@dom66.de>
parents: 170
diff changeset
26 master_doc = "index"
4b87a9ecffdd The first somewhat useable version of documentation in PDF.
Franz Glasner <fzglas.hg@dom66.de>
parents: 170
diff changeset
27
45
6ac1ea5d2d4a Begin documentation: add the Sphinx generated configuration as-is
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
28 # -- Project information -----------------------------------------------------
6ac1ea5d2d4a Begin documentation: add the Sphinx generated configuration as-is
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
29 # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
6ac1ea5d2d4a Begin documentation: add the Sphinx generated configuration as-is
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
30
6ac1ea5d2d4a Begin documentation: add the Sphinx generated configuration as-is
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
31 project = 'Pygments Pseudocode Lexer'
167
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
32 copyright = u'2026 Franz Glasner. © Copyright 2015 Simon Wachter'
45
6ac1ea5d2d4a Begin documentation: add the Sphinx generated configuration as-is
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
33 author = 'Franz Glasner'
167
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
34 #
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
35 # Determine "release" and other release metadata dynamically from the
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
36 # package's "__version__" or other VCS data.
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
37 #
49
5c0f26a21e81 Determine "release" dynamically from the package's "__version__"
Franz Glasner <fzglas.hg@dom66.de>
parents: 48
diff changeset
38 with io.open("../pygments_lexer_pseudocode2/__init__.py",
5c0f26a21e81 Determine "release" dynamically from the package's "__version__"
Franz Glasner <fzglas.hg@dom66.de>
parents: 48
diff changeset
39 "rt",
5c0f26a21e81 Determine "release" dynamically from the package's "__version__"
Franz Glasner <fzglas.hg@dom66.de>
parents: 48
diff changeset
40 encoding="utf-8") as relfp:
167
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
41 verfiledata = relfp.read()
49
5c0f26a21e81 Determine "release" dynamically from the package's "__version__"
Franz Glasner <fzglas.hg@dom66.de>
parents: 48
diff changeset
42 release = ast.literal_eval(
5c0f26a21e81 Determine "release" dynamically from the package's "__version__"
Franz Glasner <fzglas.hg@dom66.de>
parents: 48
diff changeset
43 re.search(r"""^\s*__version__\s*=\s*(("|')[^"']*\2)""",
167
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
44 verfiledata,
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
45 re.MULTILINE).group(1))
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
46 release_date = (
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
47 ast.literal_eval(
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
48 re.search(r"""^\s*__date__\s*=\s*(("|')[^"']*\2)""",
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
49 verfiledata,
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
50 re.MULTILINE).group(1))
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
51 or "dev:%s" % (today,)
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
52 )
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
53 release_rev = ast.literal_eval(
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
54 re.search(r"""^\s*__revision__\s*=\s*(("|')[^"']*\2)""",
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
55 verfiledata,
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
56 re.MULTILINE).group(1))
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
57 if release_rev.startswith("|") or release_rev.endswith("|"):
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
58 # Assume that make export (hg kwarchive) is not called.
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
59 import subprocess
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
60 try:
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
61 release_rev = subprocess.check_output(
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
62 ["hg", "id", "-i"], stderr=subprocess.STDOUT)
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
63 except Exception:
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
64 release_rev = "<unknown>"
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
65 else:
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
66 if sys.version_info[0] >= 3:
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
67 release_rev = release_rev.decode("ascii")
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
68 release_rev = "dev:%s" % (release_rev.strip(),)
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
69 define_rest_keywords = True
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
70 else:
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
71 #
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
72 # Assume that all keywords are expanded properly everywhere:
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
73 # do not define special VCSxxx keyword below.
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
74 #
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
75 define_rest_keywords = False
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
76
51
b4c255f8bdc4 Also define "version" (identical to "release" yet)
Franz Glasner <fzglas.hg@dom66.de>
parents: 50
diff changeset
77 version = release
157
902147c24f9b Disable a default domain when generating the docs
Franz Glasner <fzglas.hg@dom66.de>
parents: 155
diff changeset
78 primary_domain = None
60
0ff291eac663 Minimal Sphinx configuration for the first tests
Franz Glasner <fzglas.hg@dom66.de>
parents: 51
diff changeset
79
45
6ac1ea5d2d4a Begin documentation: add the Sphinx generated configuration as-is
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
80 # -- General configuration ---------------------------------------------------
6ac1ea5d2d4a Begin documentation: add the Sphinx generated configuration as-is
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
81 # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
6ac1ea5d2d4a Begin documentation: add the Sphinx generated configuration as-is
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
82
60
0ff291eac663 Minimal Sphinx configuration for the first tests
Franz Glasner <fzglas.hg@dom66.de>
parents: 51
diff changeset
83 extensions = [
0ff291eac663 Minimal Sphinx configuration for the first tests
Franz Glasner <fzglas.hg@dom66.de>
parents: 51
diff changeset
84 "sphinx.ext.todo",
0ff291eac663 Minimal Sphinx configuration for the first tests
Franz Glasner <fzglas.hg@dom66.de>
parents: 51
diff changeset
85 ]
45
6ac1ea5d2d4a Begin documentation: add the Sphinx generated configuration as-is
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
86
6ac1ea5d2d4a Begin documentation: add the Sphinx generated configuration as-is
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
87 templates_path = ['_templates']
141
acd9073cbbe3 Make a lexerlist.rst that contains the table of the lexers because it is used at least twice
Franz Glasner <fzglas.hg@dom66.de>
parents: 139
diff changeset
88 exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store', 'lexerlist.rst']
45
6ac1ea5d2d4a Begin documentation: add the Sphinx generated configuration as-is
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
89
132
a3e765f1ad23 Explicitely set "highlight_languge" to "none" in the docs configuration.
Franz Glasner <fzglas.hg@dom66.de>
parents: 121
diff changeset
90 highlight_language = "none"
a3e765f1ad23 Explicitely set "highlight_languge" to "none" in the docs configuration.
Franz Glasner <fzglas.hg@dom66.de>
parents: 121
diff changeset
91
145
c4f6f5e771b0 Also define the :algpseudocode: role globally in the package documentation.
Franz Glasner <fzglas.hg@dom66.de>
parents: 144
diff changeset
92 rst_prolog = """
c4f6f5e771b0 Also define the :algpseudocode: role globally in the package documentation.
Franz Glasner <fzglas.hg@dom66.de>
parents: 144
diff changeset
93 .. role:: algpseudocode(code)
167
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
94 .. |release_date| replace:: %s
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
95 .. |release_rev| replace:: %s
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
96 """ % (release_date, release_rev)
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
97 if define_rest_keywords:
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
98 rst_prolog += """\
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
99 .. |VCSJustDate| replace:: %s
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
100 .. |VCSRevision| replace:: %s
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
101 """ % (release_date, release_rev)
144
b616f9645e37 More referencing with internal and external links
Franz Glasner <fzglas.hg@dom66.de>
parents: 143
diff changeset
102 rst_epilog = """
145
c4f6f5e771b0 Also define the :algpseudocode: role globally in the package documentation.
Franz Glasner <fzglas.hg@dom66.de>
parents: 144
diff changeset
103 .. _Pygments: https://pygments.org/
144
b616f9645e37 More referencing with internal and external links
Franz Glasner <fzglas.hg@dom66.de>
parents: 143
diff changeset
104 .. _Sphinx: https://www.sphinx-doc.org
145
c4f6f5e771b0 Also define the :algpseudocode: role globally in the package documentation.
Franz Glasner <fzglas.hg@dom66.de>
parents: 144
diff changeset
105 .. _Python: https://www.python.org/
150
4acf578ae93f Much more details in the documentation
Franz Glasner <fzglas.hg@dom66.de>
parents: 145
diff changeset
106 .. _Algpseudocodex: https://ctan.org/pkg/algpseudocodex
144
b616f9645e37 More referencing with internal and external links
Franz Glasner <fzglas.hg@dom66.de>
parents: 143
diff changeset
107 """
b616f9645e37 More referencing with internal and external links
Franz Glasner <fzglas.hg@dom66.de>
parents: 143
diff changeset
108
60
0ff291eac663 Minimal Sphinx configuration for the first tests
Franz Glasner <fzglas.hg@dom66.de>
parents: 51
diff changeset
109
0ff291eac663 Minimal Sphinx configuration for the first tests
Franz Glasner <fzglas.hg@dom66.de>
parents: 51
diff changeset
110 # --- Options for todo extension ---------------------------------------------
0ff291eac663 Minimal Sphinx configuration for the first tests
Franz Glasner <fzglas.hg@dom66.de>
parents: 51
diff changeset
111 todo_include_todos = True
45
6ac1ea5d2d4a Begin documentation: add the Sphinx generated configuration as-is
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
112
6ac1ea5d2d4a Begin documentation: add the Sphinx generated configuration as-is
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
113
6ac1ea5d2d4a Begin documentation: add the Sphinx generated configuration as-is
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
114 # -- Options for HTML output -------------------------------------------------
6ac1ea5d2d4a Begin documentation: add the Sphinx generated configuration as-is
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
115 # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
6ac1ea5d2d4a Begin documentation: add the Sphinx generated configuration as-is
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
116
139
d8ac51cba0ff Customize the HTML title for the haiku theme
Franz Glasner <fzglas.hg@dom66.de>
parents: 135
diff changeset
117 html_static_path = ['_static']
151
4a8c122725b0 Move all the example files to "examples/"
Franz Glasner <fzglas.hg@dom66.de>
parents: 150
diff changeset
118 html_extra_path = ['../LICENSES', './examples']
167
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
119 html_copy_source = False
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
120 html_show_sourcelink = False
139
d8ac51cba0ff Customize the HTML title for the haiku theme
Franz Glasner <fzglas.hg@dom66.de>
parents: 135
diff changeset
121
121
a3ed7d8231d7 Comment
Franz Glasner <fzglas.hg@dom66.de>
parents: 119
diff changeset
122 #html_theme = 'alabaster'
60
0ff291eac663 Minimal Sphinx configuration for the first tests
Franz Glasner <fzglas.hg@dom66.de>
parents: 51
diff changeset
123 html_theme = 'haiku'
170
f761694373e0 Do not justify the documentation output.
Franz Glasner <fzglas.hg@dom66.de>
parents: 167
diff changeset
124 html_css_files = ["custom-haiku.css"]
139
d8ac51cba0ff Customize the HTML title for the haiku theme
Franz Glasner <fzglas.hg@dom66.de>
parents: 135
diff changeset
125 html_title = 'The %s v%s' % (project, release)
d8ac51cba0ff Customize the HTML title for the haiku theme
Franz Glasner <fzglas.hg@dom66.de>
parents: 135
diff changeset
126 html_short_title = html_title
167
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
127 html_last_updated_fmt = "%s (rv:%s)" % (today, release_rev)
143
6da3b9dd4294 FIX: Do not use the default pygments style "sphinx"; was submitted erroneously
Franz Glasner <fzglas.hg@dom66.de>
parents: 141
diff changeset
128 #pygments_style = "sphinx"
6da3b9dd4294 FIX: Do not use the default pygments style "sphinx"; was submitted erroneously
Franz Glasner <fzglas.hg@dom66.de>
parents: 141
diff changeset
129 pygments_style = "default"
63
414bf3cbb152 Add a custom lexer to the Sphinx application dynamically with "no_end" set to True
Franz Glasner <fzglas.hg@dom66.de>
parents: 60
diff changeset
130
171
4b87a9ecffdd The first somewhat useable version of documentation in PDF.
Franz Glasner <fzglas.hg@dom66.de>
parents: 170
diff changeset
131 # --- Options for LaTeX output -----------------------------------------------
4b87a9ecffdd The first somewhat useable version of documentation in PDF.
Franz Glasner <fzglas.hg@dom66.de>
parents: 170
diff changeset
132 # https://www.sphinx-doc.org/en/master/latex.html
4b87a9ecffdd The first somewhat useable version of documentation in PDF.
Franz Glasner <fzglas.hg@dom66.de>
parents: 170
diff changeset
133 latex_engine = 'lualatex'
4b87a9ecffdd The first somewhat useable version of documentation in PDF.
Franz Glasner <fzglas.hg@dom66.de>
parents: 170
diff changeset
134 latex_elements = {
4b87a9ecffdd The first somewhat useable version of documentation in PDF.
Franz Glasner <fzglas.hg@dom66.de>
parents: 170
diff changeset
135 "papersize": "a4paper",
4b87a9ecffdd The first somewhat useable version of documentation in PDF.
Franz Glasner <fzglas.hg@dom66.de>
parents: 170
diff changeset
136 "babel": r"\usepackage{babel}",
176
34c6b714c8cd FIX: Do not use IBM Plex Mono but DejaVu Sans Mono because it has all needed symbols
Franz Glasner <fzglas.hg@dom66.de>
parents: 173
diff changeset
137 "fontpkg": r"""
34c6b714c8cd FIX: Do not use IBM Plex Mono but DejaVu Sans Mono because it has all needed symbols
Franz Glasner <fzglas.hg@dom66.de>
parents: 173
diff changeset
138 \usepackage[DefaultFeatures={Scale=0.92},mono=false]{plex-otf}
34c6b714c8cd FIX: Do not use IBM Plex Mono but DejaVu Sans Mono because it has all needed symbols
Franz Glasner <fzglas.hg@dom66.de>
parents: 173
diff changeset
139 \usepackage[mono=true,serif=false,sans=false,math=false]{dejavu-otf} % all symbols are available
34c6b714c8cd FIX: Do not use IBM Plex Mono but DejaVu Sans Mono because it has all needed symbols
Franz Glasner <fzglas.hg@dom66.de>
parents: 173
diff changeset
140 """,
171
4b87a9ecffdd The first somewhat useable version of documentation in PDF.
Franz Glasner <fzglas.hg@dom66.de>
parents: 170
diff changeset
141 "releasename": "Version",
4b87a9ecffdd The first somewhat useable version of documentation in PDF.
Franz Glasner <fzglas.hg@dom66.de>
parents: 170
diff changeset
142 }
4b87a9ecffdd The first somewhat useable version of documentation in PDF.
Franz Glasner <fzglas.hg@dom66.de>
parents: 170
diff changeset
143 latex_theme = "manual"
4b87a9ecffdd The first somewhat useable version of documentation in PDF.
Franz Glasner <fzglas.hg@dom66.de>
parents: 170
diff changeset
144 latex_show_urls = "footnote"
4b87a9ecffdd The first somewhat useable version of documentation in PDF.
Franz Glasner <fzglas.hg@dom66.de>
parents: 170
diff changeset
145 latex_show_pagerefs = True
4b87a9ecffdd The first somewhat useable version of documentation in PDF.
Franz Glasner <fzglas.hg@dom66.de>
parents: 170
diff changeset
146 latex_domain_indices = False
4b87a9ecffdd The first somewhat useable version of documentation in PDF.
Franz Glasner <fzglas.hg@dom66.de>
parents: 170
diff changeset
147 latex_documents = [
4b87a9ecffdd The first somewhat useable version of documentation in PDF.
Franz Glasner <fzglas.hg@dom66.de>
parents: 170
diff changeset
148 ("index-latex", "PygmentsPseudocodeLexer.tex", "The Pygments Pseudocode Lexer", "Franz Glasner", "manual", True),
4b87a9ecffdd The first somewhat useable version of documentation in PDF.
Franz Glasner <fzglas.hg@dom66.de>
parents: 170
diff changeset
149 ]
4b87a9ecffdd The first somewhat useable version of documentation in PDF.
Franz Glasner <fzglas.hg@dom66.de>
parents: 170
diff changeset
150
63
414bf3cbb152 Add a custom lexer to the Sphinx application dynamically with "no_end" set to True
Franz Glasner <fzglas.hg@dom66.de>
parents: 60
diff changeset
151
414bf3cbb152 Add a custom lexer to the Sphinx application dynamically with "no_end" set to True
Franz Glasner <fzglas.hg@dom66.de>
parents: 60
diff changeset
152 def setup(app):
68
93ade4c595b7 Reorg conf.py: import globally
Franz Glasner <fzglas.hg@dom66.de>
parents: 63
diff changeset
153 #
167
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
154 # Custom release_date and commit id variables with a custom substitution
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
155 # |release_date| and |release_rev|'.
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
156 #
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
157 app.add_config_value('release_date', '', 'env')
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
158 app.add_config_value('release_rev', '', 'env')
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
159
ddefcc20367c More static and/or dynamic metadata into README and project's init: release date, revision.
Franz Glasner <fzglas.hg@dom66.de>
parents: 166
diff changeset
160 #
63
414bf3cbb152 Add a custom lexer to the Sphinx application dynamically with "no_end" set to True
Franz Glasner <fzglas.hg@dom66.de>
parents: 60
diff changeset
161 # Add a custom lexer: AlgPseudocodeLexer with custom init option "no_end"
121
a3ed7d8231d7 Comment
Franz Glasner <fzglas.hg@dom66.de>
parents: 119
diff changeset
162 # Given lexer must be callable: so use an indirection with "partial".
a3ed7d8231d7 Comment
Franz Glasner <fzglas.hg@dom66.de>
parents: 119
diff changeset
163 #
a3ed7d8231d7 Comment
Franz Glasner <fzglas.hg@dom66.de>
parents: 119
diff changeset
164 # See also:
a3ed7d8231d7 Comment
Franz Glasner <fzglas.hg@dom66.de>
parents: 119
diff changeset
165 # - https://stackoverflow.com/questions/11413203/sphinx-pygments-lexer-filter-extension
68
93ade4c595b7 Reorg conf.py: import globally
Franz Glasner <fzglas.hg@dom66.de>
parents: 63
diff changeset
166 #
63
414bf3cbb152 Add a custom lexer to the Sphinx application dynamically with "no_end" set to True
Franz Glasner <fzglas.hg@dom66.de>
parents: 60
diff changeset
167 app.add_lexer("NoEndAlgPseudocode",
414bf3cbb152 Add a custom lexer to the Sphinx application dynamically with "no_end" set to True
Franz Glasner <fzglas.hg@dom66.de>
parents: 60
diff changeset
168 functools.partial(AlgPseudocodeLexer, no_end=True))
160
b4028838e0c8 Implement lexer option "prohibit_raiseonerror_filter".
Franz Glasner <fzglas.hg@dom66.de>
parents: 157
diff changeset
169 # For developing a lexer with smoother error handling
b4028838e0c8 Implement lexer option "prohibit_raiseonerror_filter".
Franz Glasner <fzglas.hg@dom66.de>
parents: 157
diff changeset
170 app.add_lexer("no-raiseonerror-algpseudocode",
b4028838e0c8 Implement lexer option "prohibit_raiseonerror_filter".
Franz Glasner <fzglas.hg@dom66.de>
parents: 157
diff changeset
171 functools.partial(AlgPseudocodeLexer,
b4028838e0c8 Implement lexer option "prohibit_raiseonerror_filter".
Franz Glasner <fzglas.hg@dom66.de>
parents: 157
diff changeset
172 prohibit_raiseonerror_filter=True))
166
6a7dace0141e Also implement filters to replace tokens in a token stream: TokenReplaceFilter and ErrorToGenericErrorTokenFilter
Franz Glasner <fzglas.hg@dom66.de>
parents: 164
diff changeset
173 #
6a7dace0141e Also implement filters to replace tokens in a token stream: TokenReplaceFilter and ErrorToGenericErrorTokenFilter
Franz Glasner <fzglas.hg@dom66.de>
parents: 164
diff changeset
174 # To test with the custom filter that maps
6a7dace0141e Also implement filters to replace tokens in a token stream: TokenReplaceFilter and ErrorToGenericErrorTokenFilter
Franz Glasner <fzglas.hg@dom66.de>
parents: 164
diff changeset
175 # Token.Error to Token.Generic.Error
6a7dace0141e Also implement filters to replace tokens in a token stream: TokenReplaceFilter and ErrorToGenericErrorTokenFilter
Franz Glasner <fzglas.hg@dom66.de>
parents: 164
diff changeset
176 #
6a7dace0141e Also implement filters to replace tokens in a token stream: TokenReplaceFilter and ErrorToGenericErrorTokenFilter
Franz Glasner <fzglas.hg@dom66.de>
parents: 164
diff changeset
177 app.add_lexer("genericerror-algpseudocode",
6a7dace0141e Also implement filters to replace tokens in a token stream: TokenReplaceFilter and ErrorToGenericErrorTokenFilter
Franz Glasner <fzglas.hg@dom66.de>
parents: 164
diff changeset
178 functools.partial(AlgPseudocodeLexer,
6a7dace0141e Also implement filters to replace tokens in a token stream: TokenReplaceFilter and ErrorToGenericErrorTokenFilter
Franz Glasner <fzglas.hg@dom66.de>
parents: 164
diff changeset
179 filters=["errortogenericerror"]))