https://github.com/czukowski/markdown-toc
Table of Contents generator for cebe/markdown
https://github.com/czukowski/markdown-toc
markdown table-of-contents toc
Last synced: about 1 year ago
JSON representation
Table of Contents generator for cebe/markdown
- Host: GitHub
- URL: https://github.com/czukowski/markdown-toc
- Owner: czukowski
- License: mit
- Created: 2016-09-26T15:15:52.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2016-09-27T14:54:13.000Z (over 9 years ago)
- Last Synced: 2025-03-26T15:54:38.153Z (about 1 year ago)
- Topics: markdown, table-of-contents, toc
- Language: PHP
- Homepage:
- Size: 9.77 KB
- Stars: 7
- Watchers: 0
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
Table of Contents generator for cebe/markdown
=============================================
This package provides a PHP _trait_ that to use with [cebe's Markdown implementation][cebe/markdown].
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][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:
```json
"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][markdown-usage].
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:
```php
$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_ `$markdown` markdown source.
* @param _string_ `$url` source URL.
* @param _string_ `$listType` supported values: `ul` and `ol`.
* @param _integer_ `$fromLevel` use headlines starting with this level
* @param _integer_ `$toLevel` use headlines up to this level
* @return _string_
- `generateTableOfContentsFromMultiple($sources, $listType = 'ul', $fromLevel = 1, $toLevel = 6)`:
* @param _array_ `$sources` markdown sources and URLs.
* @param _string_ `$listType` supported values: `ul` and `ol`.
* @param _integer_ `$fromLevel` use headlines starting with this level
* @param _integer_ `$toLevel` use headlines up to this level
* @return _string_
License
-------
The distribution is permitted under the MIT License. See LICENSE.md for details.
[cebe/markdown]: https://github.com/cebe/markdown
[composer]: https://getcomposer.org/
[markdown-usage]: https://github.com/cebe/markdown#usage