Penguin
Note: You are viewing an old revision of this page. View the current version.

Currently we're considering moving the WLUG wiki from PhpWiki (or WlugWiki, as we are really running a fork of PhpWiki by now) to MediaWiki?.

This isn't about pros or cons of either piece of software!

Conversion of Wiki Content

I'm currently working on a script that was originally written by Isaac Wilcox. This does a reasonable first pass on converting the wiki markup, however there's a lot of things it doesn't do yet, mostly involving any old-style wiki markup, which is rife throughout the WLUG wiki.

Also, having migrated the content, every page will need to be visited, and checked for validity, and resaved. This is very important! A lot of the 'special' pages within Mediawiki only get updated when a page gets saved. The Backlinks and Category equivalents are obvious examples. We can let this happen "as the wiki gets used", but the fact is for the new site to work properly we will have to do this. We could, I suppose, write something which simulates editing then saving a page, which will address the automagic pages, but won't confirm the markup was translated completely.

I'm aware that if we aim for 100% conversion we'll probably fail, but what we're probably looking at is approximately 80% of the wiki markup being converted at the moment, and still a requirement to walk across pretty well all of the 7000 odd pages in the wiki.

Plugins

There's a bunch of plugins we've written - WlugMember? being one of them - that will have to be rewritten. This probably isn't such an onerous chore, as most of the plugins we've written are pretty simple, however it's something that must be taken into account.

Extensions

We've also added a lot of extensions, such as the spam limiting and google query banner. These will need to be reimplemented. I think MediaWiki? has a much nicer framework for adding these at least - it probably won't involve hacking the theme directly like it did in phpwiki, but this needs to be taken into account.

Media wiki uses the term "extensions" for what phpwiki calls "plugins", the two are one and the same. MediaWiki? has a lot more "layout" extensions than phpwiki did. -- PerryLorier.

Current things that rely on the wiki

  • meeting reminder bot (parses wiki page content)
  • library (relies on the wiki style sheet)
  • WantedWikis generation
  • modify/remove GreenStone full-text index of wiki
  • pci database (better integration)
  • committee fortnightly reminder bot (parses wiki page content)

Problems with the current wiki that we hope to address

  • No (easy) security updates, as we are a fork of PhpWiki
  • No ability to fix font problems across platforms due to PhpWiki nesting tags
  • No ability to do any kind of layout inside pages, eg. text to the right of an image, a floating text box in a page (to move Coming Up from the sidebar to the main page)

One big issue is that Mediawiki markup sucks rocks. It doesn't have any concept of blocks; it would be like converting the wiki back to old markup. I don't know how well Mediawiki is designed internally, but the markup used is a very big deal, and Mediawiki rides the short bus as far as that is concerned.

Personally, I'd suggest taking a look at MoinMoin instead. Check out the GNOME Live! for an example of a decently busy and relatively large wiki running MoinMoin. The MoinMoin formatter doesn't seem to understand blocks either, but at least it uses indentation and remembers context across linebreaks in enough cases that it can be considered sane enough. And the wiki engine comes with a few neato features.

Also, it's Python, which will please PerryLorier :) and is better than PHP anyway.

--AristotlePagaltzis


Not having any experience with either MediaWiki? or MoinMoin I'd have to say that based on a comparison of features listed on their respective webpages I would favour MoinMoin. It looks easily themeable :)

-- MattBrown


There are a lot of hidden things that the wlug wiki does (or did with the old theme) that we've added and probably need to support with anything we move to:

  • Excellent support for search engines including:

    • rel="nofollow" on links that we don't want search engines searching (PageHistory, Diff, Previous versions, Edit etc)
    • meta robots="noindex,follow" on various pages we don't want indexed like RecentChanges
    • meta robots="noindex,nofollow" on pages we don't want search engines looking at at all (eg PageHistory).
    • We moved RecentChanges into an iframe which helps by search engines not indexing terms being on pages that are unrelated to those terms.
    • http://www.wlug.org.nz/sitemap (Note: Please don't open this in your browser. It's for google. It's a big RDF file that will mean nothing to you.) Since I added this a week ago google is indexing only the pages on the wiki that have changed every 24 hours. That means that wlug content is getting into google search results in under 24 hours.
    • The "google trick" where we put up a notice welcoming google users. This probably needs an update, due to the most of above google no longer sends people to the "wrong" wiki page so the need for searching for pages that google should have sent them to is a lot more irrelevant.
  • Excellent antispam support

    • Warnings for h-zone fetched and referred pages to make it a disincentive for people to try and claim wiki pages as being "defaced"
    • John's excellent antispam stuff:

      • Based on netblocks
      • Based on useragents
      • Based on content added
  • Layout/Theme:

    • Added the sidebar so people can easily see Recent changes. I believe this was the major reason that the wiki took off (people could see that people were making changes to the wiki).
    • Tweaked to be nearly good enough with font support.
    • Obvious indication if IPv6/IPv4 was working.
    • Support for printing wiki pages elegantly.
    • Support for low end browsers (text only, no javascript). Drop the sidebar for browsers with limited screen realistate.
    • Fully UTF8 Clean, including UTF8 page content, and UTF8 page names.
    • Support for automatic linking manpage(8) style wikiwords.
    • Support for / based wiki namespace.
    • Support for multiple vhosts showing the same content without worry about being redirected to other hosts (www,www6,www4,www2) useful for testing.
  • Services:

    • SOAP Interface
    • Meeting Reminder Bot / Committee Reminder bot etc
    • PCI Device Database.
    • Customised RecentChanges for the sidebar
    • wlug member plugin
    • Support for three markup formats (interwikimap, old markup and new markup).
    • Added "by UserName" to the "Last Edited" box at the bottom.
  • Other:

    • IPv6 Support.
    • Extremely aggressive caching to reduce bandwidth costs (It dropped our bandwidth usage by at least 25%). This also made google happier to index our site more frequently.
    • Faster postgres support (doesn't lock needlessly)
    • full text searching through greenstone (with a wiki plugin for this)
    • wanted wiki generation
    • Easy extention through plugins, and easily hackable source
    • Support for gzipping pages being sent.
    • Easily backed up, modified, and interrogated backend (postgres) vs phpwiki's default (dbm).

And thats just off the top of my head -- PerryLorier