in wiki-export/src/wiki/export/WikiEntries2MediaWiki.java [98:159]
public void execute() throws BuildException {
FileFilter XML = (file) -> {
return file.isFile() && file.getName().endsWith(".xml");
};
File[] xmlFiles = srcDir.listFiles(XML);
try {
DocumentBuilder db = getDocumentBuilderFactory().newDocumentBuilder();
Transformer t = getTransformer();
for (File xmlFile : xmlFiles) {
File textFile = new File(destDir, xmlFile.getName().replaceAll("\\.xml$", "") + ".mediawiki");
t.reset();
Source xmlSource = new StreamSource(xmlFile);
Result result = new StreamResult(textFile);
t.transform(xmlSource, result);
log("Generated " + textFile.getAbsolutePath());
}
} catch (Exception ex) {
throw new BuildException(ex);
}
/* Finally generate a proper index.mediawiki from index. properties */
try {
FileReader reader = new FileReader(indexProperties);
Properties index = new Properties();
index.load(reader);
reader.close();
File indexFile = new File(destDir, "index.mediawiki");
log("Creating " + indexFile.getAbsolutePath() + " from " + indexProperties);
TreeMap<String, TreeSet<String>> sections = new TreeMap<>();
for (Object okey : index.keySet()) {
String key = (String) okey;
if (key.endsWith(".section")) {
String [] parts = key.split("\\.");
String wikiName = parts[0];
String sectionName = index.getProperty(key);
TreeSet<String> entries = sections.get(sectionName);
if (entries == null) {
entries = new TreeSet<>();
sections.put(sectionName, entries);
}
entries.add(wikiName);
}
}
PrintWriter indexMediawiki = new PrintWriter(new FileWriter(indexFile));
indexMediawiki.println("=Index=\n");
for (String section : sections.keySet()) {
indexMediawiki.println("\n==" + section + "==");
for (String entry : sections.get(section)) {
indexMediawiki.format("* [[%s|%s]]\n", entry, index.getProperty(entry));
}
}
indexMediawiki.close();
} catch (Exception ex) {
throw new BuildException(ex);
}
}