1 package org.simantics.scl.compiler.markdown.nodes;
3 import org.simantics.scl.compiler.markdown.internal.HtmlEscape;
5 public class CodeBlockNode extends Node {
9 public int fenceLength;
10 public int fenceOffset;
11 public String infoString;
13 public CodeBlockNode() {
16 public CodeBlockNode(char fenceChar, int fenceLength, int fenceOffset) {
18 this.fenceChar = fenceChar;
19 this.fenceLength = fenceLength;
20 this.fenceOffset = fenceOffset;
23 public CodeBlockNode(StringBuilder stringContent) {
24 this.stringContent = stringContent;
28 public boolean acceptLines() {
33 public void toHtml(StringBuilder b) {
34 if(infoString == null || infoString.isEmpty())
35 b.append("<pre><code>");
37 String[] parts = infoString.split(" ");
38 b.append("<pre><code class=\"language-").append(parts[0]).append("\">");
40 if(stringContent.length() > 0)
41 b.append(HtmlEscape.escape(stringContent)).append('\n');
42 b.append("</code></pre>\n");