Как перебрать все темы, чтобы экспортировать их в Markdown?

Привет, друзья. Я рассматриваю варианты архивирования контента на сайте Discourse. Нашёл тему о создании и обслуживании WARC-файлов, что даёт мне некоторую основу для работы, но мне бы очень хотелось экспортировать все темы/ветки/что там ещё в формате Markdown.

Я прочитал это: Export topic as markdown

Теперь хочу узнать, как перебрать все URL-адреса тем, чтобы превратить их в адреса формата /raw/ и скачать все ветки тем в виде Markdown. Есть ли какой-то простой способ получить список всех URL-адресов тем на сайте? Нужно ли открывать консоль Rails? Существует ли какой-то один класс Ruby, который может перечислить все URL-адреса тем? Что-то в этом роде?

Большое спасибо.

Я добрался до этого, но мне всё ещё хотелось бы узнать о более простых путях.

  1. Используйте админ-панель Discourse для загрузки резервной копии сайта.
  2. Найдите дамп базы данных PostgreSQL внутри файла резервной копии и восстановите его в локальную базу данных.
  3. Выполните select id from topics, затем скопируйте результат в файл.
  4. Используйте sed или аналогичные утилиты, чтобы преобразовать ID тем в ссылки вида https://my-discourse-site/raw/<ID темы>.
  5. Выполните for...; do wget $url; done.
  1. Получите JSON-файл категории, например https://meta.discourse.org/c/support.json (который перенаправляет на https://meta.discourse.org/c/support/6.json).
  2. Извлеките первую порцию идентификаторов тем из массива topic_list.topics в этом JSON.
  3. Получите значение topic_list.more_topics_url и перейдите к шагу 2.

Спасибо за это. Как мне затем перебирать категории?

запросить /site.json и перебрать массив categories.