https://github.com/nanoblocktech/markdown
https://github.com/nanoblocktech/markdown
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/nanoblocktech/markdown
- Owner: nanoblocktech
- License: mit
- Created: 2024-02-09T05:46:22.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-08-27T17:31:37.000Z (10 months ago)
- Last Synced: 2025-12-14T10:34:50.033Z (6 months ago)
- Language: PHP
- Size: 79.1 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# PHP Markdown Extension
[](https://www.php.net/)
[](https://getcomposer.org/)
[](LICENSE)
A lightweight PHP extension of [`Parsedown`](https://github.com/erusev/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.
```bash
composer require nanoblocktech/markdown
```
---
## Quick Start
```php
use Luminova\ExtraUtils\HtmlDocuments\Markdown;
$markdown = new Markdown();
echo $markdown->text('### Hello World');
```
---
## Media Embedding
Embedding audio and videos in markdown.
### Audio
```markdown
{Description}(audio)(/path/to/audio.opus)
```
### Video
```markdown
{Description}(video)(/path/to/video.mp4)
```
> Supports both local and remote URLs.
---
## Configuration
### Enable Features
```php
// Generate table of contents
$markdown->tableOfContents(true);
// Make HTML tables responsive
$markdown->responsiveTable(true);
```
---
### Table of Contents Options
```php
// 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
```php
// Base URL for relative links
$markdown->setLink('https://example.com/assets/');
```
---
### Media Types
```php
$markdown->setMediaType('audio', 'audio/ogg; codecs=opus');
$markdown->setMediaType('video', 'video/mp4');
```
---
## Rendering Markdown
```php
echo $markdown->text($content);
```
---
## Full Example
```php
$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 = <<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.