spatie/commonmark-wire-navigate
CommonMark extension that adds a wire:navigate attribute to links rendered from Markdown, enabling Livewire SPA navigation. Install via Composer and register WireNavigateExtension in your CommonMark environment or spatie/laravel-markdown config.
league/commonmark). It fits seamlessly into projects using Livewire + Markdown (e.g., documentation, CMS, or admin panels).league/commonmark, making it non-intrusive and composable with other Markdown processors.league/commonmark (v1.0+).wire:navigate is a Livewire-specific attribute). Misconfiguration could break link behavior.wire:navigate is client-side only; ensure fallback behavior (e.g., data-wire-navigate) is handled for non-JS users.spatie/laravel-markdown, custom parser)?wire:navigate be applied to all links or selectively (e.g., internal routes only)?wire:navigate in Blade or Livewire components).league/commonmark v1.0+ (default in Laravel via spatie/laravel-markdown or custom setups).league/commonmark, a wrapper may be needed to integrate with other parsers (e.g., Parsedown).composer require livewire/livewire
app/Providers/AppServiceProvider.php:
use Livewire\Livewire;
public function boot()
{
Livewire::configureToUseSPAMode();
}
composer require spatie/commonmark-wire-navigate
spatie/laravel-markdown:
use Spatie\Markdown\MarkdownRenderer;
use Spatie\CommonmarkWireNavigate\CommonmarkWireNavigate;
$renderer = new MarkdownRenderer();
$renderer->getEnvironment()->addExtension(new CommonmarkWireNavigate());
league/commonmark setup:
use League\CommonMark\Environment;
use Spatie\CommonmarkWireNavigate\CommonmarkWireNavigate;
$environment = new Environment();
$environment->addExtension(new CommonmarkWireNavigate());
spatie/commonmark-mermaid). Test in isolation first.@markdown), ensure the parser is injected correctly.wire:navigate behavior in Livewire components (e.g., click handlers, dynamic updates).wire:navigate link failures (e.g., via Livewire’s wire:ignore or JavaScript errors).wire:navigate: Verify parser integration.| Failure Scenario | Impact | Mitigation |
|---|---|---|
| Livewire SPA mode misconfigured | Links fail to navigate via SPA. | Verify Livewire::configureToUseSPAMode(). |
| Markdown parser not updated | wire:navigate ignored. |
Ensure the extension is registered last. |
| Conflicting CommonMark extensions | Attribute corruption or errors. | Test extensions in isolation. |
| Non-JS users | Links behave as traditional anchors. | Add data-wire-navigate fallback or polyfill. |
| Malformed Markdown | Parsing errors or broken links. | Validate Markdown input (e.g., with spatie/laravel-markdown). |
wire:navigate.wire:navigate vs. traditional links.How can I help you explore Laravel packages today?