Translate a subset of LaTeX into MoinMoin wiki syntax.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import sys, re
23
24 def dummy(d):
25 pass
26
27 NONE = "__@NONE@__"
28
29 tr_list = [
30 (r"\\includegraphics.*{(.*)\.eps}", "attachment::%s.png", dummy),
31 (r"\\caption{.*}", "", dummy),
32 (r"\\label{.*}", "", dummy),
33 (r"(.*)\\emph{(.*)}(.*)", """%s'''%s'''%s""", dummy),
34 (r"\\item (.*)", " * %s", dummy),
35 (r"\\begin{.*}", "", dummy),
36 (r"\\end{.*}", "", dummy),
37 (r"(.*)``(.*)''(.*)", "%s\"%s\"%s", dummy),
38 (r"\\chapter{(.*)}", NONE, dummy),
39 (r"\\paragraph{(.*)}", "==== %s ====", dummy),
40 (r"\\subsubsection{(.*)}", "==== %s ====", dummy),
41 (r"\\subsection{(.*)}", "=== %s ===", dummy),
42 (r"\\section{(.*)}", "== %s ==", dummy),
43 (r"(.*)\\fig{.*}(.*)", "%s suivant %s", dummy)
44 ]
45
46 in_stream = open(sys.argv[1], "r")
47 if len(sys.argv) < 3:
48 out_stream = sys.stdout
49 else:
50 out_stream = open(sys.argv[2], "w")
51
52
53 for i in in_stream.readlines():
54 cur_write = 0
55 for reg in tr_list:
56 m = re.search(reg[0], i)
57 if m:
58 reg[2](i)
59 cur_write = 1
60 if reg[1] == NONE:
61 break
62 print >> out_stream, reg[1] % m.groups()
63 break
64 if not cur_write:
65 out_stream.write(i)