Separate multiline code block language from remaining parameters
[sixth.git] / src / main / java / eu / svjatoslav / sixth / core / document / content / MultilineCode.java
index db64e3e..212d412 100644 (file)
@@ -1,13 +1,24 @@
 package eu.svjatoslav.sixth.core.document.content;
 
 import eu.svjatoslav.commons.string.String2;
+import eu.svjatoslav.commons.string.tokenizer.Tokenizer;
+
+import static eu.svjatoslav.commons.string.tokenizer.Terminator.TerminationStrategy.DROP;
 
 public class MultilineCode implements Content {
     public final String language;
     public final String code;
 
-    public MultilineCode(String language, String code) {
-        this.language = language;
+    public MultilineCode(String languageAndParams, String code) {
+
+        final Tokenizer tokenizer = new Tokenizer(languageAndParams);
+        tokenizer.addTerminator(DROP, "[ \\t]+", "whitespace");
+        if (tokenizer.hasMoreContent()){
+            language = tokenizer.getNextToken().token;
+        } else {
+            language = null;
+        }
+
         this.code = code;
     }
 
@@ -22,7 +33,6 @@ public class MultilineCode implements Content {
     }
 
     public String getMDlanguage(){
-        // TODO: do not append ORG parameters to language, like: file: ....
         if (language == null) return "";
         return language;
     }