X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/6564bb744e26af381f856345a55888d4aa613c60..decb7051f6436aedfd0e9de934d149d9c5b22b36:/doc/tips/convert_mediawiki_to_ikiwiki.mdwn?ds=inline diff --git a/doc/tips/convert_mediawiki_to_ikiwiki.mdwn b/doc/tips/convert_mediawiki_to_ikiwiki.mdwn index 7a34ffc15..e8f6a26a1 100644 --- a/doc/tips/convert_mediawiki_to_ikiwiki.mdwn +++ b/doc/tips/convert_mediawiki_to_ikiwiki.mdwn @@ -1,6 +1,6 @@ [[!toc levels=2]] -Mediawiki is a dynamically-generated wiki which stores it's data in a +Mediawiki is a dynamically-generated wiki which stores its data in a relational database. Pages are marked up using a proprietary markup. It is possible to import the contents of a Mediawiki site into an ikiwiki, converting some of the Mediawiki conventions into Ikiwiki ones. @@ -144,7 +144,12 @@ into an ikiwiki tag name using a script such as sys.stdout.write(re.sub(pattern, manglecat, line)) else: sys.stdout.write(line) -## Step 4: Mediawiki plugin +## Step 4: Mediawiki plugin or Converting to Markdown + +You can use a plugin to make ikiwiki support Mediawiki syntax, or you can +convert pages to a format ikiwiki understands. + +### Step 4a: Mediawiki plugin The [[plugins/contrib/mediawiki]] plugin can be used by ikiwiki to interpret most of the Mediawiki syntax. @@ -155,16 +160,48 @@ The following things are not working: * tables * spaces and other funky characters ("?") in page names +### Step 4b: Converting pages + +#### Converting to Markdown + +There is a Python script for converting from the Mediawiki format to Markdown in [[mithro]]'s conversion repository at . *WARNING:* While the script tries to preserve everything is can, Markdown syntax is not as flexible as Mediawiki so the conversion is lossy! + + # The script needs the mwlib library to work + # If you don't have easy_install installed, apt-get install python-setuptools + sudo easy_install mwlib + + # Get the repository + git clone git://github.com/mithro/media2iki.git + cd media2iki + + # Do a conversion + python mediawiki2markdown.py --no-strict --no-debugger > output.md + + +[[mithro]] doesn't frequent this page, so please report issues on the [github issue tracker](https://github.com/mithro/media2iki/issues). + ## Scripts -[[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. A copy of the -information found on this website is stored at . +### media2iki + +There is a repository of tools for converting MediaWiki to Git based Markdown wiki formats (such as ikiwiki and github wikis) at . It also includes a standalone tool for converting from the Mediawiki format to Markdown. [[mithro]] doesn't frequent this page, so please report issues on the [github issue tracker](https://github.com/mithro/media2iki/issues). + +### mediawiki2gitikiwiki (ruby) [[Albert]] wrote a ruby script to convert from mediawiki's database to ikiwiki at -[[Anarcat]] wrote a python script to convert from a mediawiki website to ikiwiki at . The script doesn't need any special access or privileges and communicates with the documented API (so it's a bit slower, but allows you to mirror sites you are not managing, like parts of Wikipedia). The script can also incrementally import new changes from a running site, through RecentChanges inspection. It also supports mithro's new Mediawiki2markdown converter. +### levitation (xml to git) + +[[scy]] wrote a python script to convert from mediawiki XML dumps to git repositories at . + +### git-mediawiki + +There's now support for mediawiki as a git remote: + + + +### mediawikigitdump +[[Anarcat]] wrote a python script to convert from a mediawiki website to ikiwiki at git://src.anarcat.ath.cx/mediawikigitdump.git/. The script doesn't need any special access or privileges and communicates with the documented API (so it's a bit slower, but allows you to mirror sites you are not managing, like parts of Wikipedia). The script can also incrementally import new changes from a running site, through RecentChanges inspection. It also supports mithro's new Mediawiki2markdown converter (which I have a copy here: git://src.anarcat.ath.cx/media2iki.git/). > Some assembly is required to get Mediawiki2markdown and its mwlib > gitmodule available in the right place for it to use.. perhaps you could @@ -180,7 +217,7 @@ information found on this website is stored at fails on some html in the page named "4_metres". On archiveteam.org, > it fails trying to write to a page filename starting with "/", --[[Joey]] -> > can you show me exactly which commandline arguments you're using? also, I have made improvements over the converter too, also available here: -- [[anarcat]] +> > can you show me exactly which commandline arguments you're using? also, I have made improvements over the converter too, also available here: git://src/anarcat.ath.cx/media2iki.git/ -- [[anarcat]] >>> Not using your new converter, just the installation I did earlier >>> today: @@ -236,4 +273,27 @@ IOError: [Errno 13] Permission denied: u'/Sites_using_MediaWiki_(English).mdwn' zsh: exit 1 ./mediawikigitdump.py -v -t http://archiveteam.org -[[scy]] wrote a python script to convert from mediawiki XML dumps to git repositories at . +> > > > > I have updated my script to call the parser without strict mode and to trim leading slashes (and /../, for that matter...) -- [[anarcat]] + +> > > > > > Getting this error with the new version on any site I try (when using -t only): `TypeError: argument 1 must be string or read-only character buffer, not None` +> > > > > > bisecting, commit 55941a3bd89d43d09b0c126c9088eee0076b5ea2 broke it. +> > > > > > --[[Joey]] + +> > > > > > > I can't reproduce here, can you try with -v or -d to try to trace down the problem? -- [[anarcat]] + +
+fetching page list from namespace 0 ()
+found 473 pages
+fetching page 0 - 9  from http://www.amateur-radio-wiki.net/index.php?action=raw&title=0+-+9 into 0_-_9.mdwn
+Traceback (most recent call last):
+  File "./mediawikigitdump.py", line 304, in 
+    main()
+  File "./mediawikigitdump.py", line 301, in main
+    fetch_allpages(options.namespace)
+  File "./mediawikigitdump.py", line 74, in fetch_allpages
+    fetch_page(page.getAttribute('title'))
+  File "./mediawikigitdump.py", line 180, in fetch_page
+    f.write(options.convert(urllib.urlopen(url).read()))
+TypeError: argument 1 must be string or read-only character buffer, not None
+zsh: exit 1     ./mediawikigitdump.py -v -d -t http://www.amateur-radio-wiki.net/
+