Headings
Description
Markdown headings, marked by hash characters (#), indicate different levels of content hierarchy from h1 to h6. ParsedownExtended not only supports these standard headings but also offers enhanced functionalities such as automatic permalink generation and customizable heading levels. A key feature is the ability for users to define their own logic for creating anchor IDs using the setCreateAnchorIDCallback method.
Configuration Syntax
Configure headings using the setSetting method:
$ParsedownExtended->setSetting('headings', (boolean|array) $value);
This setting can be a boolean to globally enable/disable headings or an array for more detailed configurations.
Parameters
- allowed (array): Specify which heading levels are allowed.
- auto_anchors (boolean): Toggle automatic permalink generation for headings.
- blacklist (array): List of IDs to exclude from automatic anchor generation.
- delimiter (string): Character(s) to use for separating words in anchor IDs.
- lowercase (boolean): Whether to convert anchor IDs to lowercase.
- transliterate (boolean): Whether to transliterate characters in anchor IDs.
- replacements (array): List of characters to replace in anchor IDs.
Examples
Disable Headings
To disable headings processing:
$ParsedownExtended->setSetting('headings', false);
Custom Anchor IDs
Implement custom logic for anchor IDs:
$ParsedownExtended->setCreateAnchorIDCallback(function($text, $level) {
return 'custom-anchor-' . $level . '-' . strtolower(str_replace(' ', '-', $text));
});
Configure Allowed Headings
Specify allowed heading levels:
$ParsedownExtended->setSetting('headings.allowed', ['h1', 'h2', 'h3']);
Blacklist Heading IDs
Define a blacklist for heading IDs:
$ParsedownExtended->setSetting('headings.auto_anchors.blacklist', ['my_blacklisted_header_id', 'another_blacklisted_id']);