1 package org.simantics.scl.compiler.markdown.nodes;
3 import org.simantics.scl.compiler.markdown.html.HtmlGenerationContext;
4 import org.simantics.scl.compiler.markdown.internal.ExtensionNodeHandler;
6 public class ExtensionBlockNode extends Node {
10 public ExtensionBlockNode(String extension, String content) {
11 this.extension = extension;
12 this.content = content;
16 public void processExtensionNodes(ExtensionNodeHandler handler) {
17 DocumentNode replacingNodes = handler.expandBlock(extension, content);
18 if(replacingNodes != null) {
19 if(replacingNodes.firstChild == null)
22 for(Node child = replacingNodes.firstChild; child != null; child = child.next)
23 child.parent = parent;
25 parent.firstChild = replacingNodes.firstChild;
27 replacingNodes.firstChild.prev = prev;
28 prev.next = replacingNodes.firstChild;
31 parent.lastChild = replacingNodes.lastChild;
33 replacingNodes.lastChild.next = next;
34 next.prev = replacingNodes.lastChild;
41 public void toHtml(HtmlGenerationContext context, StringBuilder b) {
42 b.append("::").append(extension).append('[').append(content).append(']');