Mercurial > hgrepos > Python > libs > pygments-lexer-pseudocode2
comparison docs/conf.py @ 185:b27557f6d393
Allow to build the documentation when the project is not installed
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Tue, 12 May 2026 19:43:48 +0200 |
| parents | e3523930294a |
| children | 95754197f5b3 |
comparison
equal
deleted
inserted
replaced
| 184:5113d7fbae9e | 185:b27557f6d393 |
|---|---|
| 9 import io | 9 import io |
| 10 import os | 10 import os |
| 11 import sys | 11 import sys |
| 12 import re | 12 import re |
| 13 | 13 |
| 14 import pygments.lexers | |
| 15 import pygments.filters | |
| 16 import sphinx.util.logging | |
| 17 | |
| 14 sys.path.insert(0, os.path.dirname(os.path.abspath('.'))) | 18 sys.path.insert(0, os.path.dirname(os.path.abspath('.'))) |
| 15 | 19 |
| 16 from pygments_lexer_pseudocode2.lexers.algpseudocode import AlgPseudocodeLexer | 20 from pygments_lexer_pseudocode2.lexers.algpseudocode import ( |
| 21 AlgPseudocodeLexer, AlgPseudocodeLexer_DE, AlgPseudocodeLexer_FR) | |
| 22 from pygments_lexer_pseudocode2.lexers.fr_pseudocode import FrPseudocodeLexer | |
| 23 from pygments_lexer_pseudocode2.filters import ( | |
| 24 TokenReplaceFilter, ErrorToGenericErrorTokenFilter) | |
| 17 | 25 |
| 18 | 26 |
| 19 needs_sphinx = '2.1' | 27 needs_sphinx = '2.1' |
| 20 """This is the theory: | 28 """This is the theory: |
| 21 | 29 |
| 178 # Token.Error to Token.Generic.Error | 186 # Token.Error to Token.Generic.Error |
| 179 # | 187 # |
| 180 app.add_lexer("genericerror-algpseudocode", | 188 app.add_lexer("genericerror-algpseudocode", |
| 181 functools.partial(AlgPseudocodeLexer, | 189 functools.partial(AlgPseudocodeLexer, |
| 182 filters=["errortogenericerror"])) | 190 filters=["errortogenericerror"])) |
| 191 | |
| 192 # | |
| 193 # Prepare for building docs while the package is not installed: | |
| 194 # Install by "hand" into pygments! | |
| 195 # This is an ugly *HACK*! | |
| 196 # | |
| 197 # IMPORTANT: Synchronize names with pyproject.toml! | |
| 198 # | |
| 199 try: | |
| 200 if not pygments.lexers.find_lexer_class("AlgPseudocode"): | |
| 201 sphinx.util.logging.getLogger("conf-setup").info( | |
| 202 "%s","Installing lexer `AlgPseudocode' and language variants") | |
| 203 for clsname, lexer in ( | |
| 204 ("AlgPseudocodeLexer", AlgPseudocodeLexer), | |
| 205 ("AlgPseudocodeLexer_DE", AlgPseudocodeLexer_DE), | |
| 206 ("AlgPseudocodeLexer_FR", AlgPseudocodeLexer_FR)): | |
| 207 pygments.lexers.LEXERS[clsname] = ( | |
| 208 "pygments_lexer_pseudocode2.lexers.algpseudocode", | |
| 209 lexer.name, | |
| 210 tuple(lexer.aliases), | |
| 211 tuple(lexer.filenames), | |
| 212 tuple(lexer.mimetypes)) | |
| 213 if not pygments.lexers.find_lexer_class("FrPseudocode"): | |
| 214 sphinx.util.logging.getLogger("conf-setup").info( | |
| 215 "%s","Installing lexer `FrPseudocode'") | |
| 216 for clsname, lexer in ( | |
| 217 ("FrPseudocodeLexer", FrPseudocodeLexer),): | |
| 218 pygments.lexers.LEXERS[clsname] = ( | |
| 219 "pygments_lexer_pseudocode2.lexers.fr_pseudocode", | |
| 220 lexer.name, | |
| 221 tuple(lexer.aliases), | |
| 222 tuple(lexer.filenames), | |
| 223 tuple(lexer.mimetypes)) | |
| 224 if not pygments.filters.find_filter_class("tokenreplace"): | |
| 225 sphinx.util.logging.getLogger("conf-setup").info( | |
| 226 "%s","Installing filter `tokenreplace'") | |
| 227 pygments.filters.FILTERS["tokenreplace"] = TokenReplaceFilter | |
| 228 if not pygments.filters.find_filter_class("errortogenericerror"): | |
| 229 sphinx.util.logging.getLogger("conf-setup").info( | |
| 230 "%s","Installing filter `errortogenericerror'") | |
| 231 pygments.filters.FILTERS["errortogenericerror"] = \ | |
| 232 ErrorToGenericErrorTokenFilter | |
| 233 except Exception as ex: | |
| 234 sphinx.util.logging.getLogger("conf-setup").error("%s", str(ex)) | |
| 235 sphinx.util.logging.getLogger("conf-setup").error( | |
| 236 "%s", | |
| 237 "No lexers/filters from pygments_lexer_pseudocode2 available;" | |
| 238 " please install or call `pip install -e .' .") |
