如何动态地生成Jekyll配置文件

313 阅读4分钟

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

作者:Ayush

Sharma (通讯员)

11月1日, 2021 | 0 评论

上一篇

注册登录后即可喜欢。

Digital creative of a browser on the internet

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

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

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

结合许多配置文件

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

# Jekyll Configuration# Site Settings
url: "https://notes.ayushsharma.in"
website_url: "https://notes.ayushsharma.in/"
title: ayush sharma's notes ☕ + ? + ?️
email: ayush@ayushsharma.in
images-path: /static/images/
videos-path: /static/videos/
js-path: /static/js/
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

url:""

然后我可以像这样将上述文件与我的主_config.yml

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

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

合并动态配置文件

作为一个简单的例子,假设你想在你的网站上显示当前日期。这方面的bash命令是。

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

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

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

现在_config-data.yml 包含。

my_date: "Saturday, 16 October 2021"

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

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

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

编程和开发

总结

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

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

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

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


这篇文章最初出现在作者的网站上,并经授权转载。

接下来要读的内容

Person using a laptop

用Jekyll建立你的网站

Jekyll是一个开源的静态网站生成器。你可以用Markdown写你的内容,用HTML/CSS做结构和展示,Jekyll把它全部编译成静态网站。

阿尤什-夏尔马

(通讯员)

2021年9月23日

Text editor on a browser, in blue

一个简单的CSS技巧,用于黑暗模式

让你的网站根据用户选择的主题进行调整的能力是一个伟大的可访问性功能。

阿尤什-夏尔马

(通讯员)

2021年10月29日

标签

网络开发

编程

Python

巴什

Ayush Sharma

https://ayushsharma.in

我是一名作家和AWS解决方案架构师。我与初创公司和企业合作,从事软件工程、DevOps、SRE和云架构工作。我把我的经验写在ayushsharma.in。

关于我的更多信息

评论已关闭。

这些评论已经关闭,但是你可以注册登录来对另一篇文章发表评论。

相关内容

Security monster

用这个开源工具保护你的PHP网站不受机器人攻击

Digital creative of a browser on the internet

我最喜欢的优化网页图像的Linux命令

Text editor on a browser, in blue

用Jinja2和Git揭示你的源代码

Creative Commons License本作品采用知识共享署名-相同方式共享4.0国际许可协议进行许可。