Enhanced Markdown parser with custom extensions and improvements. Forked from Michelf/php-markdown
Important: Edgering extensions translate simplified input shortcuts into standard Markdown syntax. They don't create new markdown codes, but provide easier ways to write existing Markdown features.
- Input Shortcuts: Translates simplified syntax into standard Markdown Extra format
- PHP Version Compatibility: Automatically selects appropriate Markdown library based on PHP version
- Enhanced Images: Support for nested images and alignment shortcuts
- Custom Tables: Simplified table syntax that converts to standard Markdown tables
- Smart Links: Automatic CSS class assignment for social media and email links
- Backward Compatibility: Maintains full compatibility with standard Markdown Extra
require_once 'markdown.php';
echo Markdown($text);This will automatically:
- Check PHP version compatibility (PHP 7.4+ uses enhanced version)
- Load appropriate Markdown library
- Apply all Edgering enhancements
For enhanced features only:
require_once 'Edgering/MarkdownEdgering.php';
$text = \Michelf\MarkdownEdgering::defaultTransform($text);
$text = \Michelf\MarkdownExtra::defaultTransform($text);
$text = \Michelf\MarkdownEdgering::defaultPostTransform($text);For standard Markdown Extra without enhancements:
require_once 'Michelf/MarkdownExtra.inc.php';
echo \Michelf\MarkdownExtra::defaultTransform($text);All Edgering enhancements work as input translators - they convert simplified shortcuts into standard Markdown Extra syntax before processing.
Converts simplified image-link syntax to standard Markdown nested images:
Input Shortcut:
[image.jpg](link-url)Translated to Standard Markdown:
[](link-url)Converts alignment shortcuts to standard Markdown Extra attribute syntax:
Input Shortcuts:
[c] # Center
[l] # Left
[r] # Right
[p] # Right (alias)Translated to Standard Markdown Extra:
{.ImgAlignCenter}
{.ImgAlignLeft}
{.ImgAlignRight}Converts bracket-and-semicolon syntax to standard Markdown tables:
Input Shortcut:
[Header 1;Header 2;Header 3
Value 1;Value 2;Value 3
Value 4;Value 5;Value 6]Translated to Standard Markdown:
| Header 1 | Header 2 | Header 3 |
|----------|----------|----------|
| Value 1 | Value 2 | Value 3 |
| Value 4 | Value 5 | Value 6 |With explicit header separator:
[Header 1;Header 2;Header 3
----;----;----
Value 1;Value 2;Value 3]Automatically adds CSS classes to recognized platform links using standard Markdown Extra attribute syntax:
Default Supported Platforms:
- Facebook →
.lnkFB - Instagram →
.lnkIG - Twitter →
.lnkTW - YouTube →
.lnkYT - Email addresses →
.lnkMail - PDF files →
.lnkPDF
Examples:
[Visit us](https://facebook.com/page) → [Visit us](https://facebook.com/page){.lnkFB}
<user@example.com> → [user@example.com](mailto:user@example.com){.lnkMail}
[Document](file.pdf) → [Document](file.pdf){.lnkPDF}You can customize which platforms are recognized and their CSS classes:
// Add LinkedIn support
\Michelf\MarkdownEdgering::addKnownLink('linkedin', 'LI');
// Add GitHub support
\Michelf\MarkdownEdgering::addKnownLink('github', 'GH');
// Add TikTok support
\Michelf\MarkdownEdgering::addKnownLink('tiktok', 'TT');// Remove Twitter support
\Michelf\MarkdownEdgering::removeKnownLink('twitter');// Get current configuration
$links = \Michelf\MarkdownEdgering::getKnownLinks();
print_r($links);// Direct access to the static property
\Michelf\MarkdownEdgering::$known_links['custom'] = 'CU';
unset(\Michelf\MarkdownEdgering::$known_links['facebook']);- PHP 7.4+: For enhanced features and modern syntax
- PHP < 7.4: Falls back to legacy
Michelf/previous/markdown-extra-1.2.8.php
markdown/
├── markdown.php # Main entry point with auto-detection
├── Michelf/ # Original Michelf Markdown library
│ ├── Markdown.php
│ ├── MarkdownExtra.php
│ ├── previous/
│ │ └── markdown-extra-1.2.8.php # Legacy version for PHP < 7.4
│ └── ...
└── Edgering/ # Edgering enhancements
└── MarkdownEdgering.php
This project maintains the same license as the original Michelf/php-markdown project.