Плагин WordPress и HTML-текст (особенно для писем)

Хорошо, я отвечу на поднятые вами вопросы по отдельности. Я понимаю, почему вы их связываете, но надеюсь, вы увидите, почему это разные проблемы.

HTML-сущности в текстовых письмах

было бы лучше всего, если бы письма были multipart-формата с чистым текстовым рендерингом markdown text/plain и отдельным text/html

На самом деле именно так сейчас работают уведомления по электронной почте в Discourse. Если вы посмотрите на «оригинал» уведомления по электронной почте в Discourse, то увидите, что там есть текстовая версия и HTML-версия.

Кажется, вы говорите, хотя я пока не до конца уверен в этом, что в текстовой версии уведомлений по электронной почте в Discourse вы получаете HTML-сущности, в результате чего в теле письма, при просмотре его в почтовом клиенте, не поддерживающем HTML, вы видите сами HTML-сущности. Так ли это? Можете ли вы предоставить скриншот этого из почтового клиента (не поддерживающего HTML)?

Если это так, то это проблема, специфичная для генерации и форматирования содержимого писем в Discourse, и лучше вынести её в отдельную, более целенаправленную тему в Support или bug.

HTML в постах Discourse

Вы поднимаете здесь актуальный вопрос, но с технической точки зрения дело в том, как Discourse в целом подходит к импортируемому контенту. Текущее значение по умолчанию для импортируемого контента — HTML, а не markdown.

Другие примеры, где это можно увидеть, — это плагин RSS Polling, который, как и плагин WP Discourse, импортирует HTML в содержимое поста. Обратите также внимание, что настройка сайта embed support markdown по умолчанию выключена, как и все остальные настройки сайта, касающиеся встроенного HTML в постах (например, allowed embed selectors).

Я частично гадаю, но наиболее вероятная причина (или причины) принятия этого стратегического решения в ранние дни работы Discourse с импортируемым контентом — это сочетание простоты и точности, то есть преобразование из HTML в markdown будет неполным. Есть одно ключевое исключение, о котором я упомяну ниже.

Плагин WP Discourse мог бы попытаться преобразовать HTML-код постов WordPress в markdown перед отправкой их в Discourse. Да, существуют библиотеки на PHP, которые конвертируют HTML в markdown, но при конвертации языка разметки, особенно учитывая различные варианты markdown, это никогда не бывает так просто.

Более того, попытка плагина WP Discourse обработать конвертацию была бы ошибочной, учитывая, что в Discourse уже существует собственный конвертер HtmlToMarkdown. В настоящее время этот конвертер обрабатывает преобразование HTML в markdown в письмах, импортируемых в Discourse. Если HTML-код постов из WordPress должен быть конвертирован в markdown Discourse, это должно быть обработано этим конвертером.

В настоящее время плагин WP Discourse использует API Discourse для публикации постов, то есть конечную точку /posts. Таким образом, по сути, вы говорите, что хотите добавить поддержку конвертера HtmlToMarkdown в конечную точку Discourse /posts (например, в качестве необязательного параметра запроса). Вы можете выступить за это, и если это будет реализовано, плагин WP Discourse примет это как необязательную настройку.