X-Git-Url: http://www2.svjatoslav.eu/gitweb/?p=sixth.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fsixth%2Fcore%2Fdocument%2Fcontent%2FListElement.java;fp=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fsixth%2Fcore%2Fdocument%2Fcontent%2FListElement.java;h=5cfc79118b54793229d1c683da3578b7d7251405;hp=0db636f48fea903559a8eb9d64844831a82132ae;hb=168cf05300cec2bb4c0607711b752609976b2901;hpb=9b683d223e06fc5ec9e2561c659de5a79d3a8194 diff --git a/src/main/java/eu/svjatoslav/sixth/core/document/content/ListElement.java b/src/main/java/eu/svjatoslav/sixth/core/document/content/ListElement.java index 0db636f..5cfc791 100644 --- a/src/main/java/eu/svjatoslav/sixth/core/document/content/ListElement.java +++ b/src/main/java/eu/svjatoslav/sixth/core/document/content/ListElement.java @@ -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 = 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);