1 package org.simantics.scl.compiler.markdown.nodes;
\r
3 import org.simantics.scl.compiler.markdown.internal.ExtensionNodeHandler;
\r
5 public class ExtensionBlockNode extends Node {
\r
9 public ExtensionBlockNode(String extension, String content) {
\r
10 this.extension = extension;
\r
11 this.content = content;
\r
15 public void processExtensionNodes(ExtensionNodeHandler handler) {
\r
16 DocumentNode replacingNodes = handler.expandBlock(extension, content);
\r
17 if(replacingNodes != null) {
\r
18 if(replacingNodes.firstChild == null)
\r
21 for(Node child = replacingNodes.firstChild; child != null; child = child.next)
\r
22 child.parent = parent;
\r
24 parent.firstChild = replacingNodes.firstChild;
\r
26 replacingNodes.firstChild.prev = prev;
\r
27 prev.next = replacingNodes.firstChild;
\r
30 parent.lastChild = replacingNodes.lastChild;
\r
32 replacingNodes.lastChild.next = next;
\r
33 next.prev = replacingNodes.lastChild;
\r
40 public void toHtml(StringBuilder b) {
\r
41 b.append("::").append(extension).append('[').append(content).append(']');
\r