Sunday, January 17, 2016

Filtering of HTML entities and tags

In some cases, HTML tags (<center>, <ref>, etc.) or entities (usually &nbsp;) remain in the data from dbnary, which is used as input material for WikDict. I'm now using a basic HTML parser to improve the handling of these cases.

Entities

From now on, all entities should be properly converted resulting in
Gerät für Turnübungen, auf einem Gestell befestigter 10 cm breiter und 5 m langer Holzbalken
instead of
Gerät für Turnübungen, auf einem Gestell befestigter 10&nbsp;cm breiter und 5&nbsp;m langer Holzbalken

 Stripped Tags

Most HTML tags will be ignored, leaving the text inside the tag untouched. However, some tags will be stripped including the content, since the tag content is not relevant for the translation. One such tag is <ref>, resulting in
  • „fiktives Land, in dem absurde Verhältnisse herrschen“ als sinnbildhafte Bezeichnung für „unverständliche (absurde) politische Situationen“, „bestimmte Verhältnisse[, die] nicht nachvollziehbar sind“, für „etwas völlig Absurdes“
instead of
  • „fiktives Land, in dem absurde Verhältnisse herrschen“<ref></ref> als sinnbildhafte Bezeichnung für „unverständliche (absurde) politische Situationen“<ref name="WP"></ref>, „bestimmte Verhältnisse[, die] nicht nachvollziehbar sind“<ref name="WP"/>, für „etwas völlig Absurdes“<ref>, Stichwort »absurd«, Seite 45.</ref>

Sub- and Superscripts

Special handling is done to sub- and superscript tags, where the content is converted to the corresponding Unicode characters in the most common cases. This makes beautiful chemical texts like
  • Organische Chemie: eine farblose, viskose Säure mit der Summenformel C₄H₆O₃
instead of
  • Organische Chemie: eine farblose, viskose Säure mit der Summenformel C<sub>4</sub>H<sub>6</sub>O<sub>3</sub>

Feedback

Did you find cases where the results of these changes are bad or there are obvious improvements possible? Let me know and I'll try to fix it.