X-Git-Url: http://www2.svjatoslav.eu/gitweb/?p=sixth.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fsixth%2Fcore%2Fdocument%2Ftext%2FHyperlink.java;h=508003c5c0a7993d5882d0b14c2964a8157134b1;hp=9f64b092c637edcb81dbaf24ae21054b821aa974;hb=168cf05300cec2bb4c0607711b752609976b2901;hpb=f9ba1a34f75fc8bfe9e6507762947566c8e22bce diff --git a/src/main/java/eu/svjatoslav/sixth/core/document/text/Hyperlink.java b/src/main/java/eu/svjatoslav/sixth/core/document/text/Hyperlink.java index 9f64b09..508003c 100644 --- a/src/main/java/eu/svjatoslav/sixth/core/document/text/Hyperlink.java +++ b/src/main/java/eu/svjatoslav/sixth/core/document/text/Hyperlink.java @@ -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]; + } + + } + }