--
PaulWise - 02 Feb 2005
A late "thank you Paul" for sharing this converter!
I added a SHORTDESCRIPTION to the "Add-On Info" section so that this add-on is represented properly in the
AddOnPackage topic and query topics. Please feel free to take this into the next release.
--
PeterThoeny - 04 Nov 2006
An even later thank you from me. I've updated and expanded the script a bit so that it should now work with TWiki 4.3.1. The main additional features are:
- add the .txt ending to all files replace non-CamelCase Zwiki links ([ ...] ) so that they work in TWiki ( [[...]])
- try to name files correctly so that they work in TWiki (e.g. if Zwiki page names contain dots or spaces)
- format numbered and bulleted lists so that they are correctly displayed in TWiki
- also format headings for bulleted/numbered lists as Zwiki would do (ie. make them bold)
here is the script
#!/usr/bin/python
import sys
import os
import re
import string
f = file(sys.argv[1])
data = f.read().strip()
stuff = data.split("-----------------------------------------------------------")
bits = []
for bit in stuff:
bits.append(bit.split("\n----\n"))
try:
os.mkdir('zwiki')
except:
pass
for bit in bits:
path = bit[0].strip()
if re.search("-",path):
temp = re.split("-",path,1)
temp[1] = string.capwords(temp[1])
#replace dots in first bit
temp[0] = re.sub("\.","-",temp[0])
path=string.join(temp,"-")
path = re.sub("\s","",path)
#print path
path = os.path.join('zwiki',path)
path2 = path + ".txt"
try:
f1 = file(path,'wb')
except:
continue
#make links from [link] to [[link]]
body = bit[1].strip()
body=re.sub("\[","[[",body)
body=re.sub("\]","]]",body)
#getting better formatting
#########################
#get bold headings for bulleted list
p = re.compile('\n(\S.*?)\n\n \*')
body=p.sub('\n---+++ \g<1>\n\n *',body)
#format bulleted lists
body=re.sub("\n \*"," *",body)
body=re.sub("\n \*"," *",body)
body=re.sub("\n \*"," *",body)
body=re.sub("\n \*"," *",body)
body=re.sub("\n \*","\n *",body)
#format numbered lists
body=re.sub("\n \d\."," 1",body)
body=re.sub("\n \d\."," 1",body)
body=re.sub("\n \d\."," 1",body)
body=re.sub("\n \d\."," 1",body)
body=re.sub("\n \d\.","\n 1",body)
#body = str.encode(body,'utf_16')
f1.write(body)
f1.close()
os.rename(path,path2)
use it in this way:
- run the script on the pages you've downloaded, e.g. ./zwiki-split.py your-directories/my-export-script
- it will create a folder called zwiki containing text files for each page in your orginal Zwiki but formatted to (hopefully) work and display properly in your new TWiki Web
- it is best to create a new empty TWiki Web
- copy all the files from the zwiki folder into the new TWiki Web by moving them into path-to-your-Twiki/data/your-new-web
- chown apache:apache all the files in the TwikiWeb directory
--
TobiasEscher - 2009-07-02
Thanks Tobias!
It would be helpful to package your script as
ZwikiToTWikiAddOn.zip and attach it to the add-on page. The reports in the Plugins web assume a
<package>.zip name for the download links. See also
AddOnPackageHowTo.
--
PeterThoeny - 2009-07-02