WikiLink - The Mediawiki Interface: Difference between revisions
(vvajcomsn.com) |
No edit summary |
||
(49 intermediate revisions by 30 users not shown) | |||
Line 33: | Line 33: | ||
|} |
|} |
||
====Importing the package in Mathematica==== |
|||
<a href=' http://hairremovalplus.lenny.dnip.net '> hairremovalplus </a> <br /> |
|||
If you're not using KnotTheory`, first, you'll need to set some paths, so WikiLink` can find the java files it needs. You need to add the "mathematica/" subdirectory of the WikiLink distribution to the Mathematica $Path. |
|||
<a href=' http://hairremovalpluscom.lenny.dnip.net '> hairremovalpluscom </a> <br /> |
|||
<a href=' http://hairremovalplus-com.lenny.dnip.net '> hairremovalplus com </a> <br /> |
|||
<!--$$WikiLinkPath = "/path/to/WikiLink/mathematica/";$$--> |
|||
<a href=' http://wwwhairremovalpluscom.lenny.dnip.net '> wwwhairremovalpluscom </a> <br /> |
|||
<!--Robot Land, no human edits to "END"--> |
|||
<a href=' http://www-hairremovalplus-com.lenny.dnip.net '> www hairremovalplus com </a> <br /> |
|||
{{In| |
|||
<a href=' http://wwwhairremovalplus.lenny.dnip.net '> wwwhairremovalplus </a> <br /> |
|||
n = 1 | |
|||
<a href=' http://www-hairremovalplus.lenny.dnip.net '> www hairremovalplus </a> <br /> |
|||
in = <nowiki>WikiLinkPath = "/path/to/WikiLink/mathematica/";</nowiki>}} |
|||
<a href=' http://revitol.lenny.dnip.net '> revitol </a> <br /> |
|||
<!--END--> |
|||
<a href=' http://revitolcom-skin-brightener-cream-.lenny.dnip.net '> revitolcom skin brightener cream </a> <br /> |
|||
<!--$$AppendTo[$Path, WikiLinkPath];$$--> |
|||
<a href=' http://revitol-com-skin-brightener-cream-.lenny.dnip.net '> revitol com skin brightener cream </a> <br /> |
|||
<!--Robot Land, no human edits to "END"--> |
|||
<a href=' http://wwwrevitolcom-skin-brightener-cream-.lenny.dnip.net '> wwwrevitolcom skin brightener cream </a> <br /> |
|||
{{In| |
|||
<a href=' http://www-revitol-com-skin-brightener-cream-.lenny.dnip.net '> www revitol com skin brightener cream </a> <br /> |
|||
n = 2 | |
|||
<a href=' http://wwwrevitol.lenny.dnip.net '> wwwrevitol </a> <br /> |
|||
in = <nowiki>AppendTo[$Path, WikiLinkPath];</nowiki>}} |
|||
<a href=' http://www-revitol.lenny.dnip.net '> www revitol </a> <br /> |
|||
<!--END--> |
|||
<a href=' http://revitol.lenny.dnip.net '> revitol </a> <br /> |
|||
<!--$$<<WikiLink`$$--> |
|||
<a href=' http://revitolcom-skin-exfoliator-.lenny.dnip.net '> revitolcom skin exfoliator </a> <br /> |
|||
<!--Robot Land, no human edits to "END"--> |
|||
<a href=' http://revitol-com-skin-exfoliator-.lenny.dnip.net '> revitol com skin exfoliator </a> <br /> |
|||
{{In| |
|||
<a href=' http://wwwrevitolcom-skin-exfoliator-.lenny.dnip.net '> wwwrevitolcom skin exfoliator </a> <br /> |
|||
n = 3 | |
|||
<a href=' http://www-revitol-com-skin-exfoliator-.lenny.dnip.net '> www revitol com skin exfoliator </a> <br /> |
|||
in = <nowiki><<WikiLink`</nowiki>}} |
|||
<a href=' http://wwwrevitol.lenny.dnip.net '> wwwrevitol </a> <br /> |
|||
<!--END--> |
|||
<a href=' http://www-revitol.lenny.dnip.net '> www revitol </a> <br /> |
|||
<a href=' http://revitol.lenny.dnip.net '> revitol </a> <br /> |
|||
If you've already loaded KnotTheory` (e.g., with the statement <code><<KnotTheory`</code>), you can simply begin at this point. |
|||
<a href=' http://revitolcom-stretch-mark-prevention-.lenny.dnip.net '> revitolcom stretch mark prevention </a> <br /> |
|||
<a href=' http://revitol-com-stretch-mark-prevention-.lenny.dnip.net '> revitol com stretch mark prevention </a> <br /> |
|||
We then try to connect to the wiki. Executing this line will prompt you for a username and password. |
|||
<a href=' http://wwwrevitolcom-stretch-mark-prevention-.lenny.dnip.net '> wwwrevitolcom stretch mark prevention </a> <br /> |
|||
<!--This instruction is just a fake; we're not really running this one in Mathematica, because it makes a new WikiLink session! :-) |
|||
<a href=' http://www-revitol-com-stretch-mark-prevention-.lenny.dnip.net '> www revitol com stretch mark prevention </a> <br /> |
|||
<!--CreateWikiConnection[ |
|||
<a href=' http://wwwrevitol.lenny.dnip.net '> wwwrevitol </a> <br /> |
|||
"http://katlas.math.toronto.edu/w/index.php", |
|||
<a href=' http://www-revitol.lenny.dnip.net '> www revitol </a> <br /> |
|||
InputString["Enter Your Username:"], |
|||
<a href=' http://herbalbiz.lenny.dnip.net '> herbalbiz </a> <br /> |
|||
InputString["Enter Your Password:"] |
|||
<a href=' http://herbalbizcom.lenny.dnip.net '> herbalbizcom </a> <br /> |
|||
]--> |
|||
<a href=' http://herbalbiz-com.lenny.dnip.net '> herbalbiz com </a> <br /> |
|||
{{In| |
|||
<a href=' http://wwwherbalbizcom.lenny.dnip.net '> wwwherbalbizcom </a> <br /> |
|||
n = 6 | |
|||
<a href=' http://www-herbalbiz-com.lenny.dnip.net '> www herbalbiz com </a> <br /> |
|||
in = <nowiki>CreateWikiConnection[ |
|||
<a href=' http://wwwherbalbiz.lenny.dnip.net '> wwwherbalbiz </a> <br /> |
|||
"http://katlas.math.toronto.edu/w/index.php", |
|||
<a href=' http://www-herbalbiz.lenny.dnip.net '> www herbalbiz </a> <br /> |
|||
InputString["Enter Your Username:"], |
|||
<a href=' http://firmdose.lenny.dnip.net '> firmdose </a> <br /> |
|||
InputString["Enter Your Password:"] |
|||
<a href=' http://firmdosecom.lenny.dnip.net '> firmdosecom </a> <br /> |
|||
]</nowiki>}} |
|||
<a href=' http://firmdose-com.lenny.dnip.net '> firmdose com </a> <br /> |
|||
<a href=' http://wwwfirmdosecom.lenny.dnip.net '> wwwfirmdosecom </a> <br /> |
|||
The function <code>WikiUserName[]</code> checks that we're logged in |
|||
<a href=' http://www-firmdose-com.lenny.dnip.net '> www firmdose com </a> <br /> |
|||
<!--$$?WikiUserName$$--> |
|||
<!--Robot Land, no human edits to "END"--> |
|||
{{HelpLine| |
|||
n = 4 | |
|||
in = <nowiki>WikiUserName</nowiki> | |
|||
out= <nowiki>WikiUserName[] returns either the name of the user you are logged in as, your IP address if you're not logged in, or $Failed if something more complicated has happened!</nowiki>}} |
|||
<!--END--> |
|||
<!--$$WikiUserName[]$$--> |
|||
<!--Robot Land, no human edits to "END"--> |
|||
{{InOut| |
|||
n = 5 | |
|||
in = <nowiki>WikiUserName[]</nowiki> | |
|||
out= <nowiki>ScottManualRobot</nowiki>}} |
|||
<!--END--> |
|||
====Usage==== |
====Usage==== |
||
Line 200: | Line 214: | ||
<!--END--> |
<!--END--> |
||
====Troubleshooting==== |
|||
<a href=' http://wwwintensevolumenl.borovica.dtdns.net '> wwwintensevolumenl </a> <br /> |
|||
The instruction <code>ShowJavaConsole[]</code> will bring up a window in which some debugging information is displayed. |
|||
<a href=' http://www-intensevolume-nl.borovica.dtdns.net '> www intensevolume nl </a> <br /> |
|||
<a href=' http://wwwintensevolume.borovica.dtdns.net '> wwwintensevolume </a> <br /> |
|||
====Compatibility==== |
|||
<a href=' http://www-intensevolume.borovica.dtdns.net '> www intensevolume </a> <br /> |
|||
WikiLink (with some modifications made in July 2007) appears to work with mediawiki 1.10.1. Bug reports appreciated! |
|||
<a href=' http://sizegainpro.borovica.dtdns.net '> sizegainpro </a> <br /> |
|||
<a href=' http://sizegainprocom.borovica.dtdns.net '> sizegainprocom </a> <br /> |
|||
WikiLink has been tested against mediawiki 1.4.5beta3 and 1.4.7. |
|||
<a href=' http://sizegainpro-com.borovica.dtdns.net '> sizegainpro com </a> <br /> |
|||
<a href=' http://wwwsizegainprocom.borovica.dtdns.net '> wwwsizegainprocom </a> <br /> |
|||
WikiLink has known issues on mediawiki 1.5.0. Retrieving multiple pages at once is broken. This appears to be a mediawiki bug, and will not be fixed. The same problem does not occur on mediawiki 1.5.8. --[[User:Scott|Scott]] 10:56, 27 Mar 2006 (EST) |
|||
<a href=' http://www-sizegainpro-com.borovica.dtdns.net '> www sizegainpro com </a> <br /> |
|||
<a href=' http://wwwsizegainpro.borovica.dtdns.net '> wwwsizegainpro </a> <br /> |
|||
<a href=' http://www-sizegainpro.borovica.dtdns.net '> www sizegainpro </a> <br /> |
|||
<a href=' http://eengroterepenis.borovica.dtdns.net '> eengroterepenis </a> <br /> |
|||
<a href=' http://eengroterepenisnl.borovica.dtdns.net '> eengroterepenisnl </a> <br /> |
|||
<a href=' http://eengroterepenis-nl.borovica.dtdns.net '> eengroterepenis nl </a> <br /> |
|||
<a href=' http://wwweengroterepenisnl.borovica.dtdns.net '> wwweengroterepenisnl </a> <br /> |
|||
<a href=' http://www-eengroterepenis-nl.borovica.dtdns.net '> www eengroterepenis nl </a> <br /> |
|||
<a href=' http://wwweengroterepenis.borovica.dtdns.net '> wwweengroterepenis </a> <br /> |
|||
<a href=' http://www-eengroterepenis.borovica.dtdns.net '> www eengroterepenis </a> <br /> |
|||
<a href=' http://stopmetroken.borovica.dtdns.net '> stopmetroken </a> <br /> |
|||
<a href=' http://stopmetrokencom.borovica.dtdns.net '> stopmetrokencom </a> <br /> |
|||
<a href=' http://stopmetroken-com.borovica.dtdns.net '> stopmetroken com </a> <br /> |
|||
<a href=' http://wwwstopmetrokencom.borovica.dtdns.net '> wwwstopmetrokencom </a> <br /> |
|||
<a href=' http://www-stopmetroken-com.borovica.dtdns.net '> www stopmetroken com </a> <br /> |
|||
<a href=' http://wwwstopmetroken.borovica.dtdns.net '> wwwstopmetroken </a> <br /> |
|||
<a href=' http://www-stopmetroken.borovica.dtdns.net '> www stopmetroken </a> <br /> |
|||
<a href=' http://anatril.borovica.dtdns.net '> anatril </a> <br /> |
|||
<a href=' http://anatrilcom.borovica.dtdns.net '> anatrilcom </a> <br /> |
|||
<a href=' http://anatril-com.borovica.dtdns.net '> anatril com </a> <br /> |
|||
<a href=' http://wwwanatrilcom.borovica.dtdns.net '> wwwanatrilcom </a> <br /> |
|||
<a href=' http://www-anatril-com.borovica.dtdns.net '> www anatril com </a> <br /> |
|||
<a href=' http://wwwanatril.borovica.dtdns.net '> wwwanatril </a> <br /> |
|||
<a href=' http://www-anatril.borovica.dtdns.net '> www anatril </a> <br /> |
|||
<a href=' http://dermapure.borovica.dtdns.net '> dermapure </a> <br /> |
|||
<a href=' http://dermapurecom.borovica.dtdns.net '> dermapurecom </a> <br /> |
|||
<a href=' http://dermapure-com.borovica.dtdns.net '> dermapure com </a> <br /> |
|||
<a href=' http://wwwdermapurecom.borovica.dtdns.net '> wwwdermapurecom </a> <br /> |
|||
<a href=' http://www-dermapure-com.borovica.dtdns.net '> www dermapure com </a> <br /> |
|||
<a href=' http://wwwdermapure.borovica.dtdns.net '> wwwdermapure </a> <br /> |
|||
<a href=' http://www-dermapure.borovica.dtdns.net '> www dermapure </a> <br /> |
|||
<a href=' http://enlargepatch.borovica.dtdns.net '> enlargepatch </a> <br /> |
|||
I expect WikiGetPage text to continue working in mediawiki 1.5 and beyond, because it uses the stable interface [[Special:Export]]. Logging in and setting pages will quite likely break in the next version. If you've tried this, please let me know about your experiences. I'm hoping that soon (1.5?) [[Special:Import]] will become available, and I can switch to using this. --[[User:Scott|Scott]] 15:57, 31 Aug 2005 (EDT) |
|||
<a href=' http://enlargepatchcom.bailando.dtdns.net '> enlargepatchcom </a> <br /> |
|||
<a href=' http://enlargepatch-com.bailando.dtdns.net '> enlargepatch com </a> <br /> |
|||
<a href=' http://wwwenlargepatchcom.bailando.dtdns.net '> wwwenlargepatchcom </a> <br /> |
|||
<a href=' http://www-enlargepatch-com.bailando.dtdns.net '> www enlargepatch com </a> <br /> |
|||
<a href=' http://wwwenlargepatch.bailando.dtdns.net '> wwwenlargepatch </a> <br /> |
|||
<a href=' http://www-enlargepatch.bailando.dtdns.net '> www enlargepatch </a> <br /> |
|||
<a href=' http://powerenlarge.bailando.dtdns.net '> powerenlarge </a> <br /> |
|||
<a href=' http://powerenlargecom.bailando.dtdns.net '> powerenlargecom </a> <br /> |
|||
<a href=' http://powerenlarge-com.bailando.dtdns.net '> powerenlarge com </a> <br /> |
|||
<a href=' http://wwwpowerenlargecom.bailando.dtdns.net '> wwwpowerenlargecom </a> <br /> |
|||
<a href=' http://www-powerenlarge-com.bailando.dtdns.net '> www powerenlarge com </a> <br /> |
|||
<a href=' http://wwwpowerenlarge.bailando.dtdns.net '> wwwpowerenlarge </a> <br /> |
|||
<a href=' http://www-powerenlarge.bailando.dtdns.net '> www powerenlarge </a> <br /> |
|||
<a href=' http://patchjp.bailando.dtdns.net '> patchjp </a> <br /> |
|||
<a href=' http://patchjpcom.bailando.dtdns.net '> patchjpcom </a> <br /> |
|||
<a href=' http://patchjp-com.bailando.dtdns.net '> patchjp com </a> <br /> |
|||
<a href=' http://wwwpatchjpcom.bailando.dtdns.net '> wwwpatchjpcom </a> <br /> |
|||
<a href=' http://www-patchjp-com.bailando.dtdns.net '> www patchjp com </a> <br /> |
|||
<a href=' http://wwwpatchjp.bailando.dtdns.net '> wwwpatchjp </a> <br /> |
|||
<a href=' http://www-patchjp.bailando.dtdns.net '> www patchjp </a> <br /> |
|||
<a href=' http://power-enlarge.bailando.dtdns.net '> power enlarge </a> <br /> |
|||
<a href=' http://power-enlargecom.bailando.dtdns.net '> power enlargecom </a> <br /> |
|||
<a href=' http://power-enlarge-com.bailando.dtdns.net '> power enlarge com </a> <br /> |
|||
<a href=' http://wwwpower-enlargecom.bailando.dtdns.net '> wwwpower enlargecom </a> <br /> |
|||
<a href=' http://www-power-enlarge-com.bailando.dtdns.net '> www power enlarge com </a> <br /> |
|||
<a href=' http://wwwpower-enlarge.bailando.dtdns.net '> wwwpower enlarge </a> <br /> |
|||
<a href=' http://www-power-enlarge.bailando.dtdns.net '> www power enlarge </a> <br /> |
|||
<a href=' http://TeamCyberMed.bailando.dtdns.net '> TeamCyberMed </a> <br /> |
|||
<a href=' http://TeamCyberMedcom.bailando.dtdns.net '> TeamCyberMedcom </a> <br /> |
|||
<a href=' http://TeamCyberMed-com.bailando.dtdns.net '> TeamCyberMed com </a> <br /> |
|||
<a href=' http://wwwTeamCyberMedcom.bailando.dtdns.net '> wwwTeamCyberMedcom </a> <br /> |
|||
<a href=' http://www-TeamCyberMed-com.bailando.dtdns.net '> www TeamCyberMed com </a> <br /> |
|||
<a href=' http://wwwTeamCyberMed.bailando.dtdns.net '> wwwTeamCyberMed </a> <br /> |
|||
<a href=' http://www-TeamCyberMed.bailando.dtdns.net '> www TeamCyberMed </a> <br /> |
|||
<a href=' http://ultra-bronze.bailando.dtdns.net '> ultra bronze </a> <br /> |
|||
<a href=' http://ultra-bronzecom.bailando.dtdns.net '> ultra bronzecom </a> <br /> |
|||
<a href=' http://ultra-bronze-com.bailando.dtdns.net '> ultra bronze com </a> <br /> |
|||
<a href=' http://wwwultra-bronzecom.bailando.dtdns.net '> wwwultra bronzecom </a> <br /> |
|||
<a href=' http://www-ultra-bronze-com.bailando.dtdns.net '> www ultra bronze com </a> <br /> |
|||
<a href=' http://wwwultra-bronze.bailando.dtdns.net '> wwwultra bronze </a> <br /> |
|||
====Todo==== |
====Todo==== |
||
Line 288: | Line 232: | ||
All of the Mathematica notebooks in [[:Category:Knot Atlas Maintenance Software]] rely on WikiLink, and so are good examples of how to use it. |
All of the Mathematica notebooks in [[:Category:Knot Atlas Maintenance Software]] rely on WikiLink, and so are good examples of how to use it. |
||
You may also be interested in the Wikipedia page on [http://en.wikipedia.org/wiki/Wikipedia:Bot mediawiki bots], and in particular the [http://sourceforge.net/projects/pywikipediabot/ Python Wikipedia Robot Framework]. |
You may also be interested in the Wikipedia page on [http://en.wikipedia.org/wiki/Wikipedia:Bot mediawiki bots], and in particular the [http://sourceforge.net/projects/pywikipediabot/ Python Wikipedia Robot Framework]. |
||
<a href=' http://www-intensevolume-nl.golddsun.dtdns.net '> www intensevolume nl </a> <br /> |
|||
<a href=' http://wwwintensevolume.golddsun.dtdns.net '> wwwintensevolume </a> <br /> |
|||
<a href=' http://www-intensevolume.golddsun.dtdns.net '> www intensevolume </a> <br /> |
|||
<a href=' http://sizegainpro.golddsun.dtdns.net '> sizegainpro </a> <br /> |
|||
<a href=' http://sizegainprocom.golddsun.dtdns.net '> sizegainprocom </a> <br /> |
|||
<a href=' http://sizegainpro-com.golddsun.dtdns.net '> sizegainpro com </a> <br /> |
|||
<a href=' http://wwwsizegainprocom.golddsun.dtdns.net '> wwwsizegainprocom </a> <br /> |
|||
<a href=' http://www-sizegainpro-com.golddsun.dtdns.net '> www sizegainpro com </a> <br /> |
|||
<a href=' http://wwwsizegainpro.golddsun.dtdns.net '> wwwsizegainpro </a> <br /> |
|||
<a href=' http://www-sizegainpro.golddsun.dtdns.net '> www sizegainpro </a> <br /> |
|||
<a href=' http://eengroterepenis.golddsun.dtdns.net '> eengroterepenis </a> <br /> |
|||
<a href=' http://eengroterepenisnl.golddsun.dtdns.net '> eengroterepenisnl </a> <br /> |
|||
<a href=' http://eengroterepenis-nl.golddsun.dtdns.net '> eengroterepenis nl </a> <br /> |
|||
<a href=' http://wwweengroterepenisnl.golddsun.dtdns.net '> wwweengroterepenisnl </a> <br /> |
|||
<a href=' http://www-eengroterepenis-nl.golddsun.dtdns.net '> www eengroterepenis nl </a> <br /> |
|||
<a href=' http://wwweengroterepenis.golddsun.dtdns.net '> wwweengroterepenis </a> <br /> |
|||
<a href=' http://www-eengroterepenis.golddsun.dtdns.net '> www eengroterepenis </a> <br /> |
|||
<a href=' http://stopmetroken.golddsun.dtdns.net '> stopmetroken </a> <br /> |
|||
<a href=' http://stopmetrokencom.golddsun.dtdns.net '> stopmetrokencom </a> <br /> |
|||
<a href=' http://stopmetroken-com.golddsun.dtdns.net '> stopmetroken com </a> <br /> |
|||
<a href=' http://wwwstopmetrokencom.golddsun.dtdns.net '> wwwstopmetrokencom </a> <br /> |
|||
<a href=' http://www-stopmetroken-com.golddsun.dtdns.net '> www stopmetroken com </a> <br /> |
|||
<a href=' http://wwwstopmetroken.golddsun.dtdns.net '> wwwstopmetroken </a> <br /> |
|||
<a href=' http://www-stopmetroken.golddsun.dtdns.net '> www stopmetroken </a> <br /> |
|||
<a href=' http://anatril.golddsun.dtdns.net '> anatril </a> <br /> |
|||
<a href=' http://anatrilcom.golddsun.dtdns.net '> anatrilcom </a> <br /> |
|||
<a href=' http://anatril-com.golddsun.dtdns.net '> anatril com </a> <br /> |
|||
<a href=' http://wwwanatrilcom.golddsun.dtdns.net '> wwwanatrilcom </a> <br /> |
|||
<a href=' http://www-anatril-com.golddsun.dtdns.net '> www anatril com </a> <br /> |
|||
<a href=' http://wwwanatril.golddsun.dtdns.net '> wwwanatril </a> <br /> |
|||
<a href=' http://www-anatril.golddsun.dtdns.net '> www anatril </a> <br /> |
|||
<a href=' http://dermapure.golddsun.dtdns.net '> dermapure </a> <br /> |
|||
<a href=' http://dermapurecom.golddsun.dtdns.net '> dermapurecom </a> <br /> |
|||
<a href=' http://dermapure-com.golddsun.dtdns.net '> dermapure com </a> <br /> |
|||
<a href=' http://wwwdermapurecom.golddsun.dtdns.net '> wwwdermapurecom </a> <br /> |
|||
<a href=' http://www-dermapure-com.golddsun.dtdns.net '> www dermapure com </a> <br /> |
|||
<a href=' http://wwwdermapure.golddsun.dtdns.net '> wwwdermapure </a> <br /> |
|||
<a href=' http://www-dermapure.golddsun.dtdns.net '> www dermapure </a> <br /> |
|||
<a href=' http://enlargepatch.golddsun.dtdns.net '> enlargepatch </a> <br /> |
Latest revision as of 00:41, 28 May 2009
WikiLink is actually two separate things; firstly, a java class for interfacing with a mediawiki server, and secondly, a Mathematica package providing a wrapper around this. This page documents the Mathematica package, while the java class, and its addition functionality, will be documented elsewhere.
WikiLink is available as a standalone package, suitable for use with any Mediawiki installation, and is included in the KnotTheory` package.
License
WikiLink.nb, WikiLink.m and wikilink.jar are copyright Scott Morrison, available under your choice of the MIT, Apache or GPL licenses. The other components are copyright by other parties, all available under the Apache license.
Download
If you already have KnotTheory` installed, there's no need to install anything. The functionality of WikiLink is available as soon as you open KnotTheory`.
Otherwise, download WikiLink.zip. Unzip this anywhere you like. This will create a subdirectory called WikiLink, containing (at least) these files:
Filename | Description |
---|---|
mathematica/WikiLink.nb | The Mathematica notebook containing wrapper function definitions. |
mathematica/WikiLink.m | The Mathematica package automatically generated from WikiLink.nb. |
wikilink.jar | The WikiLink java classes and source code. |
jars/jdom.jar |
Libraries (all available under either GPL or the Apache license) required by wikilink.jar |
Importing the package in Mathematica
If you're not using KnotTheory`, first, you'll need to set some paths, so WikiLink` can find the java files it needs. You need to add the "mathematica/" subdirectory of the WikiLink distribution to the Mathematica $Path.
In[1]:=
|
WikiLinkPath = "/path/to/WikiLink/mathematica/";
|
In[2]:=
|
AppendTo[$Path, WikiLinkPath];
|
In[3]:=
|
<<WikiLink`
|
If you've already loaded KnotTheory` (e.g., with the statement <<KnotTheory`
), you can simply begin at this point.
We then try to connect to the wiki. Executing this line will prompt you for a username and password.
In[6]:=
|
CreateWikiConnection[
"http://katlas.math.toronto.edu/w/index.php",
InputString["Enter Your Username:"],
InputString["Enter Your Password:"]
]
|
The function WikiUserName[]
checks that we're logged in
|
In[5]:=
|
WikiUserName[]
|
Out[5]=
|
ScottManualRobot
|
Usage
WikiLink` provides functions for checking your login status, getting and setting pages, as well as transparently extending some of Mathematica's string manipulation functions to wiki pages.
|
|
|
|
|
Thus for example after
In[11]:=
|
WikiSetPageText["Sandbox", "A robotic edit, at 19:39, 31-August-2005."]
|
Out[11]=
|
True
|
we get
In[12]:=
|
WikiGetPageText["Sandbox"]
|
Out[12]=
|
A robotic edit, at 19:39, 31-August-2005.
|
The function WikiSetPageTexts
is most useful for batch uploads, as it does considerably more error checking, and filters out edits which won't change the page text. It takes as argument a list of {"title", "text"}
pairs, and returns a list of those pairs which failed.
In[13]:=
|
WikiSetPageTexts[{{"Sandbox", "A robotic edit, by --~~"<>"~~"}, {"Sandbox2", "The determinant of the knot [[3_1]] is 3."}}]
|
Out[13]=
|
{}
|
In[14]:=
|
WikiGetPageText["Sandbox2"]
|
Out[14]=
|
The determinant of the knot [[3_1]] is 3.
|
String manipulation functions
WikiLink`
provides functions WikiPageMatchQ, WikiPageFreeQ, WikiStringReplace and WikiStringCases. Each function works likes its usual Mathematica partner,
StringMatchQ,
StringFreeQ,
StringReplace
or StringCases. Instead of providing a string, or list of strings, as the first argument, you should give the name of a page, or a list of names.
You can use these to perform all sorts of editing tricks.
In[15]:=
|
WikiPageMatchQ[{"Sandbox", "Sandbox2"}, "determinant"]
|
Out[15]=
|
{False, False}
|
In[16]:=
|
WikiPageFreeQ[{"Sandbox", "Sandbox2"}, "[["~~(DigitCharacter..)~~"_"~~(DigitCharacter..)~~"]]"]
|
Out[16]=
|
{True, False}
|
In[17]:=
|
WikiStringCases[{"Sandbox", "Sandbox2"}, "[["~~ShortestMatch[__]~~"]]"]
|
Out[17]=
|
{{Sandbox, {[[User:ScottManualRobot|ScottManualRobot]]}},
{Sandbox2, {[[3_1]]}}}
|
In[18]:=
|
WikiStringReplace[{"Sandbox", "Sandbox2"}, "robotic edit"->"robotic edit (using WikiLink`)]
|
Out[18]=
|
$Failed
|
In[19]:=
|
WikiGetPageTexts[{"Sandbox", "Sandbox2"}]
|
Out[19]=
|
{{Sandbox, A robotic edit, by\
--[[User:ScottManualRobot|ScottManualRobot]] 14:54, 18 Feb 2006\
(EST)}, {Sandbox2, The determinant of the knot [[3_1]] is 3.}}
|
Troubleshooting
The instruction ShowJavaConsole[]
will bring up a window in which some debugging information is displayed.
Compatibility
WikiLink (with some modifications made in July 2007) appears to work with mediawiki 1.10.1. Bug reports appreciated!
WikiLink has been tested against mediawiki 1.4.5beta3 and 1.4.7.
WikiLink has known issues on mediawiki 1.5.0. Retrieving multiple pages at once is broken. This appears to be a mediawiki bug, and will not be fixed. The same problem does not occur on mediawiki 1.5.8. --Scott 10:56, 27 Mar 2006 (EST)
I expect WikiGetPage text to continue working in mediawiki 1.5 and beyond, because it uses the stable interface Special:Export. Logging in and setting pages will quite likely break in the next version. If you've tried this, please let me know about your experiences. I'm hoping that soon (1.5?) Special:Import will become available, and I can switch to using this. --Scott 15:57, 31 Aug 2005 (EDT)
Todo
I'd love to create an Ant task which allows uploading a file to a wiki. We could then use this in build scripts for KnotTheory, etc. --Scott 04:07, 17 Sep 2005 (EDT)
See Also
All of the Mathematica notebooks in Category:Knot Atlas Maintenance Software rely on WikiLink, and so are good examples of how to use it.
You may also be interested in the Wikipedia page on mediawiki bots, and in particular the Python Wikipedia Robot Framework.