У меня в WordPress есть тип записи «База знаний», и я хотел бы перенести все эти записи в Discourse для использования с возможностями Discourse Docs и форума.
Мне кажется, что самый простой способ сделать это — автоматически создавать темы в Discourse с помощью плагина WP Discourse. Однако при этом содержимое темы оказывается в формате HTML, что значительно усложняет его дальнейшее редактирование.
Возможно ли настроить плагин так, чтобы он конвертировал весь HTML в Markdown? Или есть более подходящий способ?
Смежный вопрос: любые изображения в записи WordPress создают ссылку на файл на сайте WordPress. Если я удалю запись и файлы из медиабиблиотеки, ссылки сломаются. Можно ли полностью импортировать изображения, как если бы они были вставлены напрямую в Discourse?
Наконец, существует ли автоматический механизм синхронизации/публикации уже существующих записей? Мне бы не хотелось открывать каждую вручную.
(Я заметил, что если включена опция «Принудительная публикация» (Force Publish), я могу просто выделить их все массово, выполнить массовое редактирование и изменить статус записи на «Опубликовано». Это ничего не меняет, но запускает синхронизацию).
Плагин WP Discourse не предназначен для обработки миграции данных. Вы столкнетесь с различными проблемами, включая конвертацию HTML в Markdown, о которой вы упомянули.
Вам необходимо выполнить это через миграцию данных на стороне сервера. Если вы размещены на Discourse.org, они могут сделать это для вас в рамках пакета хостинга.
Если у вас собственный хостинг, вы можете попробовать сделать это самостоятельно, если хотите. У Discourse есть несколько готовых скриптов миграции, которые можно использовать. Если вы решите пойти этим путем и вам понадобится помощь, напишите в канал Development, и я дам вам несколько советов.
В качестве альтернативы вы можете нанять кого-то в канале Marketplace, чтобы они сделали это за вас.
Для будущего использования: я применил полуавтоматический процесс.
Я открыл каждый пост (около 120), опубликовал его в Discourse, а затем использовал это расширение для Chrome, чтобы преобразовать содержимое в Markdown.
Затем я просто копировал этот вывод в Markdown, редактировал тему в Discourse и заменял краткое описание на Markdown. Мне пришлось изменить несколько настроек в конфигурации Markdown, но в остальном всё работало отлично, за исключением некоторых блоков кода и необходимости обновить URL для всех внутренних ссылок. Также мне придётся оставить медиафайлы в библиотеке медиа WordPress, поскольку именно туда ведут все ссылки на изображения.
Это сработало только потому, что посты были созданы с помощью классического редактора. Если бы я конвертировал их в блоки, вывод в Markdown был бы гораздо хуже. Хотя, я полагаю, я мог бы скопировать контент с фронтенда, но качество было выше при копировании напрямую из режима редактирования поста.