Wiki Web Service
The WikiWebService is a component of the planned WikiDocs. This component will display pages from the MusicBrainzWiki as uneditable webpages within the normal header, footer, menubar etc. of the MusicBrainz website.
The webservice has to check, whether the requested page is listed in the ModeratedRevisionTable.
- If it is, it pulls the last moderated revision from the MusicBrainzWiki and serves that inside a
<div class="WikiDocsContent">
. - If it is not, it pulls the current revision of the page and serves that inside a
<div class="WikiContent">
.
Additionally the webservice has to do a lot of WikiDocConversion stuff. Since that is quite complex, we will have to make very judicious usage of caching.
Old /wd/ Mechanism
MatthiasFriedrich explained me how the content of a MoinMoin wiki page is displayed on the MusicBrainz MainSite:
- When you request a page like http://www.musicbrainz.org/wd/AboutMusicBrainz, the
wd/AboutMusicBrainz
is rewritten to a different URL:/docs.html?id=AboutMusicBrainz
. - The code inside of docs.html calls a mason component. This mason component loads a page via HTTP-GET from the MoinMoin wiki that is located at http://wikidocs.musicbrainz.org (Note that this is the old and deprectated WikiDocs, that can be edited at http://wikidocs.musicbrainz.org/write/ (restricted access)).
- The mason component reads the wiki via the URL http://wikidocs.musicbrainz.org/read/AboutMusicBrainz?action=content (restricted as well).
- some link rewriting is done with the requested content to fix problems with relative links. The the wiki returns some links like '[http:/page.html http:/page.html]' (relative links). These are rewritten to absolute links (http://www.musicbrainz.org/page.html)
- Finally the page is displayed on the website, inside ouf our usual framework (header, sidebar, footer).
New /doc/ Meachnism
- The webservice must differentiate between pages that are listed in the ModeratedRevisionTable and pages which are not listed, and serve the appropriate revision of the page.
- The url should be changed so something more meaningful, since most mb urls will have that form. I suggest http://www.musicbrainz.org/doc/AboutMusicBrainz .
The page about the (old) WikiDocsConverter lists a couple of features that the web service will have to do now. I renamed that page to WikiDocConversion, and wil try to update it.
Not that MoinMoin has a ThemesMacro. If you install that you can call a theme via the url like this http://moinmoin.wikiwikiweb.de/ThemeMarket?action=theme&theme=matrix. So if the WikiDocsConversion starts to become complex, it might be a solution to do all this stuff with a theme, instead of with Perl meddling with html.