]> _ Git - cubist_util.git/commitdiff
wip #7894 @0.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 14 Jan 2026 18:00:53 +0000 (19:00 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 14 Jan 2026 18:00:53 +0000 (19:00 +0100)
src/Markdown.php [new file with mode: 0644]

diff --git a/src/Markdown.php b/src/Markdown.php
new file mode 100644 (file)
index 0000000..a672286
--- /dev/null
@@ -0,0 +1,44 @@
+<?php
+
+namespace Cubist\Util;
+
+use League\CommonMark\Environment\Environment;
+use League\CommonMark\Extension\Autolink\AutolinkExtension;
+use League\CommonMark\Extension\CommonMark\CommonMarkCoreExtension;
+use League\CommonMark\Extension\Table\TableExtension;
+use League\CommonMark\MarkdownConverter;
+
+class Markdown
+{
+    public static function toHTML($md, $images = true)
+    {
+        $config = [
+            'table' => [
+                'wrap' => [
+                    'enabled' => false,
+                    'tag' => 'div',
+                    'attributes' => [],
+                ],
+                'alignment_attributes' => [
+                    'left' => ['align' => 'left'],
+                    'center' => ['align' => 'center'],
+                    'right' => ['align' => 'right'],
+                ],
+            ],
+        ];
+
+        $environment = new Environment($config);
+        $environment->addExtension(new CommonMarkCoreExtension());
+        $environment->addExtension(new TableExtension());
+        $environment->addExtension(new AutolinkExtension());
+
+        $converter = new MarkdownConverter($environment);
+
+        $h = $converter->convert($md)->getContent();
+        if (!$images) {
+            $h = preg_replace('/<p><img.*<\/p>/U', '', $h);
+            $h = str_replace("/\n+/", "\n", $h);
+        }
+        return $h;
+    }
+}
\ No newline at end of file