1 package eu.svjatoslav.sixth.core.document.text;
3 import eu.svjatoslav.commons.string.tokenizer.InvalidSyntaxException;
4 import eu.svjatoslav.commons.string.tokenizer.Terminator;
5 import eu.svjatoslav.commons.string.tokenizer.TokenizerMatch;
7 import static eu.svjatoslav.commons.string.tokenizer.Terminator.TerminationStrategy.PRESERVE;
8 import static eu.svjatoslav.sixth.core.document.Helper.TG_HYPERLINK;
10 public class Hyperlink implements FormattedTextElement {
12 public static final Terminator orgTerminator =
13 new Terminator(PRESERVE, "\\[\\[.*\\]\\]", TG_HYPERLINK);
19 public String compileMd() {
20 return "<URL: " + URL + ", LABEL: " + label + ">";
23 public static Hyperlink fromOrg(TokenizerMatch tokenizerMatch) throws InvalidSyntaxException {
24 Hyperlink hyperlink = new Hyperlink();
25 hyperlink.parseOrgSyntax(tokenizerMatch);
29 private void parseOrgSyntax(TokenizerMatch tokenizerMatch) throws InvalidSyntaxException {
30 // Tokenizer tokenizer = new Tokenizer(tokenizerMatch.reminder);
31 // Terminator linkSeparator = tokenizer.addTerminator("][", PRESERVE);
33 // URL = tokenizer.expectAndConsumeNextTerminatorToken(null).token;
35 // if (tokenizer.hasMoreContent()){ // link label is optional
36 // tokenizer.expectAndConsumeNextTerminatorToken(linkSeparator);
37 // label = tokenizer.expectAndConsumeNextTerminatorToken(null).token;