mirror of
https://github.com/twigphp/Twig.git
synced 2026-09-16 12:26:30 +00:00
Document how to customize the markdown_to_html converter
This commit is contained in:
@@ -77,3 +77,37 @@ You can also use the filter on an included file or a variable:
|
|||||||
your Markdown library you can configure CommonMark extensions. Register the desired
|
your Markdown library you can configure CommonMark extensions. Register the desired
|
||||||
extension(s) as a service, then tag the service with
|
extension(s) as a service, then tag the service with
|
||||||
``twig.markdown.league_extension``.
|
``twig.markdown.league_extension``.
|
||||||
|
|
||||||
|
Using a Custom Converter
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
The ``markdown_to_html`` filter delegates the conversion to a class implementing
|
||||||
|
``Twig\Extra\Markdown\MarkdownInterface``. Several implementations are provided:
|
||||||
|
``LeagueMarkdown`` (``league/commonmark``), ``MichelfMarkdown``
|
||||||
|
(``michelf/php-markdown``), and ``ErusevMarkdown`` (``erusev/parsedown``). Each
|
||||||
|
accepts a pre-configured converter in its constructor, so you can tune the
|
||||||
|
underlying library or switch to another implementation (for instance
|
||||||
|
``ParsedownExtra``, which extends ``Parsedown``)::
|
||||||
|
|
||||||
|
use Twig\Extra\Markdown\ErusevMarkdown;
|
||||||
|
|
||||||
|
$parsedown = new \ParsedownExtra();
|
||||||
|
$parsedown->setSafeMode(true);
|
||||||
|
|
||||||
|
$markdown = new ErusevMarkdown($parsedown);
|
||||||
|
|
||||||
|
When using ``twig/extra-bundle``, register your converter as the
|
||||||
|
``twig.markdown.default`` service to make it the one used by the filter:
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
# config/services.yaml
|
||||||
|
services:
|
||||||
|
twig.markdown.default:
|
||||||
|
class: Twig\Extra\Markdown\ErusevMarkdown
|
||||||
|
arguments:
|
||||||
|
- '@my_configured_parsedown'
|
||||||
|
|
||||||
|
If you use ``league/commonmark``, prefer the ``commonmark`` configuration of the
|
||||||
|
bundle (for example ``html_input: escape`` and ``allow_unsafe_links: false`` to
|
||||||
|
protect against XSS) instead of replacing the service.
|
||||||
|
|||||||
Reference in New Issue
Block a user