Базовый инструмент архивации для Discourse

Инструмент архивирования обновлён с использованием Codex (май 2026)

Похоже, что сохранение всего сайта Discourse в статическом виде — задача довольно сложная. Согласно этому посту Джеффа Аткинсона, это «гораздо сложнее, чем можно подумать». Также не видно, чтобы это было приоритетом для команды Discourse, что вполне понятно.

Однако для моих целей мне действительно требовался способ генерации базовых статических HTML-версий моих сайтов Discourse. Я использую Discourse уже несколько лет в качестве форума для обсуждения вопросов при преподавании курсов высшей математики в колледже, поэтому каждые несколько месяцев я закрываю один или два сайта и запускаю новые. Очевидно, что обсуждения на закрываемых сайтах имеют ценность, поэтому мне действительно нужно было найти способ их сохранить. В конечном итоге я решил создать собственный инструмент.

Основная идея проста: использовать API Discourse для обхода сайта, получения обработанной версии каждого сообщения и преобразования её в HTML. Инструмент в значительной степени ориентирован на мои собственные потребности как профессора математики в колледже, который использует небольшие форумы Discourse для поддержки своих математических курсов. Таким образом, математический контент, например f(x)=e^{-x^2}, должен автоматически форматироваться с помощью MathJax V4, а блоки кода с тегом sage преобразовываться в активные ячейки Sage.

Если вам интересно, вы можете просмотреть:

Примечание

Обновление инструмента архивирования было выполнено в значительной степени с использованием Codex.