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']);