X-Git-Url: http://gitweb.fperrin.net/?p=DictionaryPC.git;a=blobdiff_plain;f=src%2Fcom%2Fhughes%2Fandroid%2Fdictionary%2Fparser%2Fwiktionary%2FWholeSectionToHtmlParser.java;h=437fb535cc26a07bcf156607d483e3076d90ef10;hp=8cc1ad2fd178248f53402427af71df35e773557d;hb=386a30eb44fe6f5e26809f723cd9ad6b50539060;hpb=4dadbc2fbb813682ec4981128bf3da782fb6dd85 diff --git a/src/com/hughes/android/dictionary/parser/wiktionary/WholeSectionToHtmlParser.java b/src/com/hughes/android/dictionary/parser/wiktionary/WholeSectionToHtmlParser.java index 8cc1ad2..437fb53 100644 --- a/src/com/hughes/android/dictionary/parser/wiktionary/WholeSectionToHtmlParser.java +++ b/src/com/hughes/android/dictionary/parser/wiktionary/WholeSectionToHtmlParser.java @@ -20,6 +20,7 @@ public class WholeSectionToHtmlParser extends AbstractWiktionaryParser { interface LangConfig { boolean skipSection(final String name); boolean skipWikiLink(final WikiTokenizer wikiTokenizer); + String adjustWikiLink(String wikiLinkDest); } static final Map isoToLangConfig = new LinkedHashMap(); static { @@ -37,6 +38,13 @@ public class WholeSectionToHtmlParser extends AbstractWiktionaryParser { return true; } return false; + } + @Override + public String adjustWikiLink(String wikiLinkDest) { + if (wikiLinkDest.startsWith("w:") || wikiLinkDest.startsWith("Image:")) { + return null; + } + return wikiLinkDest; }}); } @@ -97,7 +105,19 @@ public class WholeSectionToHtmlParser extends AbstractWiktionaryParser { if (langConfig.skipWikiLink(wikiTokenizer)) { return; } - super.onWikiLink(wikiTokenizer); + String linkDest; + if (wikiTokenizer.wikiLinkDest() != null) { + linkDest = langConfig.adjustWikiLink(wikiTokenizer.wikiLinkDest()); + } else { + linkDest = wikiTokenizer.wikiLinkText(); + } + if (linkDest != null) { + builder.append(String.format("", linkDest)); + super.onWikiLink(wikiTokenizer); + builder.append(String.format("")); + } else { + super.onWikiLink(wikiTokenizer); + } } @Override