Parse multiline list headings
[sixth.git] / src / main / java / eu / svjatoslav / sixth / core / document / text / Hyperlink.java
index 9f64b09..41d7ab5 100644 (file)
@@ -1,9 +1,40 @@
 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, "\\[\\[(.+)\\][ \\t]*\\[(.+)\\]\\]", TG_HYPERLINK);
+
+        public static final Terminator orgTerminator2 =
+            new Terminator(PRESERVE, "\\[\\[(.*)\\]\\]", TG_HYPERLINK);
+
+    private String label;
+    private String URL;
+
     @Override
-    public String compileMd() {
-        return "-TODO-";
+    public String toMD() {
+        return "<URL: " + URL + ", LABEL: " + label + ">";
     }
+
+    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];
+        }
+
+    }
+
 }