Jekyll:如何让它不为每个页面创建子文件夹?

Jekyll: How to make it not to create sub-folder for each page?

我的 Jekyll 根文件夹如下:

   site_root/
        |_______ tutorials/
                    |________ index.html
                    |________ tutorial1.md

但是,在构建之后,它会为 tutorial1.md 生成一个子文件夹,如下所示:

_site/
   |______ tutorials/
               |_______ index.html
               |________ tutorial1/
                             |_______ index.html

如何才能不生成子文件夹而是生成普通页面tutorial1.html?

我认为这与您 _config.yml 中的 relative_permalinks 有关。尝试反转它的值。

您没有指定 Jekyll 版本。查看:

http://jekyllrb.com/docs/upgrading/

可以在页首permalink: tutorial1/。在这种情况下将其删除,或将其更改为 permalink: tutorial1.html.

'permalink: pretty' 设置在 _config.yml。在这种情况下更改为 'permalink: none'

默认情况下,Jekyll 会为(例如)permalink: /:title 的永久链接样式创建 /some-title/index.html 的文件夹结构。要使用友好的永久链接实现合理的文件夹结构,请安装 jekyll-clean-urls(处理这种特定情况)或类似的插件。这将产生这样的文件夹结构:

/some-title.html

或者对于 /:categories/:title 的永久链接样式:

/some-category/some-title.html

...摆脱浪费的文件夹结构。基本的插件逻辑很简单。来自 sources 的示例:

def destination_with_clean_urls(dest)
  path = destination_without_clean_urls(dest)
  path.sub!(/\/index.html$/, '.html') if clean_urls?(permalink)
  path
end

然后您可以依赖 MultiViews、mod_rewrite 或类似的设备,以便将 /some-title/some-category/some-title 的请求映射到 some-title.html。我自己在生产中使用它(参见个人资料网站),到目前为止它一直很稳定。