Changes for page Export To Markdown

Last modified by Tobias Wintrich on 2026/03/27 13:39

From version 3.1
edited by René Vögeli
on 2026/03/25 10:32
Change comment: There is no comment for this version
To version 4.1
edited by Tobias Wintrich
on 2026/03/27 13:23
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.rvoegeli
1 +XWiki.twintrich
Content
... ... @@ -1,17 +1,30 @@
1 1  {{groovy}}
2 -import org.xwiki.environment.*
3 3  import org.xwiki.model.reference.*
3 +import java.io.File
4 4  
5 5  if (request.confirm == '1') {
6 - services.query.xwql("select distinct doc.fullName from Document doc where doc.space like 'HowTos' or doc.space like 'HowTos.%'").execute().each() {
6 + // Festes Export-Verzeichnis
7 + def tmpDir = new File("/usr/local/xwiki/data/md-export")
8 + tmpDir.mkdirs()
9 +
10 + services.query.xwql(
11 + "select distinct doc.fullName from Document doc " +
12 + "where doc.space like 'HowTos' or doc.space like 'HowTos.%'"
13 + ).execute().each() {
14 +
7 7   print "* Converting ${it} to MD..."
16 +
8 8   def itemDoc = xwiki.getDocument(it)
9 9   def newContent = services.rendering.render(itemDoc.getXDOM(), 'markdown/1.2')
10 - def tmpDir = new File(services.component.getInstance(Environment.class).temporaryDirectory, 'md-export')
11 - def pathSerializer = services.component.getInstance(EntityReferenceSerializer.TYPE_STRING, 'fspath')
19 +
20 + def pathSerializer = services.component.getInstance(
21 + EntityReferenceSerializer.TYPE_STRING, 'fspath'
22 + )
23 +
12 12   def outputFile = new File(tmpDir, pathSerializer.serialize(itemDoc.documentReference))
13 13   outputFile.parentFile.mkdirs()
14 - outputFile << newContent
26 + outputFile.text = newContent
27 +
15 15   println "Saved in ${outputFile.toString()}"
16 16   }
17 17  }