Parse multiline list headings
[sixth.git] / src / main / java / eu / svjatoslav / sixth / core / document / text / Hyperlink.java
index 5e6884c..41d7ab5 100644 (file)
@@ -1,6 +1,5 @@
 package eu.svjatoslav.sixth.core.document.text;
 
-import eu.svjatoslav.commons.string.tokenizer.InvalidSyntaxException;
 import eu.svjatoslav.commons.string.tokenizer.Terminator;
 import eu.svjatoslav.commons.string.tokenizer.TokenizerMatch;
 
@@ -10,32 +9,32 @@ import static eu.svjatoslav.sixth.core.document.Helper.TG_HYPERLINK;
 public class Hyperlink implements FormattedTextElement {
 
     public static final Terminator orgTerminator =
-            new Terminator(PRESERVE, "\\[\\[.*\\]\\]", TG_HYPERLINK);
+            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() {
+    public String toMD() {
         return "<URL: " + URL + ", LABEL: " + label + ">";
     }
 
-    public static Hyperlink fromOrg(TokenizerMatch tokenizerMatch) throws InvalidSyntaxException {
+    public static Hyperlink fromOrg(TokenizerMatch tokenizerMatch) {
         Hyperlink hyperlink = new Hyperlink();
-        hyperlink.parseOrgSyntax(tokenizerMatch);
+        hyperlink.parseOrg(tokenizerMatch);
         return hyperlink;
     }
 
-    private void parseOrgSyntax(TokenizerMatch tokenizerMatch) throws InvalidSyntaxException {
-//        Tokenizer tokenizer = new Tokenizer(tokenizerMatch.reminder);
-//        Terminator linkSeparator = tokenizer.addTerminator("][", PRESERVE);
-//
-//        URL = tokenizer.expectAndConsumeNextTerminatorToken(null).token;
-//
-//        if (tokenizer.hasMoreContent()){ // link label is optional
-//            tokenizer.expectAndConsumeNextTerminatorToken(linkSeparator);
-//            label = tokenizer.expectAndConsumeNextTerminatorToken(null).token;
-//        }
+    private void parseOrg(TokenizerMatch tokenizerMatch) {
+        String[] regExpGroups = tokenizerMatch.getRegExpGroups();
+        URL = regExpGroups[0];
+        if (tokenizerMatch.terminator == orgTerminator){
+            label = regExpGroups[1];
+        }
+
     }
 
 }