Inital commit
This commit is contained in:
48
renderMD.py
Normal file
48
renderMD.py
Normal file
@@ -0,0 +1,48 @@
|
||||
import html
|
||||
from misaka import Markdown, HtmlRenderer
|
||||
import latex2mathml.converter
|
||||
import re
|
||||
|
||||
def renderLatex(code):
|
||||
code = code.strip()
|
||||
code = code.replace("=>", "\\Rightarrow")
|
||||
code = code.replace("->", "\\rightarrow")
|
||||
code = code.replace("*", "\\cdot")
|
||||
|
||||
a = re.search(r"{[^{}]*} */ *{[^{}]*}", code)
|
||||
while a is not None:
|
||||
print(a)
|
||||
print(code[a.span()[0] : a.span()[1]])
|
||||
newcode = code[:a.span()[0]]
|
||||
newcode += "\\frac"
|
||||
newcode += re.sub(r'}[ ]*/[ ]*{', '}{', code[a.span()[0] : a.span()[1]])
|
||||
newcode += code[a.span()[1]:]
|
||||
code = newcode
|
||||
print(code)
|
||||
a = re.search(r"{[^{}}]*} */ *{[^{}}]*}", code)
|
||||
|
||||
return latex2mathml.converter.convert(code)
|
||||
|
||||
class HighlighterRenderer(HtmlRenderer):
|
||||
def codespan(self, code):
|
||||
lang = code.split(' ')[0]
|
||||
if(lang == 'tex'):
|
||||
return '{}\n'.format(renderLatex(' '.join(code.split(' ')[1:]).strip()))
|
||||
return '<code>{}</code>\n'.format(code.strip())
|
||||
def blockcode(self, code, lang):
|
||||
if(lang == 'latex/equetion'):
|
||||
return '<p data-latex="{}">{}</p>\n'.format(code.strip(), renderLatex(code))
|
||||
return '<pre><code class="{}">{}</code></pre>\n'.format(lang.replace('/', '-'), code)
|
||||
|
||||
renderer = HighlighterRenderer()
|
||||
md = Markdown(renderer, extensions=('fenced-code','tables'))
|
||||
|
||||
# print(md(markdown_example))
|
||||
|
||||
def renderMD(src):
|
||||
srcFile = open(src, 'r')
|
||||
html = md(srcFile.read())
|
||||
srcFile.close()
|
||||
return html
|
||||
|
||||
# print(renderMD('../notes/HR/DIS10/week-2.md'))
|
||||
Reference in New Issue
Block a user