summaryrefslogtreecommitdiff
path: root/pypers/wsgi/rst2s5_math.py
blob: 3554824e93005262812aa190e683538013ee0b83 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import os, re, subprocess

LATEX_EXPR = re.compile(r'\$.*\$')

def indent(text):
    return '\n  ' + '\n  '.join(text.splitlines())

def latex2mathml(latex):    
    itex2MML = subprocess.Popen(
        ['./itex2MML'], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
    out, err = itex2MML.communicate(latex)
    assert not err, err
    return '\n.. raw:: html\n%s  ' % indent(out)

def rst2s5(rst):
    converter = subprocess.Popen(
        ['rst2s5'], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
    out, err = converter.communicate(rst)
    assert not err, err
    return out

def convertfile(fname):    
    rst = LATEX_EXPR.sub(
        lambda m: latex2mathml(m.group()), file('%s.txt' % fname).read())
    print >> file('%s.html' % fname, 'w'), rst2s5(rst),

if __name__ == '__main__':
    convertfile('formulas')