Обновление!
Это может быть ответ:
Provides a simple archive of Discourse content
Я посмотрел:
Improving Discourse static HTML archive .
Это устарело.
Я собираюсь закрыть https://forum.talksurf.com/ .
Да, я сделаю архивную копию.
Но что, если мне просто нужны просматриваемые HTML-файлы?
Мне стоит просто запустить ArchiveDiscourse/archive-discourse.py at master · kitsandkats/ArchiveDiscourse · GitHub ?
Или есть что-то получше?
Заранее спасибо!
CC: @pfaffman
Алоха,
Джастин
1 лайк
Не что-то вроде «Машины времени» было бы похоже?
Это сработало. Мне пришлось внести незначительное обновление кода.
master ← justin808:patch-1
opened 11:59PM - 10 Jul 25 UTC
3 лайка
pfaffman
(Jay Pfaffman)
11.Июль.2025 22:36:42
4
Но не намного старше вашей версии Discourse!
Мне удавалось успешно зеркалить сайты с помощью wget. Что-то вроде:
wget --mirror --page-requisites --convert-links --adjust-extension --compression=auto --reject-regex "/search" --no-if-modified-since --no-check-certificate --execute robots=off --random-wait --wait=1 --user-agent="Googlebot/2.1 (+http://www.google.com/bot.html)" --no-cookies --header "Cookie: _t=$COOKIE" https://forum.talksurf.com/
Но вам нужно получить cookie с именем _t.
Напишите мне на почту, и я посмотрю, что смогу сделать.
1 лайк
翔_贺
(翔 贺)
14.Июль.2025 01:50:50
5
Я делал это недавно, и вот как я это сделал.
def serve
file_path = File.expand_path(
params[:path]+"."+params[:format],
File.join(File.dirname(__FILE__), "../../public")
)
if File.file?(file_path)
send_file file_path, type: "text/html", disposition: "inline"
else
render plain: "404 Not Found", status: 404
end
end
Сообщаем, что изображения с новыми ссылками не подтягиваются. Фотографии по-прежнему будут указывать на ваш сервер (который вот-вот будет выведен из эксплуатации!).
Джей любезно прислал мне дамп, и я сравнил его со своим.
Его техника работает лучше в том смысле, что она сохраняет изображения.
Однако его внутренние ссылки ведут не на статьи, а на закрытый сайт. Тем не менее, статьи можно найти вместе с изображениями.
Было бы «приятным дополнением», если бы Discourse поддерживал статический экспорт.
2 лайка
Хорошая новость в том, что у вас есть все данные, поэтому кто-то мог бы написать утилиту для экспорта данных напрямую из резервной копии, если у кого-то появится такое желание.
Но вряд ли мы напишем такую утилиту
1 лайк
pfaffman
(Jay Pfaffman)
15.Июль.2025 00:52:43
9
Исправить внутренние ссылки не должно быть слишком сложно, похоже, им нужно просто добавить .html.
Я думал, что --convert-links исправит эти ссылки…
manuel
(Manuel Kostka)
16.Апрель.2026 18:32:35
10
Мне всё ещё хотелось бы увидеть хороший генератор архивов для Discourse.
Давайте просто дадим Claude возможность попробовать, делясь этим здесь для справки и держа эту функцию в курсе:
Generate a static HTML archive from a Discourse PostgreSQL database .
На данный момент это базовая настройка: темы, категории, теги и пользователи. Поиск тоже работает. Загрузил архив локального демонстрационного экземпляра на страницу GitHub:
3 лайка
pfaffman
(Jay Pfaffman)
16.Апрель.2026 19:05:53
11
Скорее всего, это лучше, чем это.
Вставьте это, чтобы присвоить cookie переменной COOKIE, а затем вставьте файлы cookie, скопированные в буфер обмена расширением Cooke для Chrome.
COOKIE=$(cat |jq -r '.[ ]|select(.name == "\_t")|.value')
Введите URL здесь:
затем вставьте:
wget --mirror --page-requisites --convert-links --adjust-extension --compression=auto --reject-regex "/search" --no-if-modified-since --no-check-certificate --execute robots=off --random-wait --wait=1 --user-agent="Googlebot/2.1 (+http://www.google.com/bot.html)" --no-cookies --header "Cookie: \_t=$COOKIE" =FORUMURL=
4 лайка