1# This file is part of python-markups module 2# License: 3-clause BSD, see LICENSE file 3# Copyright: (C) Dmitry Shachnev, 2012-2021 4 5import os.path 6from typing import Optional, Tuple 7 8# Some common constants and functions 9(LANGUAGE_HOME_PAGE, MODULE_HOME_PAGE, SYNTAX_DOCUMENTATION) = range(3) 10CONFIGURATION_DIR = (os.getenv('XDG_CONFIG_HOME') or os.getenv('APPDATA') or 11 os.path.expanduser('~/.config')) 12MATHJAX2_LOCAL_URLS = ( 13 'file:///usr/share/javascript/mathjax/MathJax.js', # Debian libjs-mathjax 14 'file:///usr/share/mathjax2/MathJax.js', # Arch Linux mathjax2 15) 16MATHJAX3_LOCAL_URLS = ( 17 'file:///usr/share/mathjax/tex-chtml.js', # Arch Linux mathjax 18) 19MATHJAX_WEB_URL = 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js' 20 21PYGMENTS_STYLE = 'default' 22 23def get_pygments_stylesheet(selector: Optional[str], style: Optional[str] = None) -> str: 24 if style is None: 25 style = PYGMENTS_STYLE 26 if style == '': 27 return '' 28 try: 29 from pygments.formatters import HtmlFormatter 30 except ImportError: 31 return '' 32 else: 33 return HtmlFormatter(style=style).get_style_defs(selector) + '\n' 34 35def get_mathjax_url_and_version(webenv: bool) -> Tuple[str, int]: 36 if not webenv: 37 for url in MATHJAX3_LOCAL_URLS: 38 if os.path.exists(url[7:]): # strip file:// 39 return url, 3 40 for url in MATHJAX2_LOCAL_URLS: 41 if os.path.exists(url[7:]): 42 return url, 2 43 return MATHJAX_WEB_URL, 3 44