Как конвертировать Markdown в HTML в Symfony 3

Markdown — это инструмент преобразования текста в HTML для веб-авторов. Markdown позволяет писать с использованием простого для чтения, простого для записи простого текстового формата, а затем преобразовывать его в структурно допустимый XHTML (или HTML).

Есть много преимуществ, если вы работаете с Markdown. Он очень гибкий, вы можете выводить свои документы в самых разных форматах. Его можно использовать для публикации в Интернете (когда-то преобразованного в HTML), форматированного текста для отправки электронных писем или импорта в программу верстки. Кроме того, Markdown работает очень быстро, и не только с технической точки зрения, поскольку простое форматирование экономит значительное количество времени по сравнению с HTML-тегами, созданными вручную, и зачастую быстрее, чем использование текстового процессора или редактора WYSIWYG. Кроме того, файл уценки (или только контент) имеет тенденцию быть легче, чем файл HTML (который пригодится для хранения базы данных в вашем проекте, если мы будем говорить в большом масштабе).

В этой статье вы узнаете, как конвертировать Markdown в HTML в вашем проекте Symfony 3, используя любую из 2 самых известных библиотек анализаторов Markdown для PHP, Parsedown или же PHP Markdown.

A. Использование Parsedown

Библиотека Parsedown утверждает, что она является лучшим анализатором Markdown в PHP (по крайней мере, лучше, чем другие доступные анализаторы для уценки, написанные на PHP). Эта библиотека известна, потому что это Github со вкусом. Это означает, что он может обрабатывать специальную разметку Github (например, таблицы, подсветку кода и т. Д.).

Почему Parsedown?

Он пытается читать Markdown как человек. Во-первых, он смотрит на линии. Интересно, как начинаются строки. Это помогает распознавать блоки. Например, он знает, что если строка начинается с - (дефис) тогда, возможно, он принадлежит списку. Как только он распознает блоки, он продолжает содержимое. Поскольку это читает, это следит за специальными символами. Это помогает распознавать встроенные элементы (или встроенные).

Автор называет этот подход «линейным». Он считает, что Parsedown — первый анализатор Markdown, который его использует. После выпуска Parsedown другие разработчики использовали тот же подход для разработки других анализаторов Markdown на PHP и на других языках. Он проходит большинство тестов CommonMark. Большинство тестов, которые не проходят, имеют дело со случаями, которые довольно редки. Тем не менее, по мере развития CommonMark, соответствие должно улучшаться.

Монтаж

Установите пакет, выполнив следующую команду в своем терминале (пока вы находитесь в каталоге вашего проекта):

composer require erusev/parsedown

Если вам нужна дополнительная информация о пакете, пожалуйста, посетите официальный репозиторий Github здесь.

использование

Чтобы использовать Parsedown в вашем проекте, импортируйте класс Parsedown с помощью оператора use в верхней части вашего контроллера:

use Parsedown;

Затем создайте новый экземпляр класса в переменной и используйте текстовый метод для преобразования вашей разметки в HTML:

$Parsedown = new Parsedown();
$html = $Parsedown->text("# Hello World");

пример

Следующий контроллер возвращает HTML, сгенерированный некоторыми примерами уценки, в качестве ответа:

Supported languageSupported language| English (USA)
English (Great Britain) Great Britain| en-US
en-GB |
|Supported language| Español | es-ES |
|Supported language| Deutsch | de-DE |
| Supported language | Italiano |it-IT |
EOF;
return new Response($Parsedown->text($markdownToParse));
}
}

Ответ предыдущего контроллера будет выглядеть так:

Пример разбора HTML PHP Symfony

B. Использование PHP Markdown

Открытый API PHP Markdown состоит из двух классов синтаксического анализатора Markdown и MarkdownExtra, их конструкторов, функций transform и defaultTransform и их переменных конфигурации. PHP Markdown Library была написана Мишель Фортин и это основано на официальном проекте Markdown, написанном Джон Грубер.

Почему PHP Markdown

«Markdown» — это на самом деле две вещи: синтаксис разметки простого текста и программный инструмент, изначально написано на Perl, который преобразует разметку простого текста в HTML. PHP Markdown — это порт для PHP оригинальной программы Markdown Джона Грубера.

Этот пакет библиотеки требует PHP 5.3 или более поздней версии.

Монтаж

Установите пакет, выполнив следующую команду в своем терминале (пока вы находитесь в каталоге вашего проекта):

composer require michelf/php-markdown

Если вам нужна дополнительная информация о пакете, пожалуйста, посетите официальный репозиторий Github здесь.

использование

Чтобы использовать PHP Markdown в вашем проекте, импортируйте основной класс с помощью оператора use в верхней части вашего контроллера:

use Michelf\Markdown;

С PHP Markdown вам не нужно создавать новый экземпляр класса в переменной, так как вы можете использовать статические методы. Для преобразования markdown в html используйте статический метод ::defaultTransform:

$html = Markdown::defaultTransform("# Hello World");

пример

Следующий контроллер возвращает HTML, сгенерированный некоторыми примерами уценки, в качестве ответа:

Supported languageSupported language| English (USA)
English (Great Britain) Great Britain| en-US
en-GB |
|Supported language| Español | es-ES |
|Supported language| Deutsch | de-DE |
| Supported language | Italiano |it-IT |
EOF;
return new Response(Markdown::defaultTransform($markdownToParse));
}
}

Ответ следующего контроллера будет выглядеть так:

PHP Markdown PHP пример

Как видите, типичные таблицы уценок, которые вы используете в Github, отображаются неправильно. Это просто потому, что в официальной документации Markdown говорится, что Markdown не предоставляет никакого специального синтаксиса для таблиц. Вместо этого он использует HTML

синтаксис. Но существуют расширения синтаксиса Markdown, которые предоставляют дополнительный синтаксис для создания простых таблиц.

Ссылка на основную публикацию
Adblock
detector