Linux中國

如何動態生成 Jekyll 配置文件

靜態網站生成器 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,並使它們在我的本地筆記本電腦上工作。

C結合動態配置文件

一個簡單的例子,假設你想在你的網站上顯示當前日期。它的 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 意味著更少的基礎設施移動部件。

我希望這能在你的下一個靜態網站項目中給你一些幫助。繼續閱讀,並祝你編碼愉快。

這篇文章最初發布在 作者的網站 上,並經授權轉載。

via: https://opensource.com/article/21/11/jekyll-config-files

作者:Ayush Sharma 選題:lujun9972 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國