Search in sources :

Example 1 with WtTemplate

use of org.sweble.wikitext.parser.nodes.WtTemplate in project wikivoyage-listings by baturin.

the class TemplateNode method convertWtNodeToString.

/**
 * Text conversion of WtNode object to string.
 */
private String convertWtNodeToString(WtNode node) {
    if (node instanceof WtTemplate) {
        TemplateNode templateNode = new TemplateNode(languageCode, (WtTemplate) node, templateConverters);
        for (TemplateToStringConverter parser : templateConverters) {
            if (templateNode.getNameLowercase().equals(parser.getTemplateName())) {
                return parser.convertToString(templateNode);
            }
        }
        log.debug("Template '" + templateNode.getName() + "' was not parsed");
        UnrecognizeTemplateCounter.getInstance().addUnrecognizedTemplate(languageCode, templateNode.getName());
        return WtRtDataPrinter.print(node);
    } else if (node instanceof WtXmlComment) {
        // HTML comments inside listings are ignored
        return "";
    } else if (node instanceof AstStringNode) {
        return ((AstStringNode) node).getContent().replaceAll("\\[\\[([^|\\]]*?\\||)([^|\\]]*?)\\]\\]", "$2");
    } else {
        String s = "";
        for (WtNode childNode : node) {
            s += convertWtNodeToString(childNode);
        }
        return s;
    }
}
Also used : WtNode(org.sweble.wikitext.parser.nodes.WtNode) WtXmlComment(org.sweble.wikitext.parser.nodes.WtXmlComment) WtTemplate(org.sweble.wikitext.parser.nodes.WtTemplate) AstStringNode(de.fau.cs.osr.ptk.common.ast.AstStringNode)

Aggregations

AstStringNode (de.fau.cs.osr.ptk.common.ast.AstStringNode)1 WtNode (org.sweble.wikitext.parser.nodes.WtNode)1 WtTemplate (org.sweble.wikitext.parser.nodes.WtTemplate)1 WtXmlComment (org.sweble.wikitext.parser.nodes.WtXmlComment)1