Beispiel #1
0
    def format_docchunk(self, chunk):
        if chunk.has_key("number") and chunk['number'] == 1:
            chunk = self.parsetitle(chunk)

        try:
            from markdown import markdown
        except:
            try:
                from markdown2 import markdown
            except:
                raise

        #Use Mathjax if it is available
        try:
            import markdown2Mathjax as MJ
            tmp = MJ.sanitizeInput(chunk['content'])
            markedDownText = markdown(tmp[0])
            finalOutput = MJ.reconstructMath(markedDownText,
                                             tmp[1],
                                             inline_delims=["\\(", "\\)"])
            chunk['content'] = finalOutput
        except:
            sys.stderr.write(
                "WARNING: Can't import markdown2Mathjax, expect problems with math formatting.\n"
            )
            chunk['content'] = markdown(chunk['content'])
        return (chunk['content'])
Beispiel #2
0
def markjax(text):
    tmp = sanitizeInput(text, inline_delims=inline_delims)
    mkd_text = markdown(tmp[0],
                        extras=[
                            'code-friendly', 'fenced-code-blocks', 'footnotes',
                            'metadata', 'smarty-pants', 'tables'
                        ])
    output = reconstructMath(mkd_text, tmp[1], inline_delims)
    return output
Beispiel #3
0
def sanitize_math_input(s):
    from markdown2Mathjax import sanitizeInput
    # it's critical that $$ be first!
    delims = [('$$','$$'), ('\\(','\\)'), ('\\[','\\]'),
              ('\\begin{equation}', '\\end{equation}'), ('\\begin{equation*}', '\\end{equation*}'),
              ('\\begin{align}', '\\end{align}'), ('\\begin{align*}', '\\end{align*}'),
              ('\\begin{eqnarray}', '\\end{eqnarray}'), ('\\begin{eqnarray*}', '\\end{eqnarray*}'),
              ('\\begin{math}', '\\end{math}'),
              ('\\begin{displaymath}', '\\end{displaymath}')
              ]

    tmp = [((s,None),None)]
    for d in delims:
        tmp.append((sanitizeInput(tmp[-1][0][0], equation_delims=d), d))

    return tmp
Beispiel #4
0
def sanitize_math_input(s):
    from markdown2Mathjax import sanitizeInput
    # it's critical that $$ be first!
    delims = [('$$','$$'), ('\\(','\\)'), ('\\[','\\]'),
              ('\\begin{equation}', '\\end{equation}'), ('\\begin{equation*}', '\\end{equation*}'),
              ('\\begin{align}', '\\end{align}'), ('\\begin{align*}', '\\end{align*}'),
              ('\\begin{eqnarray}', '\\end{eqnarray}'), ('\\begin{eqnarray*}', '\\end{eqnarray*}'),
              ('\\begin{math}', '\\end{math}'),
              ('\\begin{displaymath}', '\\end{displaymath}')
              ]

    tmp = [((s,None),None)]
    for d in delims:
        tmp.append((sanitizeInput(tmp[-1][0][0], equation_delims=d), d))

    return tmp
Beispiel #5
0
def custom_markdown(value):

    # thanks to https://github.com/constantAmateur/markdown2Mathjax
    extras = ["fenced-code-blocks", "spoiler"]
    tmp = sanitizeInput(value)
    markedDownText = markdown2.markdown(force_unicode(tmp[0]), extras = extras)
    finalOutput = reconstructMath(markedDownText,tmp[1])
    return mark_safe(finalOutput)

#old working code, save for now.
#@register.filter(is_safe=True)
#@stringfilter
#def custom_markdown(value):
#    extras = ["fenced-code-blocks"]
#
#    return mark_safe(markdown2.markdown(force_unicode(value),
#                                      extras = extras))
Beispiel #6
0
def custom_markdown(value):

    # thanks to https://github.com/constantAmateur/markdown2Mathjax
    extras = ["fenced-code-blocks", "spoiler"]
    tmp = sanitizeInput(value)
    markedDownText = markdown2.markdown(force_unicode(tmp[0]), extras=extras)
    finalOutput = reconstructMath(markedDownText, tmp[1])
    return mark_safe(finalOutput)


#old working code, save for now.
#@register.filter(is_safe=True)
#@stringfilter
#def custom_markdown(value):
#    extras = ["fenced-code-blocks"]
#
#    return mark_safe(markdown2.markdown(force_unicode(value),
#                                      extras = extras))
Beispiel #7
0
    def format_docchunk(self, chunk):
        if chunk.has_key("number") and chunk['number'] == 1:
            chunk = self.parsetitle(chunk)

        try:
            from markdown import markdown
        except:
            try:
                from markdown2 import markdown
            except:
                raise
        
        #Use Mathjax if it is available
        try:
            import markdown2Mathjax as MJ
            tmp = MJ.sanitizeInput(chunk['content'])
            markedDownText = markdown(tmp[0])
            finalOutput = MJ.reconstructMath(markedDownText,tmp[1], inline_delims=["\\(","\\)"])
            chunk['content'] = finalOutput
        except:
            sys.stderr.write("WARNING: Can't import markdown2Mathjax, expect problems with math formatting.\n")
            chunk['content'] = markdown(chunk['content'])
        return(chunk['content'])
Beispiel #8
0
def sanitize_math_input(s):
    from markdown2Mathjax import sanitizeInput

    # it's critical that $$ be first!
    delims = [
        ("$$", "$$"),
        ("\\(", "\\)"),
        ("\\[", "\\]"),
        ("\\begin{equation}", "\\end{equation}"),
        ("\\begin{equation*}", "\\end{equation*}"),
        ("\\begin{align}", "\\end{align}"),
        ("\\begin{align*}", "\\end{align*}"),
        ("\\begin{eqnarray}", "\\end{eqnarray}"),
        ("\\begin{eqnarray*}", "\\end{eqnarray*}"),
        ("\\begin{math}", "\\end{math}"),
        ("\\begin{displaymath}", "\\end{displaymath}"),
    ]

    tmp = [((s, None), None)]
    for d in delims:
        tmp.append((sanitizeInput(tmp[-1][0][0], equation_delims=d), d))

    return tmp
Beispiel #9
0
import sys

from markdown2Mathjax import sanitizeInput, reconstructMath
from markdown2 import markdown

if (len(sys.argv)==1):
  print('no input specified')
  raise SystemExit

infile = sys.argv[1]

with open(infile, 'r') as f:
    mdfile = f.read()

tmp = sanitizeInput(mdfile)
mdtext = markdown(tmp[0])
finalOutput = reconstructMath(mdtext,tmp[1])

print finalOutput.encode('utf8')