]> sipb.mit.edu Git - ikiwiki.git/blobdiff - doc/tips/convert_mediawiki_to_ikiwiki.mdwn
table name for querying the mediawiki mysql db
[ikiwiki.git] / doc / tips / convert_mediawiki_to_ikiwiki.mdwn
index 1e5b912a93d7f345b20b2b3b00ac3ebebd771967..db1a1745ce302c5266e33c0e735bed46d9e5d169 100644 (file)
@@ -8,6 +8,9 @@ converting some of the Mediawiki conventions into Ikiwiki ones.
 The following instructions describe ways of obtaining the current version of
 the wiki. We do not yet cover importing the history of edits.
 
+Another set of instructions and conversion tools (which imports the full history)
+can be found at <http://github.com/mithro/media2iki>
+
 ## Step 1: Getting a list of pages
 
 The first bit of information you require is a list of pages in the Mediawiki.
@@ -27,15 +30,16 @@ that this script is sensitive to the specific markup used on the page, so if
 you have tweaked your mediawiki theme a lot from the original, you will need
 to adjust this script too:
 
+    import sys
     from xml.dom.minidom import parse, parseString
     
-    dom = parse(argv[1])
+    dom = parse(sys.argv[1])
     tables = dom.getElementsByTagName("table")
     pagetable = tables[-1]
     anchors = pagetable.getElementsByTagName("a")
     for a in anchors:
         print a.firstChild.toxml().\
-            replace('&amp;,'&').\
+            replace('&amp;','&').\
             replace('&lt;','<').\
             replace('&gt;','>')
 
@@ -55,7 +59,13 @@ specific prefix: e.g. `Category:` will be stripped off.
 ### Querying the database
 
 If you have access to the relational database in which your mediawiki data is
-stored, it is possible to derive a list of page names from this.
+stored, it is possible to derive a list of page names from this. With mediawiki's
+MySQL backend, the page table is, appropriately enough, called `table`:
+
+ SELECT page_namespace, page_title FROM page;
+
+As with the previous method, you will need to do some filtering based on the
+namespace.
 
 ## Step 2: fetching the page data
 
@@ -114,7 +124,7 @@ into an ikiwiki tag name using a script such as
     pattern =  r'\[\[Category:([^\]]+)\]\]'
     
     def manglecat(mo):
-            return '[[!tag %s]]' % mo.group(1).strip().replace(' ','_')
+            return '\[[!tag %s]]' % mo.group(1).strip().replace(' ','_')
             
     for line in sys.stdin.readlines():
             res = re.match(pattern, line)
@@ -131,5 +141,7 @@ most of the Mediawiki syntax.
 
 [[sabr]] used to explain how to [import MediaWiki content into
 git](http://u32.net/Mediawiki_Conversion/index.html?updated), including full
-edit history, but as of 2009/10/16 that site is not available.
+edit history, but as of 2009/10/16 that site is not available. A copy of the 
+information found on this website is stored at <http://github.com/mithro/media2iki>
+