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;
}
Content contentElement = findCurrentContentElement();
if (contentElement == null) return false;
- return contentElement.getClass().isInstance(aClass);
+ return aClass.isInstance(contentElement);
}
public void addContent(Content contentElement){
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) {
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());
}
}
}
+ 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);