Как мне реализовать StackOverflow-подобную Markdown в PHP?

Что я ищу?

Я ищу язык уценки, который похож на тот, который используется здесь в stackoverflow.

Возможные решения

Я мог бы пойти и написать свой собственный язык разметки, но я думаю, что это будет пустой тратой времени. Это возможно, хотя.

Что я действительно хочу знать, так это то, является ли язык разметки StackOverflow открытым исходным кодом или есть похожие пакеты с открытым исходным кодом, доступные для использования в PHP.

1

Решение

Реализация уценки

Вы должны искать уже существующую библиотеку, которую вы можете подключить и использовать.

Во-первых, вам нужно выбрать между двумя основными группами реализации уценки.

  • основной
  • расширенный (таблицы и т. д.)

Stackexchange использует то, что я бы назвал базовой или оригинальной уценкой.

Некоторые поисковые термины, которые вы должны изучить:

  • основной
    • Джон Грубер Уценка
    • CommonMark
    • PHP Markdown
  • расширенный
    • Флетчер Пенни МультиМаркдаун
    • PHP Markdown Extra
    • PHP MultiMarkdown
    • PHP Parsedown

Я использую PHP Parsedown. Я нахожу это эффективным, но немного странным и нетерпимым.

Следует отметить, что определение Markdown сильно нарушено, кроме CommonMark, разметка, используемая исходной и другими реализациями, не является четко определенной, поэтому разные реализации часто будут давать разные результаты и поддерживать разные функции.

Безопасность

Есть некоторые проблемы безопасности. Markdown, доступный для конечных пользователей, позволяет им вставлять произвольный HTML, который может создавать межсайтовый скриптинг и другие проблемы безопасности. Возможно, вам придется предварительно обработать разметку или постобработать HTML, чтобы удалить проблемные элементы. По этой причине Stackexchange допускает только ограниченное подмножество HTML.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]