summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/test_html.py8
-rw-r--r--tests/test_texi.py6
-rw-r--r--tests/test_text.py8
-rw-r--r--tests/wikitest.py (renamed from tests/WikiTest.py)6
-rw-r--r--wikitrans/__init__.py (renamed from WikiTrans/__init__.py)0
-rw-r--r--wikitrans/wiki2html.py (renamed from WikiTrans/wiki2html.py)115
-rw-r--r--wikitrans/wiki2texi.py (renamed from WikiTrans/wiki2texi.py)63
-rw-r--r--wikitrans/wiki2text.py (renamed from WikiTrans/wiki2text.py)74
-rw-r--r--wikitrans/wikidump.py (renamed from WikiTrans/wikidump.py)41
-rw-r--r--wikitrans/wikimarkup.py (renamed from WikiTrans/wikimarkup.py)784
-rw-r--r--wikitrans/wikins.py (renamed from WikiTrans/wikins.py)0
-rw-r--r--wikitrans/wikitoken.py (renamed from WikiTrans/wikitoken.py)154
12 files changed, 802 insertions, 457 deletions
diff --git a/tests/test_html.py b/tests/test_html.py
index 3da57f6..5a15cb8 100644
--- a/tests/test_html.py
+++ b/tests/test_html.py
@@ -1,14 +1,14 @@
1#!/usr/bin/python 1#!/usr/bin/python
2# -*- coding: utf-8 -*- 2# -*- coding: utf-8 -*-
3from __future__ import print_function 3from __future__ import print_function
4import unittest 4import unittest
5from WikiTrans.wiki2html import HtmlWiktionaryMarkup 5from wikitrans.wiki2html import HtmlWikiMarkup
6from WikiTest import populateMethods 6from wikitest import populate_methods
7 7
8class TestWiktionaryMarkup (unittest.TestCase): 8class TestWikiMarkup (unittest.TestCase):
9 pass 9 pass
10 10
11populateMethods(TestWiktionaryMarkup, HtmlWiktionaryMarkup, '.html') 11populate_methods(TestWikiMarkup, HtmlWikiMarkup, '.html')
12 12
13if __name__ == '__main__': 13if __name__ == '__main__':
14 unittest.main() 14 unittest.main()
diff --git a/tests/test_texi.py b/tests/test_texi.py
index 75314c9..ddd26c7 100644
--- a/tests/test_texi.py
+++ b/tests/test_texi.py
@@ -1,14 +1,14 @@
1#!/usr/bin/python 1#!/usr/bin/python
2# -*- coding: utf-8 -*- 2# -*- coding: utf-8 -*-
3from __future__ import print_function 3from __future__ import print_function
4import unittest 4import unittest
5from WikiTrans.wiki2texi import TexiWikiMarkup 5from wikitrans.wiki2texi import TexiWikiMarkup
6from WikiTest import populateMethods 6from wikitest import populate_methods
7 7
8class TestTexiWikiMarkup (unittest.TestCase): 8class TestTexiWikiMarkup (unittest.TestCase):
9 pass 9 pass
10 10
11populateMethods(TestTexiWikiMarkup, TexiWikiMarkup, '.texi') 11populate_methods(TestTexiWikiMarkup, TexiWikiMarkup, '.texi')
12 12
13if __name__ == '__main__': 13if __name__ == '__main__':
14 unittest.main() 14 unittest.main()
diff --git a/tests/test_text.py b/tests/test_text.py
index a06f519..b3d0a12 100644
--- a/tests/test_text.py
+++ b/tests/test_text.py
@@ -1,14 +1,14 @@
1#!/usr/bin/python 1#!/usr/bin/python
2# -*- coding: utf-8 -*- 2# -*- coding: utf-8 -*-
3from __future__ import print_function 3from __future__ import print_function
4import unittest 4import unittest
5from WikiTrans.wiki2text import TextWiktionaryMarkup 5from wikitrans.wiki2text import TextWikiMarkup
6from WikiTest import populateMethods 6from wikitest import populate_methods
7 7
8class TestTextWiktionaryMarkup (unittest.TestCase): 8class TestTextWikiMarkup (unittest.TestCase):
9 pass 9 pass
10 10
11populateMethods(TestTextWiktionaryMarkup, TextWiktionaryMarkup, '.text') 11populate_methods(TestTextWikiMarkup, TextWikiMarkup, '.text')
12 12
13if __name__ == '__main__': 13if __name__ == '__main__':
14 unittest.main() 14 unittest.main()
diff --git a/tests/WikiTest.py b/tests/wikitest.py
index 1429f5e..ff26227 100644
--- a/tests/WikiTest.py
+++ b/tests/wikitest.py
@@ -1,13 +1,13 @@
1#!/usr/bin/python 1#!/usr/bin/python
2# -*- coding: utf-8 -*- 2# -*- coding: utf-8 -*-
3from __future__ import print_function 3from __future__ import print_function
4from glob import glob 4from glob import glob
5import os.path 5import os.path
6 6
7def MarkupTest(classname, name_in, name_out): 7def wiki_markup_test(classname, name_in, name_out):
8 fh = open(name_out) 8 fh = open(name_out)
9 buf = ''.join(fh.readlines()).strip() 9 buf = ''.join(fh.readlines()).strip()
10 fh.close() 10 fh.close()
11 hwm = classname(filename=name_in, lang="en") 11 hwm = classname(filename=name_in, lang="en")
12 hwm.parse() 12 hwm.parse()
13 13
@@ -16,16 +16,16 @@ def MarkupTest(classname, name_in, name_out):
16 16
17 # fail 17 # fail
18 print("\n>>>%s<<<" % buf) 18 print("\n>>>%s<<<" % buf)
19 print(">>>%s<<<" % str(hwm).strip()) 19 print(">>>%s<<<" % str(hwm).strip())
20 return False 20 return False
21 21
22def populateMethods(cls, wcls, suffix): 22def populate_methods(cls, wcls, suffix):
23 def settest(self, base, wiki_name, pat_name): 23 def settest(self, base, wiki_name, pat_name):
24 def dyntest(self): 24 def dyntest(self):
25 self.assertTrue(MarkupTest(wcls, wiki_name, pat_name)) 25 self.assertTrue(wiki_markup_test(wcls, wiki_name, pat_name))
26 meth = 'test_' + wcls.__name__ + '_' + base 26 meth = 'test_' + wcls.__name__ + '_' + base
27 dyntest.__name__ = meth 27 dyntest.__name__ = meth
28 setattr(cls, meth, dyntest) 28 setattr(cls, meth, dyntest)
29 for file in glob('testdata/*.wiki'): 29 for file in glob('testdata/*.wiki'):
30 if os.path.isfile(file): 30 if os.path.isfile(file):
31 patfile = file[:len(file) - 5] + suffix 31 patfile = file[:len(file) - 5] + suffix
diff --git a/WikiTrans/__init__.py b/wikitrans/__init__.py
index 5832e38..5832e38 100644
--- a/WikiTrans/__init__.py
+++ b/wikitrans/__init__.py
diff --git a/WikiTrans/wiki2html.py b/wikitrans/wiki2html.py
index 6147642..ce65bae 100644
--- a/WikiTrans/wiki2html.py
+++ b/wikitrans/wiki2html.py
@@ -12,16 +12,27 @@
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13# GNU General Public License for more details. 13# GNU General Public License for more details.
14# 14#
15# You should have received a copy of the GNU General Public License 15# You should have received a copy of the GNU General Public License
16# along with this program. If not, see <http://www.gnu.org/licenses/>. 16# along with this program. If not, see <http://www.gnu.org/licenses/>.
17 17
18"""
19Wiki markup to HTML translator.
20
21Classes:
22
23HtmlWikiMarkup -- Converts Wiki material to HTML.
24HtmlWiktionaryMarkup -- Reserved for future use. Currently does the same as
25 HtmlWikiMarkup.
26
27"""
28
18from __future__ import print_function 29from __future__ import print_function
19from WikiTrans.wikimarkup import * 30from wikitrans.wikimarkup import *
20from WikiTrans.wikitoken import * 31from wikitrans.wikitoken import *
21from WikiTrans.wikins import wiki_ns_re, wiki_ns 32from wikitrans.wikins import wiki_ns_re, wiki_ns
22import re 33import re
23try: 34try:
24 from urllib import quote as url_quote 35 from urllib import quote as url_quote
25except ImportError: 36except ImportError:
26 from urllib.parse import quote as url_quote 37 from urllib.parse import quote as url_quote
27 38
@@ -76,22 +87,22 @@ class HtmlLinkNode(HtmlSeqNode):
76 text = self.parser.langtab[qual] 87 text = self.parser.langtab[qual]
77 else: 88 else:
78 tgt = self.parser.mktgt(tgt) 89 tgt = self.parser.mktgt(tgt)
79 else: 90 else:
80 tgt = self.parser.mktgt(arg) 91 tgt = self.parser.mktgt(arg)
81 return "<a href=\"%s\">%s</a>" % (tgt, 92 return "<a href=\"%s\">%s</a>" % (tgt,
82 text if (text and text != '') \ 93 text if (text and text != '') else arg)
83 else arg)
84 94
85class HtmlRefNode(WikiRefNode): 95class HtmlRefNode(WikiRefNode):
86 def format(self): 96 def format(self):
87 target = self.ref 97 target = self.ref
88 text = self.content.format() 98 text = self.content.format()
89 return "<a href=\"%s\">%s</a>" % (target, 99 return "<a href=\"%s\">%s</a>" % (
90 text if (text and text != '') \ 100 target,
91 else target) 101 text if (text and text != '') else target
102 )
92 103
93class HtmlFontNode(HtmlSeqNode): 104class HtmlFontNode(HtmlSeqNode):
94 def format(self): 105 def format(self):
95 comm = { 'IT': 'i', 106 comm = { 'IT': 'i',
96 'BOLD': 'b' } 107 'BOLD': 'b' }
97 s = '<%s>' % comm[self.type] 108 s = '<%s>' % comm[self.type]
@@ -149,20 +160,20 @@ class HtmlTagNode(WikiTagNode):
149 elif self.tag == 'references': 160 elif self.tag == 'references':
150 s = '<div class="references">\n' 161 s = '<div class="references">\n'
151 s += '<ol class="references">\n' 162 s += '<ol class="references">\n'
152 n = 0 163 n = 0
153 for ref in self.parser.references: 164 for ref in self.parser.references:
154 n += 1 165 n += 1
155 s += ('<li id="cite_note-%d">' + \ 166 s += ('<li id="cite_note-%d">'
156 '<span class="mw-cite-backlink">' + \ 167 + '<span class="mw-cite-backlink">'
157 '<b><a href="#cite_ref-%d">^</a></b>' + \ 168 + '<b><a href="#cite_ref-%d">^</a></b>'
158 '</span>' + \ 169 + '</span>'
159 '<span class="reference-text">' + \ 170 + '<span class="reference-text">'
160 ref.content.format() + \ 171 + ref.content.format()