diff --git a/packages/forms/resources/views/components/markdown-editor.blade.php b/packages/forms/resources/views/components/markdown-editor.blade.php
index 630d374603d..ef6db07f9bb 100644
--- a/packages/forms/resources/views/components/markdown-editor.blade.php
+++ b/packages/forms/resources/views/components/markdown-editor.blade.php
@@ -10,7 +10,7 @@
- {!! str($getState())->markdown()->sanitizeHtml() !!}
+ {!! str($getState())->sanitizeHtml()->markdown($getCommonMarkOptions(), $getCommonMarkExtensions()) !!}
@else
isMarkdown()) {
- $state = Str::markdown($state);
+ $state = Str::markdown($state, $this->getCommonMarkOptions(), $this->getCommonMarkExtensions());
}
$prefix = $this->getPrefix();
diff --git a/packages/support/src/Concerns/CanConfigureCommonMark.php b/packages/support/src/Concerns/CanConfigureCommonMark.php
new file mode 100644
index 00000000000..441c2497ba9
--- /dev/null
+++ b/packages/support/src/Concerns/CanConfigureCommonMark.php
@@ -0,0 +1,55 @@
+ | Closure | null
+ */
+ protected array | Closure | null $commonMarkOptions = null;
+
+ /**
+ * @var array | Closure | null
+ */
+ protected array | Closure | null $commonMarkExtensions = null;
+
+ /**
+ * @param array | Closure | null $commonMarkOptions
+ */
+ public function commonMarkOptions(array | Closure | null $commonMarkOptions): static
+ {
+ $this->commonMarkOptions = $commonMarkOptions;
+
+ return $this;
+ }
+
+ /**
+ * @return array
+ */
+ public function getCommonMarkOptions(): array
+ {
+ return $this->evaluate($this->commonMarkOptions) ?? [];
+ }
+
+ /**
+ * @param array | Closure | null $commonMarkExtensions
+ */
+ public function commonMarkExtensions(array | Closure | null $commonMarkExtensions): static
+ {
+ $this->commonMarkExtensions = $commonMarkExtensions;
+
+ return $this;
+ }
+
+ /**
+ * @return array
+ */
+ public function getCommonMarkExtensions(): array
+ {
+ return $this->evaluate($this->commonMarkExtensions) ?? [];
+ }
+}
diff --git a/packages/tables/src/Columns/Concerns/CanFormatState.php b/packages/tables/src/Columns/Concerns/CanFormatState.php
index 15f330eccd9..db6f27edbf6 100644
--- a/packages/tables/src/Columns/Concerns/CanFormatState.php
+++ b/packages/tables/src/Columns/Concerns/CanFormatState.php
@@ -3,6 +3,7 @@
namespace Filament\Tables\Columns\Concerns;
use Closure;
+use Filament\Support\Concerns\CanConfigureCommonMark;
use Filament\Support\Contracts\HasLabel as LabelInterface;
use Filament\Support\Enums\ArgumentValue;
use Filament\Tables\Columns\TextColumn;
@@ -15,6 +16,8 @@
trait CanFormatState
{
+ use CanConfigureCommonMark;
+
protected ?Closure $formatStateUsing = null;
protected int | Closure | null $characterLimit = null;
@@ -308,7 +311,7 @@ public function formatState(mixed $state): mixed
}
if ($isHtml && $this->isMarkdown()) {
- $state = Str::markdown($state);
+ $state = Str::markdown($state, $this->getCommonMarkOptions(), $this->getCommonMarkExtensions());
}
$prefix = $this->getPrefix();
diff --git a/packages/tables/src/Columns/Summarizers/Concerns/CanFormatState.php b/packages/tables/src/Columns/Summarizers/Concerns/CanFormatState.php
index fc6ad22c23d..ba76d59d986 100644
--- a/packages/tables/src/Columns/Summarizers/Concerns/CanFormatState.php
+++ b/packages/tables/src/Columns/Summarizers/Concerns/CanFormatState.php
@@ -3,6 +3,7 @@
namespace Filament\Tables\Columns\Summarizers\Concerns;
use Closure;
+use Filament\Support\Concerns\CanConfigureCommonMark;
use Filament\Support\Enums\ArgumentValue;
use Filament\Tables\Columns\Summarizers\Summarizer;
use Filament\Tables\Table;
@@ -13,6 +14,8 @@
trait CanFormatState
{
+ use CanConfigureCommonMark;
+
protected ?Closure $formatStateUsing = null;
protected string | Closure | null $placeholder = null;
@@ -157,7 +160,7 @@ public function formatState(mixed $state): mixed
}
if ($isHtml && $this->isMarkdown()) {
- $state = Str::markdown($state);
+ $state = Str::markdown($state, $this->getCommonMarkOptions(), $this->getCommonMarkExtensions());
}
$prefix = $this->getPrefix();