X-Git-Url: http://www2.svjatoslav.eu/gitweb/?p=sixth.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fsixth%2Fcore%2Fdocument%2Ftext%2FFormattedText.java;h=350abf364a37f7df01345109f645dc8fabe69404;hp=ae6a42151fec0adda690dd137ad1700f5c9ad036;hb=168cf05300cec2bb4c0607711b752609976b2901;hpb=e37d8d2a8afaf35a27bc65d8d700eeea5ed5bd46 diff --git a/src/main/java/eu/svjatoslav/sixth/core/document/text/FormattedText.java b/src/main/java/eu/svjatoslav/sixth/core/document/text/FormattedText.java index ae6a421..350abf3 100644 --- a/src/main/java/eu/svjatoslav/sixth/core/document/text/FormattedText.java +++ b/src/main/java/eu/svjatoslav/sixth/core/document/text/FormattedText.java @@ -1,22 +1,24 @@ package eu.svjatoslav.sixth.core.document.text; -import eu.svjatoslav.commons.string.tokenizer.InvalidSyntaxException; import eu.svjatoslav.commons.string.tokenizer.Tokenizer; import eu.svjatoslav.commons.string.tokenizer.TokenizerMatch; import java.util.ArrayList; import java.util.List; +import static eu.svjatoslav.sixth.core.document.Helper.TG_HYPERLINK; +import static eu.svjatoslav.sixth.core.document.Utils.addIndentExceptFirstLine; + public class FormattedText { List elements = new ArrayList<>(); - public void parseOrgSyntax(String orgText) throws InvalidSyntaxException { + public void parseOrgSyntax(String orgText) { Tokenizer tokenizer = getTokenizer(orgText); while (tokenizer.hasMoreContent()) { final TokenizerMatch token = tokenizer.getNextToken(); - if (token.terminator == Hyperlink.orgTerminator){ + if (token.isGroup(TG_HYPERLINK)){ elements.add(Hyperlink.fromOrg(token)); continue; } @@ -27,26 +29,30 @@ public class FormattedText { } - - public static FormattedText fromOrg(String orgText) throws InvalidSyntaxException { + public static FormattedText fromOrg(String orgText){ FormattedText formattedText = new FormattedText(); formattedText.parseOrgSyntax(orgText); return formattedText; } - public String compileMd(){ + public String toMD(int indent){ StringBuilder sb = new StringBuilder(); for (FormattedTextElement element : elements) - sb.append(element.compileMd()); + sb.append(element.toMD()); - return sb.toString(); + return addIndentExceptFirstLine(sb.toString(), indent); } private Tokenizer getTokenizer(String contents) { final Tokenizer tokenizer = new Tokenizer(contents); tokenizer.addTerminator(Hyperlink.orgTerminator); + tokenizer.addTerminator(Hyperlink.orgTerminator2); return tokenizer; } + + public String toString(){ + return toMD(0); + } }