Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.catamania.convertXWiki;
- import java.io.StringReader;
- import java.nio.file.Files;
- import java.nio.file.Paths;
- import org.xwiki.component.embed.EmbeddableComponentManager;
- import org.xwiki.rendering.block.XDOM;
- import org.xwiki.rendering.parser.Parser;
- import org.xwiki.rendering.renderer.BlockRenderer;
- import org.xwiki.rendering.renderer.printer.DefaultWikiPrinter;
- import org.xwiki.rendering.renderer.printer.WikiPrinter;
- import org.xwiki.rendering.syntax.Syntax;
- import org.xwiki.rendering.transformation.Transformation;
- import org.xwiki.rendering.transformation.TransformationContext;
- public class Main {
- public static void main(String[] args) {
- setLoggingLevel(ch.qos.logback.classic.Level.OFF);
- if (args.length > 0) {
- try {
- String nomFichier = args[0];
- String contenu = new String(Files.readAllBytes(Paths.get(nomFichier)));
- contenu = Main.convertMacro(contenu);
- System.out.println(contenu);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- private static String convertMacro(String contenu) throws Exception {
- // Initialize Rendering components and allow getting instances
- final EmbeddableComponentManager cm = new EmbeddableComponentManager();
- cm.initialize(Main.class.getClassLoader());
- Parser parser = cm.getInstance(Parser.class, Syntax.XWIKI_2_1.toIdString());
- XDOM xdom = parser.parse(new StringReader(contenu));
- // Execute the Macro Transformation to execute Macros.
- Transformation transformation = cm.getInstance(Transformation.class, "macro");
- TransformationContext txContext = new TransformationContext(xdom, parser.getSyntax());
- transformation.transform(xdom, txContext);
- // Convert input in XWiki Syntax 2.1 into XHTML. The result is stored in the printer.
- WikiPrinter printer = new DefaultWikiPrinter();
- BlockRenderer renderer = cm.getInstance(BlockRenderer.class, Syntax.XHTML_1_0.toIdString());
- renderer.render(xdom, printer);
- return printer.toString();
- }
- public static void setLoggingLevel(ch.qos.logback.classic.Level level) {
- ch.qos.logback.classic.Logger root = (ch.qos.logback.classic.Logger) org.slf4j.LoggerFactory.getLogger(ch.qos.logback.classic.Logger.ROOT_LOGGER_NAME);
- root.setLevel(level);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement