Changing the italic pattern and adding the link handling

master
Nicolas Ong 2025-02-17 02:38:32 +01:00
parent bf26f52bb3
commit 9a78160141
1 changed files with 9 additions and 5 deletions

View File

@ -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 = "<strong>$1</strong>";
const REPLACE_ITALIC = "<em>$1</em>";
const REPLACE_UNDERLINE = "<u>$1</u>";
const REPLACE_LINK = "<a href=\"$2\">$1</a>";
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"));
}