The WikiDocsConverter is an component of the planned WikiDocs. It is a script that can be activated by WikiDocsModerators and which will copy a specified wiki page from the MusicBrainzWiki to the ModeratedWikiMirror.
- Take the wiki source from one MusicBrainzWiki page and make a new version of that same page on the ShadowWiki.
- Convert urls so that non-WikiDocs pages have an InterWikiLink (see below).
- convert relative urls to absolute urls or something like that ( This is something that is currently done by the WikiWebService. I did not really understand exactly what it does and why it does it).
- Remove unofficial content.
Convert to Inter Wiki Links
When a user sees a WikiDocs page via the WikiWebService, those links that point to other WikiDocs pages should look like normal links, while those links that point to pages which only exist in the MusicBrainzWiki should look like links to somewhere else.
One possible solution is to register the MusicBrainzWiki as a SisterSite to the ShadowWiki. The links to non-WikiDocs pages would then be converted from, say [[Style Guideline|StyleGuideline]] to MBW:StyleGuideline.
In this case, everytime someone copies a page to the ModeratedWikiMirror, the converter has to look over all pages in the ShadowWiki and update the InterWikiLinks. All WikiNames that are not in http://wikidocs.musicbrainz.org/write/TitleIndex?action=titleindex get the "MBW:" prefix.
The inconvenient is that visitors would really be sent to the real MusicBrainzWiki. I do not know if MoinMoin can be configured in a way that they are sent to an instance of the wiki that is uneditable and which has a theme that looks similar to the MainSite.
Perhaps this can be overcome by using something else than InterWikiLinks. The converter could also change the links to external links to, say, [http://musicbrainz.org/wiki/StyleGuideline http://musicbrainz.org/wiki/StyleGuideline], which would trigger another WikiWebService located at /wiki/ which serves content from the MusicBrainzWiki.
Also, pages that do not exist on the MusicBrainzWiki should not get links. So the converter will probably have to look at the TitleIndex of both the MusicBrainzWiki and the ShadowWiki to do the right thing. Problem: The TitleIndex of the MusicBrainzWiki has to be read in real time. This is no job for the converter, is it?
|Page in TitleIndex of MusicBrainzWiki||Page in TitleIndex of ShadowWiki||Action taken|
|Yes||Yes||ShadowWiki points to itself|
|Yes||No||Link should look different and point to WikiWebService of MusicBrainzWiki|
|No||Yes||Uh? Send a warning to admin. Someone has deleted an official page! Still, ShadowWiki can point to itself|
|No||No||WikiName should not be presented as a link at all|
God, is this complicated. I will leave the implementation details to Robert.
Remove Unofficial Content
I am not 100% sure, we need this.
We could add our own "official" tag to the MusicBrainz wiki: an XML-style:
When you feed a page to the converter, it will look for this tag, and if it finds such tags, it will remove everything outside the tags and then the tags tehmselves in the ShadowWiki version of that page.
This way the source of a wiki page can contain stuff that will not be visible on the MainSite.
initial author: DonRedman