diff --git a/app/Elements/AbstractElement.php b/app/Elements/AbstractElement.php index 8af8b4368a1..09668a2066c 100644 --- a/app/Elements/AbstractElement.php +++ b/app/Elements/AbstractElement.php @@ -23,23 +23,12 @@ use Fisharebest\Webtrees\Html; use Fisharebest\Webtrees\I18N; use Fisharebest\Webtrees\Tree; -use League\CommonMark\Block\Element\Document; -use League\CommonMark\Block\Element\Paragraph; -use League\CommonMark\Block\Renderer\DocumentRenderer; -use League\CommonMark\Block\Renderer\ParagraphRenderer; -use League\CommonMark\CommonMarkConverter; -use League\CommonMark\Environment; -use League\CommonMark\Inline\Element\Link; -use League\CommonMark\Inline\Element\Text; -use League\CommonMark\Inline\Parser\AutolinkParser; -use League\CommonMark\Inline\Renderer\LinkRenderer; -use League\CommonMark\Inline\Renderer\TextRenderer; use function array_key_exists; use function array_map; use function e; use function is_numeric; -use function preg_replace; +use function preg_match; use function strpos; use function trim; use function view; @@ -271,21 +260,13 @@ public function values(): array */ protected function valueAutoLink(string $value): string { - // Convert URLs into markdown auto-links. - $value = preg_replace(self::REGEX_URL, '<$0>', $value); - - // Create a minimal commonmark processor - just add support for autolinks. - $environment = new Environment(); - $environment - ->addBlockRenderer(Document::class, new DocumentRenderer()) - ->addBlockRenderer(Paragraph::class, new ParagraphRenderer()) - ->addInlineRenderer(Text::class, new TextRenderer()) - ->addInlineRenderer(Link::class, new LinkRenderer()) - ->addInlineParser(new AutolinkParser()); + $canonical = $this->canonical($value); - $converter = new CommonMarkConverter(['html_input' => Environment::HTML_INPUT_ESCAPE], $environment); + if (preg_match(static::REGEX_URL, $canonical)) { + return '' . e($canonical) . ''; + } - return $converter->convertToHtml($value); + return e($canonical); } /** diff --git a/app/Elements/MultimediaFileReference.php b/app/Elements/MultimediaFileReference.php index 2cc3cc3f597..11c4a30bc58 100644 --- a/app/Elements/MultimediaFileReference.php +++ b/app/Elements/MultimediaFileReference.php @@ -59,12 +59,6 @@ public function canonical(string $value): string */ public function value(string $value, Tree $tree): string { - $canonical = $this->canonical($value); - - if (preg_match(static::REGEX_URL, $canonical)) { - return '' . e($canonical) . ''; - } - - return parent::value($value, $tree); + return $this->valueAutoLink($value); } } diff --git a/app/Elements/SourceCallNumber.php b/app/Elements/SourceCallNumber.php index 3d787cedf09..4d3d74a9a6b 100644 --- a/app/Elements/SourceCallNumber.php +++ b/app/Elements/SourceCallNumber.php @@ -39,8 +39,6 @@ class SourceCallNumber extends AbstractElement */ public function value(string $value, Tree $tree): string { - $canonical = $this->canonical($value); - - return $this->valueAutoLink($canonical); + return $this->valueAutoLink($value); } } diff --git a/app/Elements/SourcePublicationFacts.php b/app/Elements/SourcePublicationFacts.php index e90c38d319d..74a435129a5 100644 --- a/app/Elements/SourcePublicationFacts.php +++ b/app/Elements/SourcePublicationFacts.php @@ -41,8 +41,6 @@ class SourcePublicationFacts extends AbstractElement */ public function value(string $value, Tree $tree): string { - $canonical = $this->canonical($value); - - return $this->valueAutoLink($canonical); + return $this->valueAutoLink($value); } } diff --git a/app/Elements/WhereWithinSource.php b/app/Elements/WhereWithinSource.php index 1ad69c379aa..d29726177ae 100644 --- a/app/Elements/WhereWithinSource.php +++ b/app/Elements/WhereWithinSource.php @@ -52,4 +52,17 @@ public function edit(string $id, string $name, string $value, Tree $tree): strin { return ''; } + + /** + * Display the value of this type of element. + * + * @param string $value + * @param Tree $tree + * + * @return string + */ + public function value(string $value, Tree $tree): string + { + return $this->valueAutoLink($value); + } } diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 71cff983906..9282ef36406 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -15,11 +15,6 @@ parameters: count: 1 path: app/Date/AbstractCalendarDate.php - - - message: "#^Parameter \\#1 \\$commonMark of method League\\\\CommonMark\\\\Converter\\:\\:convertToHtml\\(\\) expects string, string\\|null given\\.$#" - count: 1 - path: app/Elements/AbstractElement.php - - message: "#^Method Fisharebest\\\\Webtrees\\\\Elements\\\\DateValue\\:\\:escape\\(\\) should return string but returns string\\|null\\.$#" count: 1