summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@Pirx.gnu.org.ua>2008-11-26 08:06:06 +0200
committerSergey Poznyakoff <gray@Pirx.gnu.org.ua>2008-11-26 08:06:06 +0200
commit5dc93e466efaaa243e6490961b6e545eaa65f06c (patch)
tree844b75613cabb2c0394828492038546c1f9806d8
downloadwikitrans-5dc93e466efaaa243e6490961b6e545eaa65f06c.tar.gz
wikitrans-5dc93e466efaaa243e6490961b6e545eaa65f06c.tar.bz2
Initial commit
-rw-r--r--__init__.py18
-rw-r--r--test.py69
-rw-r--r--testdata/colon.html9
-rw-r--r--testdata/colon.wiki8
-rw-r--r--testdata/dom.wiki137
-rw-r--r--testdata/door.html200
-rw-r--r--testdata/door.wiki217
-rw-r--r--testdata/drzwi.html44
-rw-r--r--testdata/drzwi.wiki45
-rw-r--r--testdata/headings.html15
-rw-r--r--testdata/headings.wiki17
-rw-r--r--testdata/hz.html6
-rw-r--r--testdata/hz.wiki6
-rw-r--r--testdata/numlist.html7
-rw-r--r--testdata/numlist.wiki6
-rw-r--r--testdata/unlist.html10
-rw-r--r--testdata/unlist.wiki9
-rw-r--r--wiki2html.py503
-rw-r--r--wiki2plain.py452
-rw-r--r--wikicvt.py52
-rw-r--r--wikimarkup.py362
21 files changed, 2192 insertions, 0 deletions
diff --git a/__init__.py b/__init__.py
new file mode 100644
index 0000000..f887a4c
--- /dev/null
+++ b/__init__.py
@@ -0,0 +1,18 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+# Copyright (C) 2008 Sergey Poznyakoff
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+__all__ = [ "wiki2html", "wiki2plain" ]
diff --git a/test.py b/test.py
new file mode 100644
index 0000000..22e5393
--- /dev/null
+++ b/test.py
@@ -0,0 +1,69 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+# Copyright (C) 2008 Sergey Poznyakoff
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+import unittest
+import wiki2html
+
+class TestMarkupParserBasic (unittest.TestCase):
+
+ def test_colon(self):
+ self.assert_(self.__test('colon'))
+ pass
+
+ def test_headings(self):
+ self.assert_(self.__test('headings'))
+ pass
+
+ def test_hz(self):
+ self.assert_(self.__test('hz'))
+ pass
+
+ def test_numlist(self):
+ self.assert_(self.__test('numlist'))
+ pass
+
+ def test_unlist(self):
+ self.assert_(self.__test('unlist'))
+ pass
+
+ def test_door(self):
+ self.assert_(self.__test('door'))
+ pass
+
+ def test_drzwi(self):
+ self.assert_(self.__test('drzwi'))
+ pass
+
+ def __test(self, filename):
+ name_in = 'testdata/' + filename + '.wiki'
+ name_out = 'testdata/' + filename + '.html'
+ fh = open(name_out)
+ buf = ''.join(fh.readlines()).strip()
+ hwm = wiki2html.HtmlWiktionaryMarkup(filename=name_in, lang="pl")
+ hwm.parse()
+
+ if str(hwm).strip() == buf:
+ return True
+
+ # fail
+ print "\n>>>%s<<<" % buf
+ print ">>>%s<<<" % str(hwm).strip()
+ return False
+
+if __name__ == '__main__':
+ unittest.main()
+
diff --git a/testdata/colon.html b/testdata/colon.html
new file mode 100644
index 0000000..9721b93
--- /dev/null
+++ b/testdata/colon.html
@@ -0,0 +1,9 @@
+<dl><dd> A colon (:) indents a line or paragraph.
+</dd></dl>A newline starts a new paragraph.
+Should only be used on talk pages.
+For articles, you probably want the blockquote tag.
+<dl><dd> We use 1 colon to indent once.
+</dd><dl><dd> We use 2 colons to indent twice.
+</dd><dl><dd> 3 colons to indent 3 times, and so on.
+</dd></dl></dl></dl>
+
diff --git a/testdata/colon.wiki b/testdata/colon.wiki
new file mode 100644
index 0000000..2a00eee
--- /dev/null
+++ b/testdata/colon.wiki
@@ -0,0 +1,8 @@
+: A colon (:) indents a line or paragraph.
+A newline starts a new paragraph.
+Should only be used on talk pages.
+For articles, you probably want the blockquote tag.
+: We use 1 colon to indent once.
+:: We use 2 colons to indent twice.
+::: 3 colons to indent 3 times, and so on.
+
diff --git a/testdata/dom.wiki b/testdata/dom.wiki
new file mode 100644
index 0000000..30803c6
--- /dev/null
+++ b/testdata/dom.wiki
@@ -0,0 +1,137 @@
+[[cs:dom]] [[de:dom]] [[el:dom]] [[en:dom]] [[es:dom]] [[fr:dom]] [[ko:dom]] [[hr:dom]] [[io:dom]] [[id:dom]] [[is:dom]] [[it:dom]] [[ky:dom]] [[ku:dom]] [[lt:dom]] [[li:dom]] [[hu:dom]] [[nl:dom]] [[oc:dom]] [[om:dom]] [[pt:dom]] [[sl:dom]] [[fi:dom]] [[sv:dom]] [[vi:dom]] [[tr:dom]] [[uk:dom]] [[vo:dom]] [[zh:dom]]
+{{zobteż|DOM|Dom}}
+== dom ({{język polski}}) ==
+[[Grafika:BrunnHeiligenstadtBauernhaus.jpg|thumb|right|200px|dom (1.1)]]
+{{wymowa}} {{lp}} {{IPA|dɔm}} {{audio|Pl-dom.ogg}} {{audio|dom.ogg}} {{lm}} {{IPA2|ˈdɔmɨ}}
+{{znaczenia}}
+''rzeczownik, rodzaj męski''
+: (1.1) [[budynek]] [[mieszkalny]]
+: (1.2) [[pomieszczenie]], [[miejsce]] [[stały|stałego]] [[zamieszkanie|zamieszkania]] ([[pobyt]]u)
+: (1.3) [[placówka]] [[społeczny|społeczna]] [[lub]] [[handlowy|handlowa]]
+: (1.4) [[ród]], [[rodzina]], [[dynastia]]
+{{odmiana}} {{lp}} dom, ~u, ~owi, ~, ~em, ~u, ~u; {{lm}} dom|y, ~ów, ~om, ~y, ~ami, ~ach, ~y
+{{przykłady}}
+: (1.1) ''[[w|W]] [[miasto|mieście]] [[wyrosnąć|wyrosło]] [[wiele]] [[nowy]]ch '''domów.'''''
+: (1.2) ''[[szkoła|Szkoła]] [[być|jest]] [[drugi]]m '''domem''' [[uczeń|ucznia]].''
+: (1.3) ''[[za|Za]] [[kradzież]] [[dokonywać|dokonaną]] [[w]] '''domu''' [[handlowy]]m [[trafiać|trafił]] [[do]] '''domu''' [[poprawczy|poprawczego]].''
+: (1.4) ''...[[Joanna]] Kowalska, [[z]] '''domu''' Nowak''.
+{{składnia}}
+{{kolokacje}} (1.1) [[budować]]/[[burzyć]]/[[remontować]] '''~''', [[stary]]/[[nawiedzony]] '''~'''; (1.2) [[uciec]] [[z]] '''~u''', [[nie]] [[mieć]] '''~u'''; (1.3) '''~''' [[poprawczy]]/[[handlowy]]/[[towarowy]]/[[studencki]]; (1.4) [[dziecko]] [[z]] [[dobry|dobrego]]/[[porządny|porządnego]]/[[biedny|biednego]] '''~u'''
+{{synonimy}} (1.1) [[blok]], [[budynek]], [[chałupa]], [[chata]], [[dach nad głową]], [[dwór]], [[gniazdo rodzinne]], [[kamienica]], [[mieszkanie]], [[ojcowska strzecha]], [[ognisko domowe]], [[pałac]], [[pielesze]], [[przybytek]], [[rezydencja]], [[siedlisko]], [[wieżowiec]], [[własny kąt]], [[zamek]]
+{{antonimy}}
+{{pokrewne}} {{rzecz}} [[bezdomność]], [[domator]]/[[domatorka]], [[domownik]], [[podomka]]; {{przym}} [[domowy]], [[przydomowy]]
+{{frazeologia}} (1.1) [[szklane domy]]; (1.2) [[dom boży]]; (1.3) [[dom dziecka]], [[dom publiczny]]
+{{etymologia}}
+{{uwagi}}
+{{tłumaczenia}}
+* angielski: (1.1) [[house]]; (1.2) [[home]]
+* arabski: (1.1) [[آلمنزل]]; (1.2) [[آلدار]]
+* białoruski: (1.1) [[дом]] {{m}}
+* bułgarski: (1.1) [[къща]] {{f}}
+* chorwacki: (1.1) [[kuća]] {{f}}
+* czeski: (1.1) [[dům]] {{m}}
+* dolnołużycki: (1.1) [[#dom (język dolnołużycki)|dom]] {{m}}
+* duński: (1.1) [[hus]] {{n}}; (1.2) [[hjem]] {{n}}
+* esperanto: (1.1) [[domo]]; (1.4) [[hejmo]]
+* fiński: (1.1) [[talo]]; (1.2) [[koti]]
+* francuski: (1.1-2,4) [[maison]] {{f}}
+* górnołużycki: (1.1) [[#dom (język górnołużycki)|dom]] {{m}}
+* grecki: (1.1-2,4) [[σπίτι]] {{n}}; (1.1-4) [[οίκος]] {{m}}; (1.3) [[κατάστημα]] {{n}}
+* hawajski: (1.1) [[hale]]
+* hiszpański: (1.1-4) [[casa]] {{f}}
+* hebrajski: (1.1-4) [[בית]] {{m}} (bajit)
+* interlingua: (1.1) [[casa]]
+* irlandzki: (1.1) [[teach]] {{m}}
+* islandzki: (1.1) [[hús]] {{n}}; (1.2) [[heimili]] {{n}}; (1.3) [[hús]] {{n}}; (1.4) [[ætt]]
+* japoński: (1.1) ([[うち]], uchi)
+* jidysz: (1.1) [[הויז]] {{n}} (hojz); (1.2) [[היים]] {{f}} (hejm); (1.3) ...[[בית]]־ {{n}} (bejs-...)
+* kaszubski: (1.1-2) [[dóm]] {{m}}, [[chëcz]] {{f}}
+* kataloński: (1.1-4) [[casa]] {{f}}
+* klingoński: (1.1) [[juh|juH]]
+* krymskotatarski: (1.1) [[üy]]
+* litewski: (1.1) [[namas]] {{m}}
+* macedoński: (1.1) [[куќа]] {{f}}
+* niemiecki: (1.1,3) [[Haus]] {{n}} (1.2) [[Heim]] {{n}}
+* norweski (bokmål): (1.1) [[hus#hus (język norweski)|hus]] {{n}}
+* perski: (1.1) [[خانِه|خانه]] (khāneh)
+* portugalski: (1.1,3) [[casa]] {{f}}; (1.2) [[casa]] {{f}}, [[lar]] {{m}}, [[residência]] {{f}}
+* rosyjski: (1.1) [[дом]] {{m}}
+* rumuński: (1.1) [[casă]] {{f}}
+* serbski: (1.) [[дом]] {{m}}
+* slovio: (1.1) [[domo]]
+* słowacki: (1.1) [[#dom (język słowacki)|dom]]
+* szwedzki: (1.1) [[hus#hus (język szwedzki)|hus]] {{n}} (1.2) [[hem]] {{n}}
+* turecki: (1.1) [[ev]]
+* ukraiński: (1.1-2) [[дім]] {{m}}; (1.3) [[будинок]] {{m}}
+* węgierski: (1.1) [[ház]]
+* włoski (1.1) [[casa]] {{f}}
+
+== dom ({{język dolnołużycki}}) ==
+{{wymowa}}
+{{znaczenia}}
+''rzeczownik, rodzaj męski''
+: (1.1) [[#dom (język polski)|dom]]
+: (1.2) [[katedra]]
+{{odmiana}} {{lp}} dom, ~a, ~oju, ~, ~om, ~je; {{du}} ~a, ~owo, ~owa, ~a, ~oma, ~oma; {{lm}} ~y, ~ow, ~am, ~y, ~ami, ~ach
+{{przykłady}}
+: (1.1) ''[[wón|Wón]] [[byś|jo]] [[wóna|jej]] '''dom''' [[wugotowaś|wugótował]]''. → [[on#on (język polski)|On]] [[zapisać|zapisał]] [[ona|jej]] '''[[#dom (język polski)|dom]]''' [[w]] [[testament|testamencie]].
+{{składnia}}
+{{kolokacje}} '''dom''' [[za]] [[stary#stary (język dolnołużycki)|starych]] [[luź]]i → [[dom]] [[starzec|starców]]
+{{synonimy}}
+{{antonimy}}
+{{pokrewne}} {{przysł}} [[doma]], [[domoj]]
+{{frazeologia}}
+{{etymologia}} (1.2) {{etym|niem|Dom}}
+{{uwagi}}
+
+== dom ({{esperanto}}) ==
+{{wymowa}}
+{{znaczenia}}
+''morfem''
+: (1.1) [[#dom (język polski)|dom]] ''(budynek)''
+{{odmiana}}
+{{przykłady}}
+: (1.1)
+{{składnia}}
+{{kolokacje}}
+{{synonimy}}
+{{antonimy}}
+{{pochodne}} {{rzecz}} [[domo]]
+{{frazeologia}}
+{{etymologia}}
+{{uwagi}} {{por|hejm}}
+
+== dom ({{język górnołużycki}}) ==
+{{wymowa}}
+{{znaczenia}}
+''rzeczownik, rodzaj męski''
+: (1.1) [[#dom (język polski)|dom]]
+: (1.2) [[katedra]]
+{{odmiana}}
+{{przykłady}}
+: (1.1)
+{{składnia}}
+{{kolokacje}}
+{{synonimy}}
+{{antonimy}}
+{{pokrewne}}
+{{frazeologia}}
+{{etymologia}}
+{{uwagi}}
+
+== dom ({{slovio}}) ==
+{{wymowa}}
+{{znaczenia}}
+''rzeczownik''
+: (1.1) [[#dom (język polski)|dom]]
+{{odmiana}}
+{{przykłady}}
+: (1.1) ''[[oni|Oni]] [[kupit|kupili]] [[starju]] '''dom''' [[vo]] [[malgrod]]''. → Oni [[kupić|kupili]] [[stary]] '''[[#dom (język polski)|dom]]''' [[na]] [[wieś|wsi]].
+{{składnia}}
+{{kolokacje}}
+{{synonimy}} (1.1) [[domo]]
+{{antonimy}}
+{{pokrewne}} {{czas}} [[domovit]]
+{{frazeologia}}
+{{etymologia}}
+{{uwagi}} ''zapis cyrylicą'' [[дом]]
diff --git a/testdata/door.html b/testdata/door.html
new file mode 100644
index 0000000..c4bb0a9
--- /dev/null
+++ b/testdata/door.html
@@ -0,0 +1,200 @@
+<br/><b>wikipedia:</b><br/>
+<h1>English</h1>
+<br/><b>rank:</b><br/>
+
+<h2>Pronunciation</h2><a href="http://upload.wikimedia.org/wikipedia/commons/thumb/a/bf/Doorway%20La%20Ronce%20National%20Trust%20for%20Jersey.jpg/250px-Doorway%20La%20Ronce%20National%20Trust%20for%20Jersey.jpg">thumb|right|A door.</a>
+<ul><li> <b>a</b> <b>enPR</b>, <b>IPA</b>, <b>SAMPA</b>
+</li><ul><li> <b>rhymes</b>
+</li></ul><li> <b>a</b> <b>enPR</b>, <b>IPA</b>, <b>SAMPA</b>
+</li><ul><li> <b>audio</b>
+</li></ul><li> <b>homophones</b> <b>qualifier</b>
+</li></ul>
+<h2>Etymology</h2>From <b>etyl</b> <b>term</b> &lt; <b>etyl</b> <b>term</b>, <b>term</b> &lt; <b>proto</b> &lt; <b>proto</b>. Cognates include Gothic <b>term</b>, Danish <b>term</b>, German <b>term</b> ( &lt; Old High German <b>term</b>), Icelandic <b>term</b> ( &lt; Old Norse <b>term</b>), Latin <b>term</b>, Modern Greek <b>term</b> ( &lt; Ancient Greek <b>term</b>), Persian <b>term</b>, and Russian <b>term</b>.
+
+<h2>Noun</h2><br/><b>wikipedia:</b><br/>
+<br/><b>en-noun:</b><br/>
+
+<ol><li> A <a href="http://pl.wiktionary.org/portal">portal</a> of entry into a building or room, consisting of a rigid plane movable on a <a href="http://pl.wiktionary.org/hinge">hinge</a>. Doors are frequently made of <a href="http://pl.wiktionary.org/wood">wood</a> or <a href="http://pl.wiktionary.org/metal">metal</a>. May have a <a href="http://pl.wiktionary.org/handle">handle</a> to help open and close, a <a href="http://pl.wiktionary.org/latch">latch</a> to hold the door closed <b>,</b> and a <a href="http://pl.wiktionary.org/lock">lock</a> that ensures the door cannot be opened without the key.
+</li><ol><li> <i>I knocked on the vice president's <b>door<i></i></b>
+</i></li></ol><li> An non-physical entry into the next world, a particular feeling, a company, etc.
+</li><ol><li> <i>Keep a <b>door</b>on your anger.</i>
+</li></ol></ol>
+<h3>Translations</h3><br/><b>trans-top:</b><br/>
+<ul><li> Albanian: <a href="http://pl.wiktionary.org/der%C3%AB">derë</a>
+</li><li> Arabic: <b>Arab</b> <b>IPAchar</b> <b>m</b>, <b>Arab</b> <b>IPAchar</b> <b>p</b>
+</li><li> Aramaic:
+</li><ul><li> Syriac: <a href="http://pl.wiktionary.org/%DC%AC%DC%AA%DC%A5%DC%90">ܬܪܥܐ</a> (tar‘ā’, tar‘o’) <b>m</b>
+</li><li> Hebrew: <a href="http://pl.wiktionary.org/%D7%AA%D7%A8%D7%A2%D7%90">תרעא</a> (tar‘ā’, tar‘o’) <b>m</b>
+</li></ul><li> Armenian: <b>t+</b> (duṙ)
+</li><li> <a href="http://pl.wiktionary.org/Basque">Basque</a>: <a href="http://pl.wiktionary.org/ate">ate</a>
+</li><li> Bengali: <a href="http://pl.wiktionary.org/%E0%A6%A6%E0%A6%B0%E0%A6%9C%E0%A6%BE">দরজা</a>
+</li><li> Bosnian: <a href="http://pl.wiktionary.org/vrata">vrata</a> <b>f</b>/ <b>p</b>
+</li><li> <a href="http://pl.wiktionary.org/Breton">Breton</a>: <a href="http://pl.wiktionary.org/dor">dor</a> <b>f</b>, dorioù <b>p</b> <i>(note:</i> nor <i>after article in the singular)</i>
+</li><li> Bulgarian: <b>t+</b>
+</li><li> <a href="http://pl.wiktionary.org/Catalan">Catalan</a>: <a href="http://pl.wiktionary.org/porta">porta</a> <b>f</b>
+</li><li> Chinese: <a href="http://pl.wiktionary.org/%E9%96%80">門</a>, <a href="http://pl.wiktionary.org/%E9%97%A8">门</a> (mén)
+</li><li> Croatian: <b>t-</b>
+</li><li> Czech: <b>t-</b>
+</li><li> Danish: <b>t-</b>
+</li><li> Dutch: <b>t+</b>
+</li><li> Esperanto: <b>t+</b>
+</li><li> Estonian: <b>t+</b>
+</li><li> <a href="http://pl.wiktionary.org/Ewe">Ewe</a>: <a href="http://pl.wiktionary.org/%CA%8B%C9%94tru">ʋɔtru</a> <b>n</b>
+</li><li> Faroese: <b>t-</b>, <b>t-</b>
+</li><li> Finnish: <b>t+</b>
+</li><li> French: <b>t+</b>
+</li><li> Georgian: <a href="http://pl.wiktionary.org/%E1%83%99%E1%83%90%E1%83%A0%E1%83%98">კარი</a> (kari)
+</li><li> German: <a href="http://pl.wiktionary.org/T%C3%BCr">Tür</a> <b>f</b>, <a href="http://pl.wiktionary.org/T%C3%BCren">Türen</a> <b>p</b>, <a href="http://pl.wiktionary.org/T%C3%BCre">Türe</a> <b>f</b>
+</li><li> Greek: <b>t+</b>, <b>t+</b>
+</li><ul><li> Ancient Greek: <b>t+</b>
+</li></ul><li> Hebrew: <a href="http://pl.wiktionary.org/%D7%93%D7%9C%D7%AA">דלת</a> (délet) <b>f</b>
+</li><li> Hindi: <a href="http://pl.wiktionary.org/%E0%A4%A6%E0%A4%B0%E0%A4%B5%E0%A4%BE%E0%A4%9C%E0%A4%BC%E0%A4%BE">दरवाज़ा</a> (darvāzā) <b>m</b>
+</li><li> Hungarian: <a href="http://pl.wiktionary.org/ajt%C3%B3">ajtó</a>, <a href="http://pl.wiktionary.org/kapu">kapu</a>, <a href="http://pl.wiktionary.org/bej%C3%A1rat">bejárat</a>; <a href="http://pl.wiktionary.org/ajt%C3%B3ny%C3%ADl%C3%A1s">ajtónyílás</a>
+</li><li> Indonesian: <b>t-</b>
+</li><li> Irish: <b>t-</b>
+</li><li> Italian: <b>t+</b>, <b>t-</b>, <b>t+</b>
+</li><li> Japanese: <a href="http://pl.wiktionary.org/%E6%88%B8">戸</a> (<a href="http://pl.wiktionary.org/%E3%81%A8">と</a>, to), <a href="http://pl.wiktionary.org/%E6%89%89">扉</a> (<a href="http://pl.wiktionary.org/%E3%81%A8%E3%81%B3%E3%82%89">とびら</a>, tobira), <a href="http://pl.wiktionary.org/%E3%83%89%E3%82%A2">ドア</a> (dóa)
+</li><li> <b>trreq</b>
+</li><li> Korean: <a href="http://pl.wiktionary.org/%EB%AC%B8">문</a> (mun)
+</li><li> Kurdish: <b>t+</b>, <b>t+</b>, <b>t+</b>, <b>t+</b>
+</li><li> Lao: <b>t</b>
+</li><li> Latin: <b>t-</b>, <b>t+</b>
+</li></ul><br/><b>trans-mid:</b><br/>
+<ul><li> Latvian: <a href="http://pl.wiktionary.org/durvis">durvis</a> <b>m</b>
+</li><li> Lithuanian: <b>t-</b>
+</li><li> <a href="http://pl.wiktionary.org/Lower%20Sorbian">Lower Sorbian</a>: <a href="http://pl.wiktionary.org/%C5%BAurja">źurja</a> <b>p</b>
+</li><li> Malay: <b>t+</b>
+</li><li> <a href="http://pl.wiktionary.org/Malayalam">Malayalam</a>: <a href="http://pl.wiktionary.org/%E0%B4%B5%E0%B4%BE%E0%B4%A4%E0%B4%BF%E0%B4%B2%E0%B5%8D%E2%80%8D">വാതില്‍</a>, <a href="http://pl.wiktionary.org/%E0%B4%95%E0%B4%A4%E0%B4%95%E0%B5%8D">കതക്</a>, <a href="http://pl.wiktionary.org/%E0%B4%95%E0%B4%B5%E0%B4%BE%E0%B4%9F%E0%B4%82">കവാടം</a>, <a href="http://pl.wiktionary.org/%E0%B4%AA%E0%B5%8D%E0%B4%B0%E0%B4%B5%E0%B5%87%E0%B4%B6%E0%B4%A8%E0%B4%AE%E0%B5%81%E0%B4%96%E0%B4%82">പ്രവേശനമുഖം</a>
+</li><li> Maltese: <a href="http://pl.wiktionary.org/bieb">bieb</a> <b>m</b>
+</li><li> <a href="http://pl.wiktionary.org/Marathi">Marathi</a>: <a href="http://pl.wiktionary.org/%E0%A4%A6%E0%A4%B0%E0%A4%B5%E0%A4%BE%E0%A4%9C%E0%A4%BE">दरवाजा</a> (darvājā), <a href="http://pl.wiktionary.org/%E0%A4%A6%E0%A4%BE%E0%A4%B0">दार</a> (dār)
+</li><li> Mongolian: <a href="http://pl.wiktionary.org/%D2%AF%D2%AF%D0%B4">үүд</a> (üüd)
+</li><li> Norwegian: <b>t-</b>
+</li><li> Old English: <b>t+</b>, <b>t-</b>
+</li><li> <b>trreq</b>
+</li><li> Persian: <b>fa-Arab</b> (dar)
+</li><li> Polish: <b>t+</b>
+</li><li> Portuguese: <b>t+</b>
+</li><li> <a href="http://pl.wiktionary.org/Punjabi">Punjabi</a>: <a href="http://pl.wiktionary.org/%E0%A8%AC%E0%A9%82%E0%A8%B9%E0%A8%BE">ਬੂਹਾ</a> (būhā), <a href="http://pl.wiktionary.org/%E0%A8%A6%E0%A8%B0%E0%A8%B5%E0%A8%BE%E0%A8%9C%E0%A8%BC%E0%A8%BE">ਦਰਵਾਜ਼ਾ</a> (darvāzā)
+</li><li> Romanian: <b>t+</b>
+</li><li> Russian: <a href="http://pl.wiktionary.org/%D0%B4%D0%B2%D0%B5%D1%80%D1%8C">дверь</a> (dver’) <b>f</b>
+</li><li> Sanskrit: <a href="http://pl.wiktionary.org/%E0%A4%A6%E0%A5%8D%E0%A4%B5%E0%A4%BE%E0%A4%B0%E0%A4%82">द्वारं</a>
+</li><li> <a href="http://pl.wiktionary.org/Scottish%20Gaelic">Scottish Gaelic</a>: <a href="http://pl.wiktionary.org/dorus">dorus</a> <b>m</b>
+</li><li> Serbian: <b>t-</b>, <b>t-</b>
+</li><li> Slovak: <b>t-</b>
+</li><li> Slovene: <b>t+</b>
+</li><li> Spanish: <b>t+</b>
+</li><li> Swahili: <a href="http://pl.wiktionary.org/mlango">mlango</a>
+</li><li> Swedish: <b>t+</b>
+</li><li> <a href="http://pl.wiktionary.org/Tagalog">Tagalog</a>: <a href="http://pl.wiktionary.org/pinto">pinto</a>
+</li><li> <a href="http://pl.wiktionary.org/Tamil">Tamil</a>: <a href="http://pl.wiktionary.org/%E0%AE%95%E0%AE%A4%E0%AE%B5%E0%AF%81">கதவு</a> (kathavu)
+</li><li> <a href="http://pl.wiktionary.org/Taos">Taos</a>: <a href="http://pl.wiktionary.org/k%C9%99%CC%8Fd%C3%A9nem%C4%85">kə̏dénemą</a>
+</li><li> <a href="http://pl.wiktionary.org/Telugu">Telugu</a>: <a href="http://pl.wiktionary.org/%E0%B0%A4%E0%B0%B2%E0%B1%81%E0%B0%AA%E0%B1%81">తలుపు</a>, <a href="http://pl.wiktionary.org/%E0%B0%A6%E0%B1%8D%E0%B0%B5%E0%B0%BE%E0%B0%B0%E0%B0%AE%E0%B1%81">ద్వారము</a>
+</li><li> Thai: <b>Thai</b> (bprà-dtoo)
+</li><li> Turkish: <b>t+</b>
+</li><li> Ukrainian: <b>t+</b>
+</li><li> <a href="http://pl.wiktionary.org/Upper%20Sorbian">Upper Sorbian</a>: <a href="http://pl.wiktionary.org/durje">durje</a> <b>p</b>
+</li><li> Urdu: <b>ur-Arab</b> (darvāza) <b>m</b>
+</li><li> Vietnamese: <b>t+</b>
+</li><li> Welsh: <b>t-</b>
+</li><li> <a href="http://pl.wiktionary.org/West%20Frisian">West Frisian</a>: <a href="http://pl.wiktionary.org/doar">doar</a>
+</li><li> Yiddish: <a href="http://pl.wiktionary.org/%D7%98%D7%99%D7%A8">טיר</a> (tir) <b>f</b>
+</li><li> <b>trreq</b>
+</li></ul><br/><b>trans-bottom:</b><br/>
+
+<h3>Derived terms</h3><ul><li> <a href="http://pl.wiktionary.org/door%20brake">door brake</a>
+</li><li> <a href="http://pl.wiktionary.org/sliding%20door">sliding door</a>
+</li><li> <a href="http://pl.wiktionary.org/up%20and%20over%20door">up and over door</a>
+</li><li> <a href="http://pl.wiktionary.org/show%20somebody%20the%20door">show somebody the door</a>
+</li></ul>
+<h2>Verb</h2><br/><b>en-verb:</b><br/>
+
+<ol><li> <b>transitive</b> To cause a collision by opening the door of a vehicle in the front of (an oncoming cyclist or pedestrian).
+</li></ol>
+<a href="http://pl.wiktionary.org/Category%3A1000%20English%20basic%20words">Category:1000 English basic words</a>
+
+<hr/>
+<h1>Dutch</h1>
+<h2>Pronunciation</h2><ul><li> <b>audio</b>
+</li><li> <b>IPA</b>
+</li></ul>
+<h2>Preposition</h2><br/><b>infl:</b><br/>
+
+<ol><li> <a href="http://pl.wiktionary.org/through">through</a>
+</li><ol><li> <i>Hij schoot de bal <b>door</b>het raam.</i> &amp;mdash; He kicked the ball <b>through</b>the window.
+</li></ol><li> <a href="http://pl.wiktionary.org/around">around</a> within an enclosed space
+</li><ol><li> <i>Dolenthousiast rende het hondje <b>door</b>de kamer.</i> &amp;mdash; Very enthusiastically the puppy ran <b>around</b>the room.
+</li></ol><li> <a href="http://pl.wiktionary.org/because%20of">because of</a>
+</li><ol><li> <b><i>Door</i></b>files kan ik niet op tijd komen.<i> &amp;mdash; <b>Because of</b>traffic jams I'm unable to arrive on time.
+</i></li></ol></ol>
+<h3>Synonyms</h3><ul><li> <b>sense</b> <a href="http://pl.wiktionary.org/vanwege">vanwege</a>
+</li></ul>
+<h2>Postposition</h2><br/><b>infl:</b><br/>
+
+<ol><li> <a href="http://pl.wiktionary.org/through">through</a> (implying motion)
+</li><ol><li> <i>Ik rijd nu de stad <b>door</b></i> &amp;mdash; I'm now driving <b>through</b>the city.
+</li></ol><li> <a href="http://pl.wiktionary.org/around">around</a> within an enclosed space
+</li><ol><li> <i>Dolenthousiast rende het hondje de kamer <b>door</b></i> &amp;mdash; Very enthusiastically the puppy ran <b>around</b>the room.
+</li></ol></ol>
+<h2>Adverb</h2><br/><b>infl:</b><br/>
+
+<ol><li> <a href="http://pl.wiktionary.org/through">through</a>, <a href="http://pl.wiktionary.org/forward">forward</a>, <a href="http://pl.wiktionary.org/on">on</a>
+</li><ol><li> <i>Ondanks slecht weer ging het feest ging toch <b>door.<i></i></b>&amp;mdash; Despite bad weather, the party went <b>on</b>anyway.
+</i></li></ol></ol>
+<h3>Derived terms</h3><br/><b>top4:</b><br/>
+<ul><li> <a href="http://pl.wiktionary.org/doorgaan">doorgaan</a>
+</li><li> <a href="http://pl.wiktionary.org/doorgang">doorgang</a>
+</li><li> <a href="http://pl.wiktionary.org/doorgeven">doorgeven</a>
+</li><li> <a href="http://pl.wiktionary.org/doorstaan">doorstaan</a>
+</li><li> <a href="http://pl.wiktionary.org/doorstart">doorstart</a>
+</li><li> <a href="http://pl.wiktionary.org/doortocht">doortocht</a>
+</li><li> <a href="http://pl.wiktionary.org/doorwerken">doorwerken</a>
+</li><li> <a href="http://pl.wiktionary.org/doorzichtig">doorzichtig</a>
+</li></ul><br/><b>bottom:</b><br/>
+
+<h2>Conjunction</h2><br/><b>infl:</b><br/>
+
+<ol><li> <a href="http://pl.wiktionary.org/by">by</a>
+</li><ol><li> <i>Hij vermeed een confrontatie <b>door</b>de andere kant op te lopen.</i> &amp;mdash; He avoided a confrontation <b>by</b>walking the other way.
+</li></ol></ol>
+<h3>Derived terms</h3><ul><li> <a href="http://pl.wiktionary.org/door%20middel%20van">door middel van</a>
+</li></ul>
+<a href="http://am.wiktionary.org/door">አማርኛ</a>
+<a href="http://ang.wiktionary.org/door">Englisc</a>
+<a href="http://ar.wiktionary.org/door">العربية</a>
+<a href="http://cs.wiktionary.org/door">Česky</a>
+<a href="http://de.wiktionary.org/door">Deutsch</a>
+<a href="http://et.wiktionary.org/door">Eesti</a>
+<a href="http://el.wiktionary.org/door">Ελληνικά</a>
+<a href="http://es.wiktionary.org/door">Español</a>
+<a href="http://fa.wiktionary.org/door">فارسی</a>
+<a href="http://fr.wiktionary.org/door">Français</a>
+<a href="http://ko.wiktionary.org/door">한국어</a>
+<a href="http://hy.wiktionary.org/door">Հայերեն</a>
+<a href="http://io.wiktionary.org/door">Ido</a>
+<a href="http://id.wiktionary.org/door">Bahasa Indonesia</a>
+<a href="http://it.wiktionary.org/door">Italiano</a>
+<a href="http://kk.wiktionary.org/door">Қазақша</a>
+<a href="http://ku.wiktionary.org/door">Kurdî / كوردی</a>
+<a href="http://lo.wiktionary.org/door">ລາວ</a>
+<a href="http://lt.wiktionary.org/door">Lietuvių</a>
+<a href="http://li.wiktionary.org/door">Limburgs</a>
+<a href="http://hu.wiktionary.org/door">Magyar</a>
+<a href="http://nl.wiktionary.org/door">Nederlands</a>
+<a href="http://ja.wiktionary.org/door">日本語</a>
+<a href="http://no.wiktionary.org/door">Norsk (Bokmål)</a>
+<a href="http://oc.wiktionary.org/door">Occitan</a>
+<a href="http://ug.wiktionary.org/door">Oyghurque</a>
+<a href="http://km.wiktionary.org/door">ភាសាខ្មែរ</a>
+<a href="http://pl.wiktionary.org/door">Polski</a>
+<a href="http://pt.wiktionary.org/door">Português</a>
+<a href="http://simple.wiktionary.org/door">Simple English</a>
+<a href="http://sr.wiktionary.org/door">Српски / Srpski</a>
+<a href="http://fi.wiktionary.org/door">Suomi</a>
+<a href="http://sv.wiktionary.org/door">Svenska</a>
+<a href="http://ta.wiktionary.org/door">தமிழ்</a>
+<a href="http://te.wiktionary.org/door">తెలుగు</a>
+<a href="http://th.wiktionary.org/door">ไทย</a>
+<a href="http://vi.wiktionary.org/door">Tiếng Việt</a>
+<a href="http://tr.wiktionary.org/door">Türkçe</a>
+<a href="http://uk.wiktionary.org/door">Українська</a>
+<a href="http://zh.wiktionary.org/door">中文</a>
diff --git a/testdata/door.wiki b/testdata/door.wiki
new file mode 100644
index 0000000..0be6131
--- /dev/null
+++ b/testdata/door.wiki
@@ -0,0 +1,217 @@
+{{wikipedia|Door (disambiguation)}}
+==English==
+
+{{rank|myself|morning|money|275|door|round|kind|form}}
+
+===Pronunciation===
+[[Image:Doorway La Ronce National Trust for Jersey.jpg|thumb|right|A door.]]
+* {{a|RP}} {{enPR|dô(r)}}, {{IPA|/dɔː(ɹ)/}}, {{SAMPA|/dO:(r)/}}
+*: {{rhymes|ɔː(r)}}
+* {{a|US}} {{enPR|dôr}}, {{IPA|/dɔːɹ/|/doʊɹ/}}, {{SAMPA|/dO:r/|/doUr/}}
+*: {{audio|en-us-door.ogg|Audio (US)}}
+* {{homophones|daw}} {{qualifier|in [[non-rhotic]] accents}}
+
+===Etymology===
+From {{etyl|enm|en}} {{term|dor|lang=enm}} &lt; {{etyl|ang|en}} {{term|duru||door|lang=ang}}, {{term|dor||gate|lang=ang}} &lt; {{proto|Germanic|dur-|lang=en}} &lt; {{proto|Indo-European|dʰwer-||dʰwor-|doorway, door, gate|lang=en}}. Cognates include Gothic {{term|𐌳𐌰𐌿𐍂|sc=Goth|tr=daúr|lang=got}}, Danish {{term|dør}}, German {{term|Tür|lang=de}} ( &lt; Old High German {{term|turi|lang=goh}}), Icelandic {{term|dyr|lang=is}} ( &lt; Old Norse {{term|dyrr|lang=non}}), Latin {{term|foris|lang=la}}, Modern Greek {{term|sc=Grek|θύρα|tr=thýra}} ( &lt; Ancient Greek {{term|sc=polytonic|θύρα|tr=thura|lang=grc}}), Persian {{term|sc=fa-Arab|در|tr=dar|lang=fa}}, and Russian {{term|sc=Cyrl|дверь|tr=dver’|lang=ru}}.
+
+===Noun===
+{{wikipedia}}
+{{en-noun}}
+
+# A [[portal]] of entry into a building or room, consisting of a rigid plane movable on a [[hinge]]. Doors are frequently made of [[wood]] or [[metal]]. May have a [[handle]] to help open and close, a [[latch]] to hold the door closed{{,}} and a [[lock]] that ensures the door cannot be opened without the key.
+#: ''I knocked on the vice president's '''door'''''
+# An non-physical entry into the next world, a particular feeling, a company, etc.
+#: ''Keep a '''door''' on your anger.''
+
+====Translations====
+{{trans-top|portal of entry into a building or room}}
+* Albanian: [[derë]]
+* Arabic: {{Arab|[[باب|بَابٌ]]}} {{IPAchar|(bāb)}} {{m}}, {{Arab|[[باب|أبْوَاب]]}} {{IPAchar|(’abwāb)}} {{p}}
+* Aramaic:
+*: Syriac: [[ܬܪܥܐ]] (tar‘ā’, tar‘o’) {{m}}
+*: Hebrew: [[תרעא]] (tar‘ā’, tar‘o’) {{m}}
+* Armenian: {{t+|hy|դուռ|sc=Hayeren|xs=Armenian}} (duṙ)
+* [[Basque]]: [[ate]]
+* Bengali: [[দরজা]]
+* Bosnian: [[vrata]] {{f|s}}/{{p}}
+* [[Breton]]: [[dor]] {{f}}, dorioù {{p}} ''(note:'' nor ''after article in the singular)''
+* Bulgarian: {{t+|bg|врата|n|p|tr=vrata|sc=Cyrl}}
+* [[Catalan]]: [[porta]] {{f}}
+* Chinese: [[門]], [[门]] (mén)
+* Croatian: {{t-|hr|vrata|n|p}}
+* Czech: {{t-|cs|dveře|f|p}}
+* Danish: {{t-|da|dør}}
+* Dutch: {{t+|nl|deur|f}}
+* Esperanto: {{t+|eo|pordo|xs=Esperanto}}
+* Estonian: {{t+|et|uks}}
+* [[Ewe]]: [[ʋɔtru]] {{n}}
+* Faroese: {{t-|fo|dyr|xs=Faroese}}, {{t-|fo|hurð|xs=Faroese}}
+* Finnish: {{t+|fi|ovi}}
+* French: {{t+|fr|porte|f}}
+* Georgian: [[კარი]] (kari)
+* German: [[Tür]] {{f}}, [[Türen]] {{p}}, [[Türe]] {{f}}
+* Greek: {{t+|el|πόρτα|f|tr=pórta|sc=Grek}}, {{t+|el|θύρα|f|tr=thýra|sc=Grek}}
+** Ancient Greek: {{t+|el|θύρα|f|tr=thýra|sc=Grek}}
+* Hebrew: [[דלת]] (délet) {{f}}
+* Hindi: [[दरवाज़ा]] (darvāzā) {{m}}
+* Hungarian: [[ajtó]], [[kapu]], [[bejárat]]; [[ajtónyílás]]
+* Indonesian: {{t-|id|pintu|xs=Indonesian}}
+* Irish: {{t-|ga|doras|m|xs=Irish}}
+* Italian: {{t+|it|porta|f}}, {{t-|it|portiera|f}}, {{t+|it|sportello|m}}
+* Japanese: [[戸]] ([[と]], to), [[扉]] ([[とびら]], tobira), [[ドア]] (dóa)
+* {{trreq|Kannada}}
+* Korean: [[문]] (mun)
+* Kurdish: {{t+|ku|derî|m}}, {{t+|ku|dergeh|m}}, {{t+|ku|ده‌رگا|sc=KUchar}}, {{t+|ku|قاپی|sc=KUchar}}
+* Lao: {{t|lo|ປະຕູ|tr=pa-tuu|sc=Laoo}}
+* Latin: {{t-|la|ostium|n}}, {{t+|la|ianua|f}}
+{{trans-mid}}
+* Latvian: [[durvis]] {{m}}
+* Lithuanian: {{t-|lt|durys|xs=Lithuanian}}
+* [[Lower Sorbian]]: [[źurja]] {{p}}
+* Malay: {{t+|ms|pintu|xs=Malay}}
+* [[Malayalam]]: [[വാതില്‍]], [[കതക്]], [[കവാടം]], [[പ്രവേശനമുഖം]]
+* Maltese: [[bieb]] {{m}}
+* [[Marathi]]: [[दरवाजा]] (darvājā), [[दार]] (dār)
+* Mongolian: [[үүд]] (üüd)
+* Norwegian: {{t-|no|dør|m}}
+* Old English: {{t+|ang|duru|xs=Old English}}, {{t-|ang|dor|xs=Old English}}
+* {{trreq|Oriya}}
+* Persian: {{fa-Arab|[[در]]}} (dar)
+* Polish: {{t+|pl|drzwi|n|p}}
+* Portuguese: {{t+|pt|porta|f}}
+* [[Punjabi]]: [[ਬੂਹਾ]] (būhā), [[ਦਰਵਾਜ਼ਾ]] (darvāzā)
+* Romanian: {{t+|ro|uşă|f}}
+* Russian: [[дверь]] (dver’) {{f}}
+* Sanskrit: [[द्वारं]]
+* [[Scottish Gaelic]]: [[dorus]] {{m}}
+* Serbian: {{t-|sr|врата|f|sc=Cyrl}}, {{t-|sr|vrata|f}}
+* Slovak: {{t-|sk|dvere|f|p}}
+* Slovene: {{t+|sl|vrata|n|p}}
+* Spanish: {{t+|es|puerta|f}}
+* Swahili: [[mlango]]
+* Swedish: {{t+|sv|dörr|c}}
+* [[Tagalog]]: [[pinto]]
+* [[Tamil]]: [[கதவு]] (kathavu)
+* [[Taos]]: [[kə̏dénemą]]
+* [[Telugu]]: [[తలుపు]], [[ద్వారము]]
+* Thai: {{Thai|[[ประตู]]}} (bprà-dtoo)
+* Turkish: {{t+|tr|kapı}}
+* Ukrainian: {{t+|uk|двері|f|p|tr=dveri|sc=Cyrl|xs=Ukrainian}}
+* [[Upper Sorbian]]: [[durje]] {{p}}
+* Urdu: {{ur-Arab|[[دروازہ]]}} (darvāza) {{m}}
+* Vietnamese: {{t+|vi|cửa|xs=Vietnamese}}
+* Welsh: {{t-|cy|drws|xs=Welsh}}
+* [[West Frisian]]: [[doar]]
+* Yiddish: [[טיר]] (tir) {{f}}
+* {{trreq|Zulu}}
+{{trans-bottom}}
+
+====Derived terms====
+* [[door brake]]
+* [[sliding door]]
+* [[up and over door]]
+* [[show somebody the door]]
+
+===Verb===
+{{en-verb}}
+
+# {{transitive|cycling}} To cause a collision by opening the door of a vehicle in the front of (an oncoming cyclist or pedestrian).
+
+[[Category:1000 English basic words]]
+
+----
+
+==Dutch==
+
+===Pronunciation===
+* {{audio|Nl-door.ogg|audio}}
+* {{IPA|lang=nl|[dʊːr]}}
+
+===Preposition===
+{{infl|nl|preposition}}
+
+# [[through]]
+#: ''Hij schoot de bal '''door''' het raam.'' &amp;mdash; He kicked the ball '''through''' the window.