diff --git a/src/Parsers/BBCode/Tags/ImageTag.php b/src/Parsers/BBCode/Tags/ImageTag.php
index ac601725..af2daba6 100644
--- a/src/Parsers/BBCode/Tags/ImageTag.php
+++ b/src/Parsers/BBCode/Tags/ImageTag.php
@@ -5,8 +5,11 @@ use Misuzu\Parsers\BBCode\BBCodeTag;
final class ImageTag extends BBCodeTag {
public function parseText(string $text): string {
- return preg_replace_callback("/\[img\]((?:https?:)?\/\/.+?)\[\/img\]/", function ($matches) {
- $url = parse_url($matches[1]);
+ return preg_replace_callback("/\[(img|imgmap)\]((?:https?:)?\/\/.+?)\[\/(img|imgmap)\]/", function($matches) {
+ if($matches[1] !== $matches[3])
+ return $matches[0];
+
+ $url = parse_url($matches[2]);
if(!empty($url['scheme']) && !in_array(mb_strtolower($url['scheme']), ['http', 'https'], true))
return $matches[0];
@@ -17,7 +20,11 @@ final class ImageTag extends BBCodeTag {
// $matches[1]
// );
- return sprintf('
', $matches[1]);
+ return sprintf(
+ '
',
+ $matches[2],
+ $matches[1] === 'imgmap' ? ' ismap' : '',
+ );
}, $text);
}
}