首页 > 解决方案 > 可以从多个存储库发布 docusaurus 交叉存储库,以将文档聚合在一起吗?

问题描述

我的问题:是否有任何开箱即用的 docusaurus 功能(除了https://github.com/facebook/docusaurus/pull/764)可以使以下操作更容易?(我在这里问过这个问题,因为他们的 github 问题模板告诉我这种类型的问题将被关闭,而是在这里问他们)。

在我的公司,我们有几个不同的存储库,其中包含 markdown 文档以及从各种不同编码语言的源代码文档生成的 markdown。

我想探索使用 docusaurus 来定义一个中心站点,但从许多不同的存储库中提取文档。

我想这样做:

这是 docusaurus 所期望的结构:

docs/            # all documentation should be placed here
website/
  blog/
  build/         # on yarn run build
  core/
    Footer.js
  package.json
  pages/
  sidebars.json
  siteConfig.js
  static/

这是我想最终得到的已发布网站的结构:

/v1/products/{product}/{version}/{language}/{content as from docs/}
# e.g.
/v1/products/spanner/{version}/en-GB/readme.html

/v1/internal/{gh-org}/{gh-repo}/{language}/{content as from docs/}
#e.g.
/v1/my-org/my-repo/{version}/en-GB/readme.html
/v1/my-org/my-repo/{version}/en-GB/proto-generated.html

v1是不是因为我预测我会忘记一些东西,它让我可以对冲这一点,并使以后的重大更改重定向更容易)

我认为因此这是我需要将事物聚合成的中间结构:

docs/
  product/
    language/
      prose|generated-lang 
  gh-org/
    repo/
      language/
        prose|generated-lang
website/
  blog/
  product/
    language/
      prose|generated-lang 
  gh-org/
    repo/
      language/
        prose|generated-lang
  core/
    Footer.js
  package.json
  pages/
  product/
    language/
      prose|generated-lang 
  gh-org/
    repo/
      language/
        prose|generated-lang
  sidebars.json
  siteConfig.js
  static/
  product/
    language/
      prose|generated-lang 
  gh-org/
    repo/
      language/
        prose|generated-lang

……这能连在一起吗?

我可以很容易地通过 bash 或子模块 git clone 来安排它;这不是一个特别的问题。我想知道是否已经存在一些东西可以让我避免需要这样做 - 例如文档站点工具的本机功能、bazel 规则等等。

标签: documentationhugodocusaurus

解决方案


您可以使用脚本来提取这些 md 文件,将它们放在正确的位置,然后构建 docusaurus。您可以使用 Github 的操作来自动更改您的源代码库之一


推荐阅读