Misc fixes:
[sixth.git] / src / main / java / eu / svjatoslav / sixth / core / document / content / ListElement.java
index 0db636f..5cfc791 100644 (file)
@@ -9,17 +9,18 @@ import java.util.List;
 
 import static eu.svjatoslav.sixth.core.document.Helper.*;
 import static eu.svjatoslav.sixth.core.document.Utils.isBlank;
+import static eu.svjatoslav.sixth.core.document.Utils.removePrefix;
 
 public class ListElement implements Content {
-    public final FormattedText name;
+    StringBuilder nameInOrg = new StringBuilder();
     public final int indent;
     public final ListElement parent;
     private final String type;
     private final List<Content> content = new ArrayList<>();
 
-    public ListElement(FormattedText name, int indent, ListElement parent, String type) {
+    public ListElement(String nameInOrg, int indent, ListElement parent, String type) {
         this.indent = indent;
-        this.name = name;
+        this.nameInOrg.append(nameInOrg);
         this.type = type;
         this.parent = parent;
     }
@@ -33,7 +34,7 @@ public class ListElement implements Content {
         Content contentElement = findCurrentContentElement();
         if (contentElement == null) return false;
 
-        return contentElement.getClass().isInstance(aClass);
+        return aClass.isInstance(contentElement);
     }
 
     public void addContent(Content contentElement){
@@ -86,12 +87,16 @@ public class ListElement implements Content {
         TextBlock textBlock;
         if (isLastContentElement(TextBlock.class)) {
             textBlock = ((TextBlock) findCurrentContentElement());
+        } if (content.isEmpty()){
+            // list title continuation
+            nameInOrg.append("\n").append(removePrefix(tm.token, indent + 2));
+            return;
         } else {
             textBlock = new TextBlock();
             content.add(textBlock);
         }
 
-        textBlock.addContent(tm.token + "\n");
+        textBlock.addContent(tm.token);
     }
 
     private void parseDocumentProperty(TokenizerMatch tm) {
@@ -123,7 +128,7 @@ public class ListElement implements Content {
 
         if (this.indent >= 0) {
             String2 s = new String2();
-            s.append(" ", indent).append(type).append(" ").append(name.toMD(indent + 2)).append("\n");
+            s.append(" ", indent).append(type).append(" ").append(getName().toMD(indent + 2)).append("\n");
             sb.append(s.toString());
         }
 
@@ -132,18 +137,22 @@ public class ListElement implements Content {
         }
     }
 
+    private FormattedText getName(){
+        return FormattedText.fromOrg(nameInOrg.toString());
+    }
+
     private void disablePlantUmlExport() {
 
         for (int i = 0; i< (content.size()-2); i++){
             if (!(content.get(i) instanceof MultilineCode)) continue;
 
             MultilineCode code = (MultilineCode) content.get(i);
-            if (!"plantuml".equalsIgnoreCase(code.language)) continue;;
+            if (!"plantuml".equalsIgnoreCase(code.language)) continue;
 
             if (!(content.get(i+1) instanceof DocumentPropertyCollection)) continue;
             DocumentPropertyCollection property = (DocumentPropertyCollection) content.get(i+1);
 
-            if (!property.hasProperty("results")) continue;;
+            if (!property.hasProperty("results")) continue;
 
             if (!(content.get(i+2) instanceof TextBlock)) continue;
             TextBlock textBlock = (TextBlock) content.get(i+2);