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.HtmlEscape;
6 public class CodeBlockNode extends Node {
10 public int fenceLength;
11 public int fenceOffset;
12 public String infoString;
14 public CodeBlockNode() {
17 public CodeBlockNode(char fenceChar, int fenceLength, int fenceOffset) {
19 this.fenceChar = fenceChar;
20 this.fenceLength = fenceLength;
21 this.fenceOffset = fenceOffset;
24 public CodeBlockNode(StringBuilder stringContent) {
25 this.stringContent = stringContent;
29 public boolean acceptLines() {
34 public void toHtml(HtmlGenerationContext context, StringBuilder b) {
35 if(infoString == null || infoString.isEmpty())
36 b.append("<pre><code>");
38 String[] parts = infoString.split(" ");
39 b.append("<pre><code class=\"language-").append(parts[0]).append("\">");
41 if(stringContent.length() > 0)
42 b.append(HtmlEscape.escape(stringContent)).append('\n');
43 b.append("</code></pre>\n");