带有子目录和自己的index.html的Jekyll集合



你好,提前感谢您对我的问题的任何帮助/建议

背景信息:我一直在使用Jekyll静态网站生成器,我正在使用的主题有一个博客功能posts,它已经在使用中了。现有循环显示其目录中的所有markdown文件:{% assign posts = paginator.posts | where: "lang", page.lang %}{% for post in posts %}

我目前使用的是Jekyll 3.8.5。

目标:创建第二个博客notes。然而,这个博客应该能够容纳3个子目录,并可以选择在3个子类别之间进行筛选。顶级目录是"发行说明",此页面应显示所有子目录。每个子目录应仅显示其特定文件,即iOS仅显示每个降价文件中按类别"iOS"筛选的特定发布说明。

我想创建一个名为"发布说明"的第二个博客,其中包含3个不同的子集合(类别(,分别是Android、iOS和Windows;发行说明的每个子目录都将包含几个Markdown文件,这些文件都属于相同的类型(相同的标签或类别(

结构

_releasenotes
  - ios
  - android
  - windows

我尝试使用以下线程中的方法来实现该函数:[https://stackoverflow.com/a/38870168/1914835][1] 没有完全成功。

方法:为_releasenotes创建一个单独的index.html,这将使用以下循环显示该目录中的所有标记文件:

{% assign notes = site.releasenotes| sort:'title' %}
{% for note in notes %}
{% if page.url != note.url and include.category == nil or note.url contains include.category %}
<a href={{ note.url | prepend: site.baseurl }}>{{note.title}}</a>
{% endif %}
{% endfor %}

然后将此代码注入到发行说明目录中的index.html中,该目录看起来如下:

---
title: release notes
---
{% include list-releasenotes.html %}

结果:一旦网站建立,它就会用原始网站index.html替换创建的index.html,这会破坏目的。每个子集合都有自己的"index.html",用于循环其中的所有MD文件。然而,Jekyll并没有为每个集合使用所提供的索引页,而是生成自己的index.html作为(错误的("登录页"。

杰基尔生成releasenotes/index/index.html:(

给我:

public
- releasenotes
    - index.html (the original site index.html)
    /ios
    /android
    /windows
    /index/index.html (mine that includes another html)

代替:

public
- releasenotes
    - index.html (Mine which includes another html)
    /ios
    /android
    /windows

我如何配置Jekyll,使其不将我的index.html(在_releasenotes中(转换为子目录,而是应该使用我创建的index.html作为发布说明的入口页面?请记住,我可以在发布说明文件夹和子文件夹中看到所有发布说明,我应该能够在iOS、Android和Windows之间进行筛选

以下是收集配置:

collections:
  releasenotes:
    output: true
    android:
      output: true
    ios:
      output: true
    portal:
      output: true

由于默认的永久链接设置,_releasenotes/index.html集合项文件输出到releasenotes/index/index.html

您可以通过在该文件的首页设置以下内容来覆盖它:

permalink: /releasenotes/index.html

相关内容

  • 没有找到相关文章

最新更新