- Convert ~1500 pages with attachments without losing any data or formatting
- Migrate 4 years worth of revision history (>10000 edits)
- Import ~2500 user accounts
The versions that we used on the gNewSense web site were PmWiki 2.1.27 and MoinMoin 1.7.3 (also tested with 1.9.3).
I modified the PmWiki engine so that it produces intermediate markup instead of HTML. The intermediate markup is then converted to MoinMoin markup by a Python script.
I decided against writing my own PmWiki parser based on one of the existing scripts listed on the MoinMoin web site. These scripts were written for older PmWiki versions, and getting them to understand all the details of PmWiki markup the way PmWiki does would have been quite a challenge in any case.
By having PmWiki produce intermediate markup, I leave the hard work to PmWiki itself, while still retaining the semantic information that might not be available in the HTML anymore (for example, a Table of Contents might look like any ordered list in HTML; on the markup level, it’s something entirely different).