1 package eu.svjatoslav.sixth.core.document.content;
3 import eu.svjatoslav.commons.string.String2;
4 import eu.svjatoslav.commons.string.tokenizer.Tokenizer;
6 import static eu.svjatoslav.commons.string.tokenizer.Terminator.TerminationStrategy.DROP;
8 public class MultilineCode implements Content {
9 public final String language;
10 public final String code;
12 public MultilineCode(String languageAndParams, String code) {
14 final Tokenizer tokenizer = new Tokenizer(languageAndParams);
15 tokenizer.addTerminator(DROP, "[ \\t]+", "whitespace");
16 if (tokenizer.hasMoreContent()){
17 language = tokenizer.getNextToken().token;
26 public void toMD(StringBuilder sb, int indent) {
27 String2 s = new String2();
28 s.append(" ", indent).append("```" + getMDlanguage() + "\n");
29 // TODO: ensure that required indent is present
30 s.append(code + "\n");
31 s.append(" ", indent).append("```\n");
32 sb.append(s.toString());
35 public String getMDlanguage(){
36 if (language == null) return "";