PythonMarkdown extension to escape math expressions like $2\pi$
Project description
markdown_math_escape
PythonMarkdown extension to escape math
expressions like $e^{i\pi} + 1 = 0$
.
Description
The benefits of using this extension are:
 No special escaping syntax is needed
 You can write
\left\{
, not\left\\{
.
 You can write
 On writing, you are free to choose any delimiter style as you like
 It's fast
 This extension does not render mathematics
On the other hand:
 You need to setup either MathJax or KaTeX for clientside rendering
 If you are using Nikola, you can use it's builtin feature to enable them
 Otherwise, somehow you need to load and execute one of them (using a theme which supports them, for example)
Technically, this extension firstly protects math expressions from PythonMarkdown and its other extensions so that no unexpected (unhappy) change will happen. Then it converts their delimiters (enclosing special characters) to "brackets" styled delimiters... which is supported by default configuration of MathJax and KaTeX.
Installation
Firstly, install the extension by the command below:
pip install markdown_math_escape
Secondly, you need to let PythonMarkdown to use it. How to do it depends on how you are using PythonMarkdown. Please see examples for an example which matches your usage.
Options
The only available option is "delimiters
" which specifies the type of
delimiters enclosing mathematics in your markdown files.
See the table below for supported values.
delimiters 
Inline (nondisplay mode)  Display mode math 

dollers 
$e^{i\pi} + 1 = 0$ 
$$ e^{i\pi} + 1 = 0 $$ 
brackets 
\(e^{i\pi} + 1 = 0\) 
\[ e^{i\pi} + 1 = 0 \] 
gitlab 
$`e^{i\pi} + 1 = 0`$ 
```math e^{i\pi} + 1 = 0 ``` 
Examples
Python script
If you are using PythonMarkdown directly in your Python script (or library), just do so in the standard way. For example:
import markdown as md
from markdown_math_escape import MathEscapeExtension
md.markdown(
some_text,
extensions=[
"markdown.extensions.codehilite",
"markdown.extensions.extra",
MathEscapeExtension(delimiters="dollers"),
],
)
Please refer to the PythonMarkdown's document for more details.
Pelican
If you are using PythonMarkdown as part of
Pelican,
you can use extension name markdown_math_escape
. For example:
# pelicanconf.py
MARKDOWN = {
'extension_configs': {
# ...other extensions...
"markdown_math_escape": {"delimiters": "dollers"},
}
}
Please refer to the Pelican's document for more details.
Nikola
If you are using PythonMarkdown as part of
Nikola,
you can use extension name markdown_math_escape
. For example:
# conf.py
MARKDOWN_EXTENSIONS = [
# ...other extensions...
'markdown_math_escape',
]
MARKDOWN_EXTENSION_CONFIGS = {
DEFAULT_LANG: {
"markdown_math_escape": {"delimiters": "dollers"},
},
}
Note that this extension is compatible with Nikola's builtin option to enable
MathJax or KaTeX. Just set
has_math
metadata field in your post to true
and select MathJax or KaTeX by
specifying USE_KATEX
value in conf.py
.
Project details
Release history Release notifications  RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for markdown_math_escape0.20.12.17.tar.gz
Algorithm  Hash digest  

SHA256  c83b126e8c7cacd08afc74b14003ba57127bec5fe026909b896ade571a87f1a5 

MD5  aed1dd77a86693fa581410af7074a9a5 

BLAKE2256  023be5f68c2f550ea8e0ea5385ffdc0f314fd5d4578159075744e9fc138af13d 
Hashes for markdown_math_escape0.20.12.17py3noneany.whl
Algorithm  Hash digest  

SHA256  7878b9461bc792860912f9c7970a51230863164c340e44d8afeddb5b044adbfb 

MD5  d9a03aa8498defb9cef78452ed771a5a 

BLAKE2256  8a6938abf7223929d0fb3f33969e61787bafe4f89ce094aabed25f135097a553 