如何迭代所有主题以将它们导出为Markdown?

大家好。我正在为 Discourse 站点寻找内容存档的选项。我找到了关于创建和提供 WARC 的帖子,这给了我一些可以参考的东西,但我真的很想将所有主题/帖子/等等导出为 Markdown。

我读了这篇:Export topic as markdown

现在我想知道如何遍历所有主题 URL,以便将其转换为 /raw/ URL 并将所有主题帖子导出为 Markdown。有没有一种简单的方法可以获取站点上所有主题 URL 的列表?我需要打开 Rails 控制台吗?是否有单个 Ruby 类可以枚举所有主题 URL?或者其他方法?

非常感谢。

1 个赞

我到了那里,但我仍然很想听听更简单的路径。

  1. 使用 Discourse 管理员下载站点的备份。
  2. 在备份文件中找到 PostgreSQL 数据库转储,然后将其恢复到本地数据库。
  3. select id from topics,然后将其粘贴到文件中。
  4. 使用 sed 或其任何类似工具将主题 ID 转换为 https://my-discourse-site/raw/<topic 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. 从该 JSON 中的 topic_list.topics 数组获取第一批主题 ID。
  3. 检索 topic_list.more_topics_url 并转到 #2

感谢您的帮助。然后我该如何遍历这些分类?

请求 /site.json 并遍历 categories 数组。

1 个赞