+++ /dev/null
-package eu.svjatoslav.sixth.core.document.text;
-
-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<FormattedTextElement> elements = new ArrayList<>();
-
- public void parseOrgSyntax(String orgText) {
-
- Tokenizer tokenizer = getTokenizer(orgText);
- while (tokenizer.hasMoreContent()) {
- final TokenizerMatch token = tokenizer.getNextToken();
-
- if (token.isGroup(TG_HYPERLINK)){
- elements.add(Hyperlink.fromOrg(token));
- continue;
- }
-
- PlainText plainText = new PlainText(token.token);
- elements.add(plainText);
- }
-
- }
-
- public static FormattedText fromOrg(String orgText){
- FormattedText formattedText = new FormattedText();
- formattedText.parseOrgSyntax(orgText);
- return formattedText;
- }
-
- public String toMD(int indent){
- StringBuilder sb = new StringBuilder();
-
- for (FormattedTextElement element : elements)
- sb.append(element.toMD());
-
- 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);
- }
-}