【问题标题】:How to organize multiple outputs inside a single Jekyll project?如何在单个 Jekyll 项目中组织多个输出?
【发布时间】:2018-01-19 10:40:30
【问题描述】:

我使用 Jekyll 为软件产品创建文档。我有 30 + 具有相同 LIQUID 模板但内容不同的不同产品。每个产品文档都有自己的目录

对于一个项目,一切正常。我有一个内容文件夹以及 css/js 文件夹。我运行“jekyll serve”并发布了一个项目。

问题是,我不想让 30 个 Jekyll 项目一个接一个地存储在类似的 css、configs、js 文件夹中,并且只会在内容部分有所不同。

问题是:如何组织内部结构,这样我就有了一个 具有通用布局和“x”个不同内容文件夹的单个项目?

喜欢:

_product1/

  • 一些子目录

    'topic.md'

_product2/

  • 一些子目录

    'topic.md'

如果可能,我该如何管理输出?我需要分别发布产品 1 和产品 2 ...产品“x”。

感谢您的帮助。

UPD:这里是 GitHub 上的演示项目:https://github.com/plywoods/JekyllDocumentationDemo

【问题讨论】:

  • 在最新的 Jekyll 版本中,他们添加了集合 jekyllrb.com/docs/collections 但目前它对我不起作用。
  • 收藏是我想到的第一件事。有什么问题 - 我将它们用于相同的目的。
  • @astar,感谢您的回复。在我的 Jekyll 项目中,我创建了一个文件夹来保存我所有的收藏。一个集合就是一个文档项目。然后在配置文件中,我指出:collections_dir:folder_with_collections。此外,我在配置文件的 Collections 属性中列出了我所有的收藏。现在,我正在尝试输出任何集合,例如:{% for item in site.collections %} - 它对我不起作用。
  • 这里是关于在哪里声明 collections_dir 的讨论: my_collections:无论是在集合内部还是外部。 collections_dir 是 2018 年 1 月 2 日发布的新功能,它似乎应该放在集合之外。 talk.jekyllrb.com/t/…
  • @AndreyLangovoy 产品之间是否有任何关联?

标签: jekyll documentation-generation jekyll-paginator


【解决方案1】:

在 Jekyll 中进行这种内容分离的方法是使用 Collections

这是一个使用集合的 Je​​kyll 网站示例: https://github.com/netponto/netponto.github.io

_meetings_members_sessions 是不同的集合,类似于您的 _product1_product2 等。


You can customize the output / how the URL is going to be in the _config.yml 你的 Jekyll 网站。例如:

collections:
  meetings:
    output: true
    permalink: /reunioes/:path/
  sessions:
    output: true
    permalink: /sessoes/:path/

要显示集合的项目,例如“会话”集合,您可以使用 something like this:

{% for session in site.sessions %}
  <p>{{ session.title }}</p>
{% endfor %}

如果您在实现集合时遇到问题,请在 GitHub 上整理一个可重现的示例,以便其他人可以看到您尝试做的事情并指出缺少的内容。

【讨论】:

  • 嗨。感谢您的帮助。部分如您所描述的那样工作。但是,有很多不便之处(或者我根本没有弄清楚)。 1. Jekyll 的最新版本引入了允许将所有集合保存在单个文件夹中的新功能。为了让 Jekyll 在该文件夹中查找集合,我需要指定以下内容:collections_dir:folder_with_collections。然后我不能让 Jekyll 显示该文件夹中的集合。 2. 我认为我可以在配置文件中管理我想要输出的部分,只需声明 output: true 或 output: false。
  • 相反,我需要修改布局文件并在液体循环中放置一个特定的产品名称。 3. 另外。我有很多不同内容的收藏。该项目仅包含一个常见的 _images 文件夹。它应该包含所有集合的图像吗?是否可以为每个集合有一个单独的 _image 文件夹? 4. 我有一个共同的布局 - 每个集合/项目内容的页眉和页脚都是相同的。但是,标题应该包含我构建的每个项目的名称。为了使它工作,我需要再次修改布局。
  • 5.为了使搜索对每个单独的集合起作用,我需要再次修改布局。
  • code window.data = { {% for item in site.PROJECT_NAME %} {% if item.title %} {% unless item.excluded_in_search %} {% if added %},{ % endif %} {% assign added = false %} "{{ item.url | slugify }}": { "id": "{{ item.url | slugify }}", "title": "{{ item.标题 | xml_escape }}”、“类别”:“{{ collection.title | xml_escape }}”、“url”:“{{ item.url | xml_escape }}”、“内容”:{{ item.content | strip_html |替换正则表达式:“[\s/\n]+”,“”|条| jsonify }} }
  • 我很抱歉最后一个。我无法想象如何正确格式化它。
猜你喜欢
  • 1970-01-01
  • 2018-02-10
  • 2011-09-12
  • 1970-01-01
  • 1970-01-01
  • 2019-09-22
  • 2014-11-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多