Wiki Web Service
The WikiWebService is a component of the planned WikiDocs. It is the mechanism that transcludes a WikiPage to the MusicBrainzWebSite. It displays 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 WikiDocsTransclusionTable.
- If it is, it pulls the last moderated revision from the MusicBrainzWiki and serves that inside a
- If it is not, it pulls the current revision of the page and serves that inside a
Additionally the webservice has to do a lot of WikiDocsConversion stuff. Since that is quite complex, we will have to make very judicious usage of caching.
Old /wd/ Mechanism
- When you request a page like http://www.musicbrainz.org/wd/AboutMusicBrainz, the
wd/AboutMusicBrainzis rewritten to a different URL:
- 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).
- The component conversion (only a tiny subset of what is listed on WikiDocsConversion).
- 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 webservice must perform the full set of WikiDocsConversion