package eu.svjatoslav.sixth.core.document.text;
+import eu.svjatoslav.commons.string.tokenizer.Terminator;
+import eu.svjatoslav.commons.string.tokenizer.TokenizerMatch;
+
+import static eu.svjatoslav.commons.string.tokenizer.Terminator.TerminationStrategy.PRESERVE;
+import static eu.svjatoslav.sixth.core.document.Helper.TG_HYPERLINK;
+
public class Hyperlink implements FormattedTextElement {
+ public static final Terminator orgTerminator =
+ new Terminator(PRESERVE, "\\[\\[([\\s\\S]+)\\][ \\t\\r\\n]*\\[([\\s\\S]+)\\]\\]", TG_HYPERLINK);
+
+ public static final Terminator orgTerminator2 =
+ new Terminator(PRESERVE, "\\[\\[([\\s\\S]+)\\]\\]", TG_HYPERLINK);
+
+ private String label;
+ private String URL;
+
@Override
- public String compileMd() {
- return "-TODO-";
+ public String toMD() {
+
+ if (URL.startsWith("id:"))
+ return label; // TODO
+
+ return "[" + label + "]("+ URL + ")";
}
+
+ public static Hyperlink fromOrg(TokenizerMatch tokenizerMatch) {
+ Hyperlink hyperlink = new Hyperlink();
+ hyperlink.parseOrg(tokenizerMatch);
+ return hyperlink;
+ }
+
+ private void parseOrg(TokenizerMatch tokenizerMatch) {
+ String[] regExpGroups = tokenizerMatch.getRegExpGroups();
+ URL = regExpGroups[0];
+ if (tokenizerMatch.terminator == orgTerminator){
+ label = regExpGroups[1];
+ }
+
+ }
+
}