czukowski / markdown-toc
Table of Contents generator for cebe/markdown
Installs: 590
Dependents: 0
Suggesters: 0
Security: 0
Stars: 7
Watchers: 0
Forks: 1
Open Issues: 0
pkg:composer/czukowski/markdown-toc
Requires
- php: >=5.4.0
- cebe/markdown: ~1.1.1
Requires (Dev)
- phpunit/phpunit: ~4.7
This package is auto-updated.
Last update: 2025-10-06 11:26:08 UTC
README
This package provides a PHP trait that to use with cebe's Markdown implementation. It allows to generate ToC from headlines in Makrdown documents and render them as lists. Note: the output is a rendered HTML, not Markdown!
Installation
Recommended installation is via composer by running:
composer require czukowski/markdown-toc "~1.0"
Alternatively you may add the following to the require section of your project's composer.json
manually and then run composer update from the command line:
"czukowski/markdown-toc": "~1.0"
Usage
This package provides a TOCTrait that may be used in classes extending the cebe's original Markdown
parsers.
For more information on how to extend the parser, refer to the original Readme file.
Generating Table of Contents can then be done by calling either of the two available public methods, depending on whether you are generating ToC from one or multiple files:
$markdown = new MyMarkdownWithTOC; // Generate ToC from a single file: $toc1 = $markdown->generateTableOfContents($source, 'index.md'); // Generate ToC from multiple files: $toc2 = $markdown->generateTableOfContentsFromMultiple([ [$intro, 'intro.md'], [$issues, 'issues.md'], [$reference, 'reference.md'], ]);
In the examples above, it's assumed that you've created a class named MyMarkdownWithTOC that uses
TOCTrait.
Additional optional arguments are available that define the list type used and limit the headline levels that ToC is generated from.
Reference
-
generateTableOfContents($markdown, $url, $listType = 'ul', $fromLevel = 1, $toLevel = 6):- @param string
$markdownmarkdown source. - @param string
$urlsource URL. - @param string
$listTypesupported values:ulandol. - @param integer
$fromLeveluse headlines starting with this level - @param integer
$toLeveluse headlines up to this level - @return string
- @param string
-
generateTableOfContentsFromMultiple($sources, $listType = 'ul', $fromLevel = 1, $toLevel = 6):- @param array
$sourcesmarkdown sources and URLs. - @param string
$listTypesupported values:ulandol. - @param integer
$fromLeveluse headlines starting with this level - @param integer
$toLeveluse headlines up to this level - @return string
- @param array
License
The distribution is permitted under the MIT License. See LICENSE.md for details.