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

1.6.4 2026-02-25 20:12 UTC

This package is auto-updated.

Last update: 2026-02-25 20:32:50 UTC


README

PHP Version Composer License

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.