diff --git a/lib/ArticleParser.php b/lib/ArticleParser.php
index 66532ed..0c017a8 100644
--- a/lib/ArticleParser.php
+++ b/lib/ArticleParser.php
@@ -6,14 +6,16 @@ final class ArticleParser
const PATTERN_DATE = "|\./data/articles/([0-9]+)/([0-9]+)/([0-9]+)/([0-9]+).txt|";
const PATTERN_TAGS = "/^\{(([a-zA-Z0-9]+,*)+)\}$/";
const PATTERN_IMG = "/^([a-zA-Z0-9\-_\.]+\.(jpg|png)) \((.*)\)$/";
- const PATTERN_BOLD = "/\*([^*]*)\*/";
- const PATTERN_ITALIC = "|/([^/]*)/|";
- const PATTERN_UNDERLINE = "/_([^_]*)_/";
+ const PATTERN_BOLD = "/\*([^*]+)\*/";
+ const PATTERN_ITALIC = "/~([^~]+)~/";
+ const PATTERN_UNDERLINE = "/_([^_]+)_/";
+ const PATTERN_LINK = "/\[(.+) \(([a-z]+:\/\/.+)\)\]/";
const REPLACE_DATE = "$1-$2-$3";
const REPLACE_REF = "$4";
const REPLACE_BOLD = "$1";
const REPLACE_ITALIC = "$1";
const REPLACE_UNDERLINE = "$1";
+ const REPLACE_LINK = "$1";
private bool $in_p = false;
private array $content = [];
@@ -100,12 +102,14 @@ final class ArticleParser
$patterns = [
self::PATTERN_BOLD,
self::PATTERN_ITALIC,
- self::PATTERN_UNDERLINE
+ self::PATTERN_UNDERLINE,
+ self::PATTERN_LINK
];
$replacements = [
self::REPLACE_BOLD,
self::REPLACE_ITALIC,
- self::REPLACE_UNDERLINE
+ self::REPLACE_UNDERLINE,
+ self::REPLACE_LINK
];
return preg_replace($patterns, $replacements, htmlspecialchars($line, ENT_HTML5, "UTF-8"));
}