1 package eu.svjatoslav.sixth.core.document.text;
3 import eu.svjatoslav.commons.string.tokenizer.Terminator;
4 import eu.svjatoslav.commons.string.tokenizer.TokenizerMatch;
6 import static eu.svjatoslav.commons.string.tokenizer.Terminator.TerminationStrategy.PRESERVE;
7 import static eu.svjatoslav.sixth.core.document.Helper.TG_HYPERLINK;
9 public class Hyperlink implements FormattedTextElement {
11 public static final Terminator orgTerminator =
12 new Terminator(PRESERVE, "\\[\\[([\\s\\S]+)\\][ \\t\\r\\n]*\\[([\\s\\S]+)\\]\\]", TG_HYPERLINK);
14 public static final Terminator orgTerminator2 =
15 new Terminator(PRESERVE, "\\[\\[([\\s\\S]+)\\]\\]", TG_HYPERLINK);
21 public String toMD() {
23 if (URL.startsWith("id:"))
26 return "[" + label + "]("+ URL + ")";
29 public static Hyperlink fromOrg(TokenizerMatch tokenizerMatch) {
30 Hyperlink hyperlink = new Hyperlink();
31 hyperlink.parseOrg(tokenizerMatch);
35 private void parseOrg(TokenizerMatch tokenizerMatch) {
36 String[] regExpGroups = tokenizerMatch.getRegExpGroups();
37 URL = regExpGroups[0];
38 if (tokenizerMatch.terminator == orgTerminator){
39 label = regExpGroups[1];