如何自定义Jekyll的网址?

时间:2011-12-29 06:29:15

标签: html ruby jekyll

我想使用Jekyll创建一个网站。不是博客。有没有办法避免在网址和网页的文件名中指定创建日期?

我认为Jekyll背后的想法非常棒,但它似乎与博客生成内容有关,而在更一般的用例中也可能有用。

4 个答案:

答案 0 :(得分:48)

在_config文件中,您可以将永久链接更改为您喜欢的任何内容,例如我的

permalink: /blog/:title

关于日期你可以使用YAML前面的事情选择你自己的日期,再次在我的

title: example
date: you can pick what ever date you want

答案 1 :(得分:9)

如果您不生成博客页面,则可以在目录结构中创建映射到某些URL的文件。如果您的目录具有结构

,则在localhost上运行
- _layouts/
- config.yml
- index.html
- some_other_page.html
- some_directory/
    - index.html
    - some_sub_page.html

在jekyll处理完文件后,您将在以下位置获得内容:

  • 0.0.0.0:4000(index.html)
  • 0.0.0.0:4000/some_other_page.html(some_other_page.html)
  • 0.0.0.0:4000/some_directory(some_directory / index.html)
  • 0.0.0.0:4000/some_directory/some_sub_page.html(some_directory / some_sub_page.html)

You can also use the permalink attribute on each post to set one manually, or set a different default in config.yml永久链接只有一小部分变量可供使用,需要在每个要放入非标准位置的文件中定义。

此目录结构也会自动对您的帖子进行分类。所以你可以:

- some_category (defined in the yaml front matter or the _config.yml
    - index.html
    - _posts/
        - some_post.md
        - some_other_post.md

帖子会自动将类别设置为“某个类别”,而index.html将显示在0.0.0.0:4000/some-category,并采用默认的永久链接格式。类别变量在永久链接格式字符串中以:category形式提供。

答案 2 :(得分:4)

文档说的是什么:

  

您可以在_config.yml文件中配置永久链接,如下所示:

permalink: /:categories/:year/:month/:day/:title.html
     

如果您未指定任何永久链接设置,则Jekyll会将上述模式用作默认设置。永久链接也可以使用内置永久链接样式设置:

permalink: date
     

虽然您可以使用模板变量指定自定义永久链接模式,但为方便起见,Jekyll还提供了以下内置样式。

     
      
  • date = /:categories/:year/:month/:day/:title.html
  •   
  • pretty = /:categories /:year /:month /:day /:title /
  •   
  • 序数= /:categories/:year/:y_day/:title.html
  •   
  • none = /:categories/:title.html
  •   

来源:https://jekyllrb.com/docs/permalinks/

这是我使用的基本设置:

permalink: pretty

这会将页面设置为漂亮的永久链接样式。因此'/contact.md'将成为'/ contact /'.

我如何将它用于博文:

permalink: /blog/:title/

这确保路径包含(缓和的)标题。

我如何将其用于收藏:

permalink: /desiredpath/:name/

这确保路径包含文件名。

答案 3 :(得分:2)

在寻找_pages目录中整理jekyll页面的方法时遇到了这个老问题,类似于_posts。然后访问这些页面而不在URL中显示整个路径。

对我来说效果更好的方法是使用jekyll collections,如下所示:

1 - 在_config.yml中添加集合:

collections:
   pages:
     output: true
     permalink: /:path/

2 - 创建一个名为_pages的新目录(它应该具有相同的集合名称,前缀为_

3 - 将_pages文件夹中的页面添加为.md或.html文件,以YAML Front Matter开头。

例如。 /_pages/about.md将如下所示:

---
layout: page
---

<!-- about page content -->

构建之后,about页面的网址将为<your-web-site>/about

或者,要显示集合名称,您必须将其永久链接定义为:

permalink: /:collection/:path/