nanoblocktech / markdown
PHP parsedown plugin to allow video and table of content.
Installs: 36
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/nanoblocktech/markdown
Requires
- php: ^8.0
- erusev/parsedown: ^1.7
README
A lightweight PHP extension of Parsedown that adds:
- Audio and video embedding using markdown syntax
- Automatic Table of Contents generation
- Responsive HTML tables
- External links automatically open in a new tab when the hostname differs
Installation
Installation via composer.
composer require nanoblocktech/markdown
Quick Start
use Luminova\ExtraUtils\HtmlDocuments\Markdown; $markdown = new Markdown(); echo $markdown->text('### Hello World');
Media Embedding
Embedding audio and videos in markdown.
Audio
{Description}(audio)(/path/to/audio.opus)
Video
{Description}(video)(/path/to/video.mp4)
Supports both local and remote URLs.
Configuration
Enable Features
// Generate table of contents $markdown->tableOfContents(true); // Make HTML tables responsive $markdown->responsiveTable(true);
Table of Contents Options
// Include specific heading levels $markdown->setHeadings(['h1', 'h2']); // Prefix for generated heading IDs $markdown->setIdPrefix('my-contents-'); // Retrieve generated table of contents $tableOfContents = $markdown->getTableOfContents();
Link Handling
// Base URL for relative links $markdown->setLink('https://example.com/assets/');
Media Types
$markdown->setMediaType('audio', 'audio/ogg; codecs=opus'); $markdown->setMediaType('video', 'video/mp4');
Rendering Markdown
echo $markdown->text($content);
Full Example
$markdown = new Markdown(); $markdown->tableOfContents(true); $markdown->responsiveTable(true); $markdown->setHeadings(['h1', 'h2']); $markdown->setIdPrefix('toc-'); $markdown->setLink('https://example.com/assets/'); $markdown->setMediaType('audio', 'audio/ogg; codecs=opus'); $markdown->setMediaType('video', 'video/mp4'); $mdText = <<<MD # Welcome Some intro text. ## Audio Example {Cool song}(audio)(/media/song.opus) ## Video Example {Demo video}(video)(/media/demo.mp4) MD; echo $markdown->text($mdText);
Features vs Parsedown
| Feature | Parsedown | PHP Markdown Extension |
|---|---|---|
| Markdown rendering | ✅ | ✅ |
| Audio embedding | ❌ | ✅ |
| Video embedding | ❌ | ✅ |
| Table of Contents generation | ❌ | ✅ |
| Responsive HTML tables | ❌ | ✅ |
| Auto external link target="_blank" | ❌ | ✅ |
Notes:
- External links automatically receive
target="_blank"when the host differs from your application domain.- Media embedding works with local paths or remote URLs.
- Table of contents is generated from configured heading levels only.