如何动态生成 Jekyll 配置文件

系统 Linux
使用 Python 或 Bash 将动态数据插入 Jekyll 静态网站中,并且避免创建一个 API 后端。

[[433689]]

使用 Python 或 Bash 将动态数据插入 Jekyll 静态网站中,并且避免创建一个 API 后端。

静态网站生成器 Jekyll 使用 _config.yml 进行配置。这些配置都是 Jekyll 特有的。但你也可以在这些文件中 用我们自己的内容定义变量,并在整个网站中使用它们。在本文中,我将重点介绍动态创建 Jekyll 配置文件的一些优势。

在我的本地笔记本电脑上,我使用以下命令来服务我的 Jekyll 网站进行测试:

  1. bundle exec jekyll serve --incremental --config _config.yml

结合多个配置文件

在本地测试中,有时需要覆盖配置选项。我的网站的 当前 _config.yml 有以下设置:

  1. # Jekyll Configuration
  2.  
  3. # Site Settings
  4. url: "https://notes.ayushsharma.in"
  5. website_url: "https://notes.ayushsharma.in/"
  6. title: ayush sharma's notes ☕ + 🎧 + 🕹️
  7. email: ayush@ayushsharma.in
  8. images-path: /static/images/
  9. videos-path: /static/videos/
  10. js-path: /static/js/
  11. baseurl: "" # the subpath of your site, e.g. /blog

由于本地的 jekyll serve URL 是 http://localhost:4000,上面定义的 URL 就不能用了。我可以创建一个 _config.yml 的副本 _config-local.yml 并替换所有的值。但还有一个更简单的选择。

Jekyll 允许指定多个配置文件,后面的声明覆盖前面的声明。这意味着我可以用以下代码定义一个新的 _config-local.yml

  1. url:""

然后我可以把上述文件和我的主 _config.yml 结合起来,像这样:

  1. bundle exec jekyll serve --incremental --config _config.yml,_config-local.yml

通过合并这两个文件,这个 jekyll serve 的 url 的最终值将是空白。这就把我网站中定义的所有 URL 变成了相对的 URL,并使它们在我的本地笔记本电脑上工作。

C结合动态配置文件

一个简单的例子,假设你想在你的网站上显示当前日期。它的 bash 命令是:

  1. > date '+%A, %d %B %Y'
  2. Saturday, 16 October 2021

我知道我也可以 使用 Jekyll 的 _config.yml 的自定义内容。我将上述日期输出到一个新的 Jekyll 配置文件中。

  1. my_date=`date '+%A, %d %B %Y'`; echo 'my_date: "'$my_date'"' > _config-data.yml

现在 _config-data.yml 包含:

  1. my_date: "Saturday, 16 October 2021"

我可以把我的新配置文件和其他文件结合起来,在我的网站上使用 my_date 变量。

  1. bundle exec jekyll serve --incremental --config _config.yml,_config-local.yml,_config-data.yml

在运行上述命令时,{{ site.my_date }} 输出其配置的值。

结论

上面的例子很简单,但可能性是无穷的。Bash、Python 和其他编程语言可以动态地生成 Jekyll 配置文件。然后我可以在 build 或 serve 过程中结合这些文件。

对于 findmymastodon.com我使用 Python 来获取 Mastodon 的用户统计数据。然后我把这些写进一个新的 _config-data.yml 文件(目前是手动)。最后,主页和其他页面从配置文件中显示这些。这样,我就可以利用一个动态的后台,并且仍然保持我所喜欢的所有静态网站的优点。

我希望这能为你自己的静态网站激发一些想法。Jamstack 对于静态网站是很好的,但你可以避免为动态内容创建整个 API 后台。为什么不使用一个构建作业来创建带有更新内容的配置文件呢?这可能不适合每一种情况,但少一个 API 意味着更少的基础设施移动部件。

我希望这能在你的下一个静态网站项目中给你一些帮助。继续阅读,并祝你编码愉快。 

 

责任编辑:庞桂玉 来源: Linux中国
相关推荐

2011-04-12 09:53:32

Spring

2019-11-22 10:00:53

ICC配置文件Windows 10

2009-06-08 16:44:00

Struts配置文件

2010-03-25 19:01:43

ngnix配置文件

2010-02-03 09:19:31

Python模块

2010-03-25 17:46:27

nginx配置文件

2011-01-13 16:27:26

Linux配置文件

2011-01-19 14:00:21

2022-04-28 09:46:20

Nginx文件Linux

2010-12-28 16:35:32

Outlook 配置文

2010-12-27 14:59:31

Outlook 配置文

2010-08-03 11:29:53

路由器配置

2021-07-08 21:19:04

BashLinux

2018-08-08 10:10:54

Windows 10Windows网络配置

2021-03-12 08:00:00

Kubernetes工具

2009-06-17 14:10:30

Spring配置文件

2009-09-22 10:23:15

Hibernate配置

2010-08-05 14:36:07

NFS服务

2011-02-25 16:39:34

proftpd配置文件

2010-05-05 16:14:09

Unix管理
点赞
收藏

51CTO技术栈公众号