Interwiki.hs 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469
  1. {- | This plugin causes link URLs of the form wikiname!articlename to be
  2. treated as interwiki links. So, for example,
  3. > [The Emperor Palpatine](!Wookieepedia "Emperor Palpatine")
  4. links to the article on "Emperor Palpatine" in Wookieepedia
  5. (<http://starwars.wikia.com/wiki/Emperor_Palpatine>).
  6. This module also supports a shorter syntax, for when the link text
  7. is identical to the article name. Example:
  8. > [Emperor Palpatine](!Wookieepedia)
  9. will link to the right place, same as the previous example.
  10. (Written by Gwern Branwen; put in public domain, 2009) -}
  11. module Interwiki (plugin) where
  12. import Network.Gitit.Interface
  13. import qualified Data.Map as M (fromList, lookup, Map)
  14. import Network.URI (escapeURIString, isAllowedInURI, unEscapeString)
  15. plugin :: Plugin
  16. plugin = mkPageTransform convertInterwikiLinks
  17. {- | A good interwiki link looks like '!Wookieepedia "Emperor Palpatine"'. So we check for a leading '!'.
  18. We strip it off, and now we have the canonical sitename (in this case, "Wookieepedia" and we look it up
  19. in our database.
  20. The database should return the URL for that site; we only need append the (escaped) article name to that,
  21. and we have the full URL! If there isn't one there, then we look back at the link-text for the article
  22. name; this is how we support the shortened syntax (see module description).
  23. If there isn't a leading '!', we get back a Nothing (the database doesn't know the site), we just return
  24. the Link unchanged. -}
  25. convertInterwikiLinks :: Inline -> Inline
  26. convertInterwikiLinks (Link ref (interwiki, article)) =
  27. case interwiki of
  28. ('!':interwiki') ->
  29. case M.lookup interwiki' interwikiMap of
  30. Just url -> case article of
  31. "" -> Link ref (url ++ inlinesToURL ref, summary $ unEscapeString $ inlinesToURL ref)
  32. _ -> Link ref (interwikiurl article url, summary article)
  33. Nothing -> Link ref (interwiki, article)
  34. where -- 'http://starwars.wikia.com/wiki/Emperor_Palpatine'
  35. interwikiurl a u = escapeURIString isAllowedInURI $ u ++ a
  36. -- 'Wookieepedia: Emperor Palpatine'
  37. summary a = interwiki' ++ ": " ++ a
  38. _ -> Link ref (interwiki, article)
  39. convertInterwikiLinks x = x
  40. -- | Large table of constants; this is a mapping from shortcuts to a URL. The URL can be used by
  41. -- appending to it the article name (suitably URL-escaped, of course).
  42. interwikiMap :: M.Map String String
  43. interwikiMap = M.fromList $ wpInterwikiMap ++ customInterwikiMap
  44. wpInterwikiMap, customInterwikiMap :: [(String, String)]
  45. customInterwikiMap = [("Hackage", "http://hackage.haskell.org/package/"),
  46. ("Hawiki", "http://haskell.org/haskellwiki/"),
  47. ("Hayoo", "http://holumbus.fh-wedel.de/hayoo/hayoo.html#0:"),
  48. ("Hoogle", "http://www.haskell.org/hoogle/?hoogle=")]
  49. -- This mapping is derived from <https://secure.wikimedia.org/wikipedia/meta/wiki/Interwiki_map>
  50. -- as of 6:12 PM, 6 February 2013.
  51. wpInterwikiMap = [ ("AbbeNormal", "http://johnabbe.wagn.org/"),
  52. ("Acronym", "http://www.acronymfinder.com/af-query.asp?String=exact&Acronym="),
  53. ("Advisory", "http://advisory.wikimedia.org/wiki/"),
  54. ("Advogato", "http://www.advogato.org/"),
  55. ("Aew", "http://wiki.arabeyes.org/"),
  56. ("AllWiki", "http://allwiki.com/index.php/"),
  57. ("Appropedia", "http://www.appropedia.org/"),
  58. ("AquariumWiki", "http://www.theaquariumwiki.com/"),
  59. ("AspieNetWiki", "http://aspie.mela.de/index.php/"),
  60. ("AtmWiki", "http://www.otterstedt.de/wiki/index.php/"),
  61. ("BCNbio", "http://historiapolitica.bcn.cl/resenas_parlamentarias/wiki/"),
  62. ("BLW", "http://britainloveswikipedia.org/wiki/"),
  63. ("BattlestarWiki", "http://en.battlestarwiki.org/wiki/"),
  64. ("BibleWiki", "http://bible.tmtm.com/wiki/"),
  65. ("BluWiki", "http://bluwiki.com/go/"),
  66. ("Botwiki", "http://botwiki.sno.cc/wiki/"),
  67. ("Boxrec", "http://www.boxrec.com/media/index.php?"),
  68. ("BrickWiki", "http://lego.wikia.com/index.php?title="),
  69. ("Bytesmiths", "http://www.Bytesmiths.com/wiki/"),
  70. ("C2", "http://c2.com/cgi/wiki?"),
  71. ("C2find", "http://c2.com/cgi/wiki?FindPage&value="),
  72. ("CKWiss", "http://ck-wissen.de/ckwiki/index.php?title="),
  73. ("Cache", "http://www.google.com/search?q=cache:"),
  74. ("CellWiki", "http://cell.wikia.com/wiki/"),
  75. ("CentralWikia", "http://community.wikia.com/wiki/"),
  76. ("ChEJ", "http://esperanto.blahus.cz/cxej/vikio/index.php/"),
  77. ("ChoralWiki", "http://www.cpdl.org/wiki/index.php/"),
  78. ("Citizendium", "http://en.citizendium.org/wiki/"),
  79. ("Comixpedia", "http://www.comixpedia.org/index.php/"),
  80. ("Commons", "http://commons.wikimedia.org/wiki/"),
  81. ("CommunityScheme", "http://community.schemewiki.org/?c=s&key="),
  82. ("CommunityWiki", "http://www.communitywiki.org/"),
  83. ("CorpKnowPedia", "http://corpknowpedia.org/wiki/index.php/"),
  84. ("CrazyHacks", "http://www.crazy-hacks.org/wiki/index.php?title="),
  85. ("CreativeCommons", "http://www.creativecommons.org/licenses/"),
  86. ("CreativeCommonsWiki", "http://wiki.creativecommons.org/"),
  87. ("CreaturesWiki", "http://creatures.wikia.com/wiki/"),
  88. ("CxEJ", "http://esperanto.blahus.cz/cxej/vikio/index.php/"),
  89. ("DCDatabase", "http://dc.wikia.com/"),
  90. ("DCMA", "http://www.christian-morgenstern.de/dcma/"),
  91. ("DOI", "http://dx.doi.org/"),
  92. ("DRAE", "http://lema.rae.es/drae/?val="),
  93. ("DWJWiki", "http://www.suberic.net/cgi-bin/dwj/wiki.cgi?"),
  94. ("Dcc", "http://www.dccwiki.com/"),
  95. ("DejaNews", "http://www.deja.com/=dnc/getdoc.xp?AN="),
  96. ("Delicious", "http://www.delicious.com/tag/"),
  97. ("Devmo", "https://developer.mozilla.org/en/docs/"),
  98. ("Dict", "http://www.dict.org/bin/Dict?Database=*&Form=Dict1&Strategy=*&Query="),
  99. ("Dictionary", "http://www.dict.org/bin/Dict?Database=*&Form=Dict1&Strategy=*&Query="),
  100. ("Disinfopedia", "http://www.sourcewatch.org/wiki.phtml?title="),
  101. ("DocBook", "http://wiki.docbook.org/topic/"),
  102. ("Donate", "http://donate.wikimedia.org/wiki/"),
  103. ("Dreamhost", "http://wiki.dreamhost.com/index.php/"),
  104. ("DrumCorpsWiki", "http://www.drumcorpswiki.com/index.php/"),
  105. ("ELibre", "http://enciclopedia.us.es/index.php/"),
  106. ("EcoReality", "http://www.EcoReality.org/wiki/"),
  107. ("EcxeI", "http://www.ikso.net/cgi-bin/wiki.pl?"),
  108. ("EmacsWiki", "http://www.emacswiki.org/cgi-bin/wiki.pl?"),
  109. ("Encyc", "http://encyc.org/wiki/"),
  110. ("EnergieWiki", "http://www.netzwerk-energieberater.de/wiki/index.php/"),
  111. ("EoKulturCentro", "http://esperanto.toulouse.free.fr/nova/wikini/wakka.php?wiki="),
  112. ("Etherpad", "http://etherpad.wikimedia.org/"),
  113. ("Ethnologue", "http://www.ethnologue.com/show_language.asp?code="),
  114. ("EthnologueFamily", "http://www.ethnologue.com/show_family.asp?subid="),
  115. ("EvoWiki", "http://wiki.cotch.net/index.php/"),
  116. ("Exotica", "http://www.exotica.org.uk/wiki/"),
  117. ("EĉeI", "http://www.ikso.net/cgi-bin/wiki.pl?"),
  118. ("FanimutationWiki", "http://wiki.animutationportal.com/index.php/"),
  119. ("FinalEmpire", "http://final-empire.sourceforge.net/cgi-bin/wiki.pl?"),
  120. ("FinalFantasy", "http://finalfantasy.wikia.com/wiki/"),
  121. ("Finnix", "http://www.finnix.org/"),
  122. ("FlickrPhoto", "http://www.flickr.com/photo.gne?id="),
  123. ("FlickrUser", "http://www.flickr.com/people/"),
  124. ("FloralWIKI", "http://www.floralwiki.co.uk/wiki/"),
  125. ("FlyerWiki-de", "http://de.flyerwiki.net/index.php/"),
  126. ("Foldoc", "http://foldoc.org/"),
  127. ("ForthFreak", "http://wiki.forthfreak.net/index.cgi?"),
  128. ("Foundation", "http://wikimediafoundation.org/wiki/"),
  129. ("FoxWiki", "http://fox.wikis.com/wc.dll?Wiki~"),
  130. ("FreeBSDman", "http://www.FreeBSD.org/cgi/man.cgi?apropos=1&query="),
  131. ("FreeBio", "http://freebiology.org/wiki/"),
  132. ("FreeCultureWiki", "http://wiki.freeculture.org/index.php/"),
  133. ("FreeFeel", "http://freefeel.org/wiki/"),
  134. ("Freedomdefined", "http://freedomdefined.org/"),
  135. ("FreekiWiki", "http://wiki.freegeek.org/index.php/"),
  136. ("Freenode", "http://ganfyd.org/index.php?title="),
  137. ("Gardenology", "http://www.gardenology.org/wiki/"),
  138. ("GaussWiki", "http://gauss.ffii.org/"),
  139. ("GenWiki", "http://wiki.genealogy.net/index.php/"),
  140. ("Gentoo-Wiki", "http://gentoo-wiki.com/"),
  141. ("Gerrit", "https://gerrit.wikimedia.org/r/"),
  142. ("Git", "https://gerrit.wikimedia.org/r/gitweb?p=mediawiki/a=log;h=refs/heads/master;"),
  143. ("GlobalVoices", "http://cyber.law.harvard.edu/dyn/globalvoices/wiki/"),
  144. ("GlossarWiki", "http://glossar.hs-augsburg.de/"),
  145. ("GlossaryWiki", "http://glossary.hs-augsburg.de/"),
  146. ("Google", "http://www.google.com/search?q="),
  147. ("GoogleDefine", "http://www.google.com/search?q=define:"),
  148. ("GoogleGroups", "http://groups.google.com/groups?q="),
  149. ("GotAMac", "http://www.got-a-mac.org/"),
  150. ("GreatLakesWiki", "http://greatlakeswiki.org/index.php/"),
  151. ("GuildWarsWiki", "http://www.wiki.guildwars.com/wiki/"),
  152. ("Guildwiki", "http://guildwars.wikia.com/wiki/"),
  153. ("H2Wiki", "http://halowiki.net/p/"),
  154. ("HRFWiki", "http://fanstuff.hrwiki.org/index.php/"),
  155. ("HRWiki", "http://www.hrwiki.org/index.php/"),
  156. ("HammondWiki", "http://www.dairiki.org/HammondWiki/index.php3?"),
  157. ("HupWiki", "http://wiki.hup.hu/index.php/"),
  158. ("IMDbCharacter", "http://www.imdb.com/character/ch/"),
  159. ("IMDbCompany", "http://www.imdb.com/company/co/"),
  160. ("IMDbName", "http://www.imdb.com/name/nm/"),
  161. ("IMDbTitle", "http://www.imdb.com/title/tt/"),
  162. ("IRC", "http://www.sil.org/iso639-3/documentation.asp?id="),
  163. ("ISSN", "http://www.worldcat.org/issn/"),
  164. ("Incubator", "http://incubator.wikimedia.org/wiki/"),
  165. ("Infosecpedia", "http://infosecpedia.org/wiki/"),
  166. ("Infosphere", "http://theinfosphere.org/"),
  167. ("Iuridictum", "http://iuridictum.pecina.cz/w/"),
  168. ("JEFO", "http://esperanto-jeunes.org/wiki/"),
  169. ("JSTOR", "http://www.jstor.org/journals/"),
  170. ("JamesHoward", "http://jameshoward.us/"),
  171. ("JavaNet", "http://wiki.java.net/bin/view/Main/"),
  172. ("Javapedia", "http://wiki.java.net/bin/view/Javapedia/"),
  173. ("JiniWiki", "http://www.cdegroot.com/cgi-bin/jini?"),
  174. ("Jira", "https://jira.toolserver.org/browse/"),
  175. ("JspWiki", "http://www.ecyrd.com/JSPWiki/Wiki.jsp?page="),
  176. ("Kamelo", "http://kamelopedia.mormo.org/index.php/"),
  177. ("Karlsruhe", "http://ka.stadtwiki.net/"),
  178. ("KerimWiki", "http://wiki.oxus.net/"),
  179. ("KinoWiki", "http://kino.skripov.com/index.php/"),
  180. ("KmWiki", "http://kmwiki.wikispaces.com/"),
  181. ("KontuWiki", "http://kontu.merri.net/wiki/"),
  182. ("KoslarWiki", "http://wiki.koslar.de/index.php/"),
  183. ("Kpopwiki", "http://www.kpopwiki.com/"),
  184. ("LISWiki", "http://liswiki.org/wiki/"),
  185. ("LQWiki", "http://wiki.linuxquestions.org/wiki/"),
  186. ("LinguistList", "http://linguistlist.org/forms/langs/LLDescription.cfm?code="),
  187. ("LinuxWiki", "http://www.linuxwiki.de/"),
  188. ("LinuxWikiDe", "http://www.linuxwiki.de/"),
  189. ("LiteratePrograms", "http://en.literateprograms.org/"),
  190. ("Livepedia", "http://www.livepedia.gr/index.php?title="),
  191. ("Lojban", "http://www.lojban.org/tiki/tiki-index.php?page="),
  192. ("Lostpedia", "http://lostpedia.wikia.com/wiki/"),
  193. ("LugKR", "http://lug-kr.sourceforge.net/cgi-bin/lugwiki.pl?"),
  194. ("Luxo", "http://toolserver.org/~luxo/contributions/contributions.php?user="),
  195. ("MW", "http://www.mediawiki.org/wiki/"),
  196. ("MWOD", "http://www.merriam-webster.com/cgi-bin/dictionary?book=Dictionary&va="),
  197. ("MWOT", "http://www.merriam-webster.com/cgi-bin/thesaurus?book=Thesaurus&va="),
  198. ("Mail", "https://lists.wikimedia.org/mailman/listinfo/"),
  199. ("Mariowiki", "http://www.mariowiki.com/"),
  200. ("MarvelDatabase", "http://www.marveldatabase.com/wiki/index.php/"),
  201. ("MeatBall", "http://meatballwiki.org/wiki/"),
  202. ("MediaWikiWiki", "http://www.mediawiki.org/wiki/"),
  203. ("MediaZilla", "https://bugzilla.wikimedia.org/"),
  204. ("MemoryAlpha", "http://memory-alpha.org/wiki/"),
  205. ("MetaWiki", "http://sunir.org/apps/meta.pl?"),
  206. ("MetaWikiPedia", "http://meta.wikimedia.org/wiki/"),
  207. ("Mineralienatlas", "http://www.mineralienatlas.de/lexikon/index.php/"),
  208. ("MoinMoin", "http://moinmo.in/"),
  209. ("Monstropedia", "http://www.monstropedia.org/?title="),
  210. ("MosaPedia", "http://mosapedia.de/wiki/index.php/"),
  211. ("MozCom", "http://mozilla.wikia.com/wiki/"),
  212. ("MozillaWiki", "https://wiki.mozilla.org/"),
  213. ("MozillaZineKB", "http://kb.mozillazine.org/"),
  214. ("MusicBrainz", "http://musicbrainz.org/doc/"),
  215. ("NARA", "http://research.archives.gov/description/"),
  216. ("NKcells", "http://www.nkcells.info/wiki/index.php/"),
  217. ("NoSmoke", "http://no-smok.net/nsmk/"),
  218. ("Nost", "http://nostalgia.wikipedia.org/wiki/"),
  219. ("OEIS", "http://oeis.org/"),
  220. ("OLPC", "http://wiki.laptop.org/go/"),
  221. ("OSI", "http://wiki.tigma.ee/index.php/"),
  222. ("OSMwiki", "http://wiki.openstreetmap.org/wiki/"),
  223. ("OTRS", "https://ticket.wikimedia.org/otrs/index.pl?Action=AgentTicketZoom&TicketID="),
  224. ("OTRSwiki", "http://otrs-wiki.wikimedia.org/wiki/"),
  225. ("OldWikisource", "http://wikisource.org/wiki/"),
  226. ("OneLook", "http://www.onelook.com/?ls=b&w="),
  227. ("OpenFacts", "http://openfacts.berlios.de/index-en.phtml?title="),
  228. ("OpenWetWare", "http://openwetware.org/wiki/"),
  229. ("OpenWiki", "http://openwiki.com/?"),
  230. ("Openlibrary", "http://openlibrary.org/"),
  231. ("Openstreetmap", "http://wiki.openstreetmap.org/wiki/"),
  232. ("Opera7Wiki", "http://operawiki.info/"),
  233. ("OrganicDesign", "http://www.organicdesign.co.nz/"),
  234. ("OrthodoxWiki", "http://orthodoxwiki.org/"),
  235. ("OurMedia", "https://www.socialtext.net/ourmedia/index.cgi?"),
  236. ("Outreach", "http://outreach.wikimedia.org/wiki/"),
  237. ("OutreachWiki", "http://outreach.wikimedia.org/wiki/"),
  238. ("PHWiki", "http://wiki.pocketheaven.com/"),
  239. ("PMEG", "http://www.bertilow.com/pmeg/"),
  240. ("Panawiki", "http://wiki.alairelibre.net/index.php?title="),
  241. ("PatWIKI", "http://gauss.ffii.org/"),
  242. ("PerlNet", "http://perl.net.au/wiki/"),
  243. ("PersonalTelco", "http://www.personaltelco.net/"),
  244. ("PhpWiki", "http://phpwiki.sourceforge.net/phpwiki/index.php?"),
  245. ("PlanetMath", "http://planetmath.org/?op=getobj&from=objects&id="),
  246. ("PyWiki", "http://c2.com/cgi/wiki?"),
  247. ("PythonInfo", "http://www.python.org/cgi-bin/moinmoin/"),
  248. ("PythonWiki", "http://www.pythonwiki.de/"),
  249. ("Quality", "http://quality.wikimedia.org/wiki/"),
  250. ("RFC", "http://tools.ietf.org/html/rfc"),
  251. ("ReVo", "http://purl.org/NET/voko/revo/art/.html"),
  252. ("ReutersWiki", "http://glossary.reuters.com/index.php/"),
  253. ("RheinNeckar", "http://rhein-neckar-wiki.de/"),
  254. ("RoWiki", "http://wiki.rennkuckuck.de/index.php/"),
  255. ("RoboWiki", "http://robowiki.net/?"),
  256. ("SLWiki", "http://wiki.secondlife.com/wiki/"),
  257. ("SMikipedia", "http://www.smiki.de/"),
  258. ("SVGWiki", "http://wiki.svg.org/index.php/"),
  259. ("Scholar", "http://scholar.google.com/scholar?q="),
  260. ("SchoolsWP", "http://schools-wikipedia.org/wiki/"),
  261. ("Scores", "http://imslp.org/wiki/"),
  262. ("Scoutwiki", "http://en.scoutwiki.org/"),
  263. ("Scramble", "http://www.scramble.nl/wiki/index.php?title="),
  264. ("SeaPig", "http://www.seapig.org/"),
  265. ("SeattleWiki", "http://seattlewiki.org/wiki/"),
  266. ("SeattleWireless", "http://seattlewireless.net/?"),
  267. ("SenseisLibrary", "http://senseis.xmp.net/?"),
  268. ("Slashdot", "http://slashdot.org/article.pl?sid="),
  269. ("SourceForge", "http://sourceforge.net/"),
  270. ("Species", "http://species.wikimedia.org/wiki/"),
  271. ("Squeak", "http://wiki.squeak.org/squeak/"),
  272. ("Stewardry", "http://toolserver.org/~pathoschild/stewardry/?wiki="),
  273. ("Strategy", "http://strategy.wikimedia.org/wiki/"),
  274. ("StrategyWiki", "http://strategywiki.org/wiki/"),
  275. ("Sulutil", "http://toolserver.org/~quentinv57/sulinfo/"),
  276. ("SwinBrain", "http://mercury.it.swin.edu.au/swinbrain/index.php/"),
  277. ("SwingWiki", "http://www.swingwiki.org/"),
  278. ("Swtrain", "http://train.spottingworld.com/"),
  279. ("TESOLTaiwan", "http://www.tesol-taiwan.org/wiki/index.php/"),
  280. ("TMBW", "http://tmbw.net/wiki/"),
  281. ("TMwiki", "http://www.EasyTopicMaps.com/?page="),
  282. ("TVIV", "http://tviv.org/wiki/"),
  283. ("TVtropes", "http://www.tvtropes.org/pmwiki/pmwiki.php/Main/"),
  284. ("TWiki", "http://twiki.org/cgi-bin/view/"),
  285. ("TabWiki", "http://www.tabwiki.com/index.php/"),
  286. ("Tavi", "http://tavi.sourceforge.net/"),
  287. ("TclersWiki", "http://wiki.tcl.tk/"),
  288. ("Technorati", "http://www.technorati.com/search/"),
  289. ("Tenwiki", "http://ten.wikipedia.org/wiki/"),
  290. ("Test2wiki", "//test2.wikipedia.org/wiki/"),
  291. ("Testwiki", "http://test.wikipedia.org/wiki/"),
  292. ("Thelemapedia", "http://www.thelemapedia.org/index.php/"),
  293. ("Theopedia", "http://www.theopedia.com/"),
  294. ("ThinkWiki", "http://www.thinkwiki.org/wiki/"),
  295. ("TibiaWiki", "http://tibia.erig.net/"),
  296. ("Ticket", "https://ticket.wikimedia.org/otrs/index.pl?Action=AgentTicketZoom&TicketNumber="),
  297. ("TmNet", "http://www.technomanifestos.net/?"),
  298. ("Tools", "http://toolserver.org/"),
  299. ("Turismo", "http://www.tejo.org/turismo/"),
  300. ("TyvaWiki", "http://www.tyvawiki.org/wiki/"),
  301. ("USEJ", "http://www.tejo.org/usej/"),
  302. ("Uncyclopedia", "http://uncyclopedia.org/wiki/"),
  303. ("Unreal", "http://wiki.beyondunreal.com/wiki/"),
  304. ("Urbandict", "http://www.urbandictionary.com/define.php?term="),
  305. ("UseMod", "http://www.usemod.com/cgi-bin/wiki.pl?"),
  306. ("VIAF", "http://viaf.org/viaf/"),
  307. ("VKoL", "http://kol.coldfront.net/thekolwiki/index.php/"),
  308. ("VLOS", "http://www.thuvienkhoahoc.com/tusach/"),
  309. ("Vinismo", "http://vinismo.com/en/"),
  310. ("VoIPinfo", "http://www.voip-info.org/wiki/view/"),
  311. ("WLUG", "http://www.wlug.org.nz/"),
  312. ("WMDEblog", "//blog.wikimedia.de/"),
  313. ("WMF", "http://wikimediafoundation.org/wiki/"),
  314. ("WMFblog", "http://blog.wikimedia.org/"),
  315. ("Webisodes", "http://www.webisodes.org/"),
  316. ("Wiki", "http://c2.com/cgi/wiki?"),
  317. ("WikiChristian", "http://www.wikichristian.org/index.php?title="),
  318. ("WikiF1", "http://www.wikif1.org/"),
  319. ("WikiFur", "http://en.wikifur.com/wiki/"),
  320. ("WikiIndex", "http://wikiindex.org/"),
  321. ("WikiLemon", "http://wiki.illemonati.com/"),
  322. ("WikiMac-de", "http://apfelwiki.de/wiki/Main/"),
  323. ("WikiSkripta", "http://www.wikiskripta.eu/index.php/"),
  324. ("WikiTI", "http://wikiti.denglend.net/index.php?title="),
  325. ("WikiTravel", "http://wikitravel.org/en/"),
  326. ("WikiTree", "http://wikitree.org/index.php?title="),
  327. ("WikiWeet", "http://wikiweet.nl/wiki/"),
  328. ("WikiWikiWeb", "http://c2.com/cgi/wiki?"),
  329. ("Wikia", "http://www.wikia.com/wiki/c:"),
  330. ("WikiaSite", "http://www.wikia.com/wiki/c:"),
  331. ("Wikibooks", "http://en.wikibooks.org/wiki/"),
  332. ("Wikichat", "http://www.wikichat.org/"),
  333. ("Wikicities", "http://www.wikia.com/wiki/"),
  334. ("Wikicity", "http://www.wikia.com/wiki/c:"),
  335. ("Wikidata", "//wikidata.org/wiki/"),
  336. ("Wikilivres", "http://wikilivres.ca/wiki/"),
  337. ("Wikimedia", "http://wikimediafoundation.org/wiki/"),
  338. ("Wikinews", "http://en.wikinews.org/wiki/"),
  339. ("Wikinfo", "http://www.wikinfo.org/index.php/"),
  340. ("Wikinvest", "http://www.wikinvest.com/"),
  341. ("Wikipaltz", "http://www.wikipaltz.com/wiki/"),
  342. ("Wikipedia", "http://en.wikipedia.org/wiki/"),
  343. ("WikipediaWikipedia", "http://en.wikipedia.org/wiki/Wikipedia:"),
  344. ("Wikiquote", "http://en.wikiquote.org/wiki/"),
  345. ("Wikischool", "http://www.wikischool.de/wiki/"),
  346. ("Wikisource", "http://en.wikisource.org/wiki/"),
  347. ("Wikispecies", "http://species.wikimedia.org/wiki/"),
  348. ("Wikispot", "http://wikispot.org/?action=gotowikipage&v="),
  349. ("Wikitech", "http://wikitech.wikimedia.org/view/"),
  350. ("Wikiversity", "http://en.wikiversity.org/wiki/"),
  351. ("Wikivoyage", "//en.wikivoyage.org/wiki/"),
  352. ("Wiktionary", "http://en.wiktionary.org/wiki/"),
  353. ("Wipipedia", "http://www.londonfetishscene.com/wipi/index.php/"),
  354. ("Wm2005", "http://wikimania2005.wikimedia.org/wiki/"),
  355. ("Wm2006", "http://wikimania2006.wikimedia.org/wiki/"),
  356. ("Wm2007", "http://wikimania2007.wikimedia.org/wiki/"),
  357. ("Wm2008", "http://wikimania2008.wikimedia.org/wiki/"),
  358. ("Wm2009", "http://wikimania2009.wikimedia.org/wiki/"),
  359. ("Wm2010", "http://wikimania2010.wikimedia.org/wiki/"),
  360. ("Wm2011", "http://wikimania2011.wikimedia.org/wiki/"),
  361. ("Wm2011", "http://wikimania2011.wikimedia.org/wiki/"),
  362. ("Wm2013", "//wikimania2013.wikimedia.org/wiki/"),
  363. ("Wmania", "http://wikimania.wikimedia.org/wiki/"),
  364. ("Wmteam", "http://wikimaniateam.wikimedia.org/wiki/"),
  365. ("WoWWiki", "http://www.wowwiki.com/"),
  366. ("Wookieepedia", "http://starwars.wikia.com/wiki/"),
  367. ("Wqy", "http://wqy.sourceforge.net/cgi-bin/index.cgi?"),
  368. ("WurmPedia", "http://www.wurmonline.com/wiki/index.php/"),
  369. ("ZRHwiki", "http://www.zrhwiki.ch/wiki/"),
  370. ("ZUM", "http://wiki.zum.de/"),
  371. ("ZWiki", "http://www.zwiki.org/"),
  372. ("arXiv", "http://arxiv.org/abs/"),
  373. ("betawiki", "http://translatewiki.net/wiki/"),
  374. ("betawikiversity", "http://beta.wikiversity.org/wiki/"),
  375. ("bugzilla", "https://bugzilla.wikimedia.org/show_bug.cgi?id="),
  376. ("bulba", "http://bulbapedia.bulbagarden.net/wiki/"),
  377. ("buzztard", "http://buzztard.org/index.php/"),
  378. ("comune", "http://rete.comuni-italiani.it/wiki/"),
  379. ("dbdump", "http://download.wikimedia.org//latest/"),
  380. ("distributedproofreaders", "http://www.pgdp.net/wiki/"),
  381. ("distributedproofreadersca", "http://www.pgdpcanada.net/wiki/index.php/"),
  382. ("dmoz", "http://www.dmoz.org/"),
  383. ("dmozs", "http://www.dmoz.org/cgi-bin/search?search="),
  384. ("doom_wiki", "http://doom.wikia.com/wiki/"),
  385. ("download", "http://download.wikimedia.org/"),
  386. ("gutenberg", "http://www.gutenberg.org/etext/"),
  387. ("gutenbergwiki", "http://www.gutenberg.org/wiki/"),
  388. ("heroeswiki", "http://heroeswiki.com/"),
  389. ("infoAnarchy", "http://www.infoanarchy.org/en/"),
  390. ("labsconsole", "https://labsconsole.wikimedia.org/wiki/"),
  391. ("lyricwiki", "http://lyrics.wikia.com/"),
  392. ("mailarchive", "http://lists.wikimedia.org/pipermail/"),
  393. ("nostalgia", "http://nostalgia.wikipedia.org/wiki/"),
  394. ("psycle", "http://psycle.sourceforge.net/wiki/"),
  395. ("pyrev", "http://www.mediawiki.org/wiki/Special:Code/pywikipedia/"),
  396. ("qcwiki", "http://wiki.quantumchemistry.net/index.php/"),
  397. ("rev", "http://www.mediawiki.org/wiki/Special:Code/MediaWiki/"),
  398. ("rtfm", "http://s23.org/wiki/"),
  399. ("securewikidc", "https://secure.wikidc.org/"),
  400. ("semantic-mw", "http://www.semantic-mediawiki.org/wiki/"),
  401. ("silcode", "http://www.sil.org/iso639-3/documentation.asp?id="),
  402. ("spcom", "http://spcom.wikimedia.org/wiki/"),
  403. ("stats", "http://stats.wikimedia.org/"),
  404. ("svn", "http://svn.wikimedia.org/viewvc/mediawiki/?view=log"),
  405. ("translatewiki", "http://translatewiki.net/wiki/"),
  406. ("tswiki", "http://wiki.toolserver.org/view/"),
  407. ("usability", "http://usability.wikimedia.org/wiki/"),
  408. ("wg", "http://wg.en.wikipedia.org/wiki/"),
  409. ("wikiHow", "http://www.wikihow.com/"),
  410. ("wikisophia", "http://wikisophia.org/index.php?title="),
  411. ("wmar", "http://www.wikimedia.org.ar/wiki/"),
  412. ("wmau", "http://wikimedia.org.au/wiki/"),
  413. ("wmbd", "//bd.wikimedia.org/wiki/"),
  414. ("wmbe", "http://be.wikimedia.org/wiki/"),
  415. ("wmbr", "http://br.wikimedia.org/wiki/"),
  416. ("wmca", "http://wikimedia.ca/wiki/"),
  417. ("wmch", "http://www.wikimedia.ch/"),
  418. ("wmcl", "http://www.wikimediachile.cl/index.php?title="),
  419. ("wmco", "//co.wikimedia.org/wiki/"),
  420. ("wmcz", "http://meta.wikimedia.org/wiki/Wikimedia_Czech_Republic/"),
  421. ("wmdc", "http://wikimediadc.org/wiki/"),
  422. ("wmde", "http://wikimedia.de/wiki/"),
  423. ("wmdk", "//dk.wikimedia.org/wiki/"),
  424. ("wmee", "//et.wikimedia.org/wiki/"),
  425. ("wmet", "//et.wikimedia.org/wiki/"),
  426. ("wmfi", "http://fi.wikimedia.org/wiki/"),
  427. ("wmfr", "http://wikimedia.fr/"),
  428. ("wmhk", "http://wikimedia.hk/index.php/"),
  429. ("wmhu", "http://wiki.media.hu/wiki/"),
  430. ("wmid", "http://www.wikimedia.or.id/wiki/"),
  431. ("wmil", "http://www.wikimedia.org.il/"),
  432. ("wmin", "http://wiki.wikimedia.in/"),
  433. ("wmit", "http://wiki.wikimedia.it/wiki/"),
  434. ("wmke", "http://wikimedia.or.ke/"),
  435. ("wmmk", "//mk.wikimedia.org/wiki/"),
  436. ("wmmx", "http://mx.wikimedia.org/wiki/"),
  437. ("wmnl", "http://nl.wikimedia.org/wiki/"),
  438. ("wmno", "http://no.wikimedia.org/wiki/"),
  439. ("wmnyc", "http://nyc.wikimedia.org/wiki/"),
  440. ("wmpa-us", "http://pa.us.wikimedia.org/wiki/"),
  441. ("wmph", "http://www.wikimedia.ph/wmph/index.php?title="),
  442. ("wmpl", "http://pl.wikimedia.org/wiki/"),
  443. ("wmpt", "http://wikimedia.pt/"),
  444. ("wmrs", "http://rs.wikimedia.org/wiki/"),
  445. ("wmru", "http://ru.wikimedia.org/wiki/"),
  446. ("wmse", "http://se.wikimedia.org/wiki/"),
  447. ("wmtr", "//tr.wikimedia.org/wiki/"),
  448. ("wmtw", "http://wikimedia.tw/wiki/index.php5/"),
  449. ("wmua", "//ua.wikimedia.org/wiki/"),
  450. ("wmuk", "http://uk.wikimedia.org/wiki/"),
  451. ("wmve", "http://wikimedia.org.ve/index.php/"),
  452. ("wmza", "http://wikimedia.org.za/wiki/"),
  453. ("ĈEJ", "http://esperanto.blahus.cz/cxej/vikio/index.php/"),
  454. ("ZZZ", "http://wiki.zzz.ee/index.php/") ]