Misc fixes:
[sixth.git] / src / main / java / eu / svjatoslav / sixth / core / document / text / Hyperlink.java
index 9f64b09..508003c 100644 (file)
@@ -1,9 +1,44 @@
 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];
+        }
+
+    }
+
 }