diff --git a/MarkdownTranslator.alusus b/MarkdownTranslator.alusus
index b0cc709..2813b6c 100644
--- a/MarkdownTranslator.alusus
+++ b/MarkdownTranslator.alusus
@@ -254,8 +254,22 @@ class MarkdownTranslator [RegexType: type] {
else this.output += str;
}
}),
+ // link with double brackets [[text]](url)
+ Rule("\\[\\[([^]\n]*)\\]\\]\\(([^ \t\n]+)\\)", closure(args: Array[String]) {
+ def linkText: String = String("[") + args(1) + String("]");
+ if this.elementStack.getLength() == 0 this.jumpToLevel(String("p"), 1, false);
+ def target: CharsPtr = "";
+ if this.linksInNewTab target = "target=\"_blank\""
+ if this.onHtmlTag.isNull() {
+ this.output += String.format("%s", args(2).buf, target, linkText.buf);
+ } else {
+ def str: String = this.onHtmlTag("a", args(2), linkText);
+ if str != "" this.output += str
+ else this.output += String.format("%s", args(2).buf, target, linkText.buf);
+ }
+ }),
// link
- Rule("\\[([^\n\\x5D]*)\\]\\(([^()\n]+)\\)", closure(args: Array[String]) {
+ Rule("\\[([^]\n]*)\\]\\(([^ \t\n]+)\\)", closure(args: Array[String]) {
if args(1) == "" args(1) = args(2);
if this.elementStack.getLength() == 0 this.jumpToLevel(String("p"), 1, false);
def target: CharsPtr = "";
@@ -269,7 +283,7 @@ class MarkdownTranslator [RegexType: type] {
}
}),
// image
- Rule("!\\[([^\n\\x5D]*)\\]\\(([^()\n]+)\\)", closure(args: Array[String]) {
+ Rule("!\\[([^]\n]*)\\]\\(([^()\n]+)\\)", closure(args: Array[String]) {
if this.onHtmlTag.isNull() {
this.output += String.format("
", args(2).buf, args(1).buf);
} else {
@@ -328,7 +342,7 @@ class MarkdownTranslator [RegexType: type] {
}
}),
// all chars
- Rule("[^\n*\\\\`!\\x5B]+", closure(args: Array[String]) {
+ Rule("[^\n*\\\\`![]+", closure(args: Array[String]) {
if this.elementStack.getLength() == 0 this.jumpToLevel(String("p"), 1, false);
this.output += args(0);
}),