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();