自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何動(dòng)態(tài)生成 Jekyll 配置文件

系統(tǒng) Linux
使用 Python 或 Bash 將動(dòng)態(tài)數(shù)據(jù)插入 Jekyll 靜態(tài)網(wǎng)站中,并且避免創(chuàng)建一個(gè) API 后端。

[[433689]]

使用 Python 或 Bash 將動(dòng)態(tài)數(shù)據(jù)插入 Jekyll 靜態(tài)網(wǎng)站中,并且避免創(chuàng)建一個(gè) API 后端。

靜態(tài)網(wǎng)站生成器 Jekyll 使用 _config.yml 進(jìn)行配置。這些配置都是 Jekyll 特有的。但你也可以在這些文件中 用我們自己的內(nèi)容定義變量,并在整個(gè)網(wǎng)站中使用它們。在本文中,我將重點(diǎn)介紹動(dòng)態(tài)創(chuàng)建 Jekyll 配置文件的一些優(yōu)勢(shì)。

在我的本地筆記本電腦上,我使用以下命令來(lái)服務(wù)我的 Jekyll 網(wǎng)站進(jìn)行測(cè)試:

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

結(jié)合多個(gè)配置文件

在本地測(cè)試中,有時(shí)需要覆蓋配置選項(xiàng)。我的網(wǎng)站的 當(dāng)前 _config.yml 有以下設(shè)置:

  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 就不能用了。我可以創(chuàng)建一個(gè) _config.yml 的副本 _config-local.yml 并替換所有的值。但還有一個(gè)更簡(jiǎn)單的選擇。

Jekyll 允許指定多個(gè)配置文件,后面的聲明覆蓋前面的聲明。這意味著我可以用以下代碼定義一個(gè)新的 _config-local.yml

  1. url:""

然后我可以把上述文件和我的主 _config.yml 結(jié)合起來(lái),像這樣:

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

通過(guò)合并這兩個(gè)文件,這個(gè) jekyll serve 的 url 的最終值將是空白。這就把我網(wǎng)站中定義的所有 URL 變成了相對(duì)的 URL,并使它們?cè)谖业谋镜毓P記本電腦上工作。

C結(jié)合動(dòng)態(tài)配置文件

一個(gè)簡(jiǎn)單的例子,假設(shè)你想在你的網(wǎng)站上顯示當(dāng)前日期。它的 bash 命令是:

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

我知道我也可以 使用 Jekyll 的 _config.yml 的自定義內(nèi)容。我將上述日期輸出到一個(gè)新的 Jekyll 配置文件中。

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

現(xiàn)在 _config-data.yml 包含:

  1. my_date: "Saturday, 16 October 2021"

我可以把我的新配置文件和其他文件結(jié)合起來(lái),在我的網(wǎng)站上使用 my_date 變量。

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

在運(yùn)行上述命令時(shí),{{ site.my_date }} 輸出其配置的值。

結(jié)論

上面的例子很簡(jiǎn)單,但可能性是無(wú)窮的。Bash、Python 和其他編程語(yǔ)言可以動(dòng)態(tài)地生成 Jekyll 配置文件。然后我可以在 build 或 serve 過(guò)程中結(jié)合這些文件。

對(duì)于 findmymastodon.com我使用 Python 來(lái)獲取 Mastodon 的用戶統(tǒng)計(jì)數(shù)據(jù)。然后我把這些寫進(jìn)一個(gè)新的 _config-data.yml 文件(目前是手動(dòng))。最后,主頁(yè)和其他頁(yè)面從配置文件中顯示這些。這樣,我就可以利用一個(gè)動(dòng)態(tài)的后臺(tái),并且仍然保持我所喜歡的所有靜態(tài)網(wǎng)站的優(yōu)點(diǎn)。

我希望這能為你自己的靜態(tài)網(wǎng)站激發(fā)一些想法。Jamstack 對(duì)于靜態(tài)網(wǎng)站是很好的,但你可以避免為動(dòng)態(tài)內(nèi)容創(chuàng)建整個(gè) API 后臺(tái)。為什么不使用一個(gè)構(gòu)建作業(yè)來(lái)創(chuàng)建帶有更新內(nèi)容的配置文件呢?這可能不適合每一種情況,但少一個(gè) API 意味著更少的基礎(chǔ)設(shè)施移動(dòng)部件。

我希望這能在你的下一個(gè)靜態(tài)網(wǎng)站項(xiàng)目中給你一些幫助。繼續(xù)閱讀,并祝你編碼愉快。 

 

責(zé)任編輯:龐桂玉 來(lái)源: Linux中國(guó)
相關(guān)推薦

2011-04-12 09:53:32

Spring

2019-11-22 10:00:53

ICC配置文件Windows 10

2011-01-13 16:27:26

Linux配置文件

2011-01-19 14:00:21

2010-02-03 09:19:31

Python模塊

2010-03-25 17:46:27

nginx配置文件

2009-06-08 16:44:00

Struts配置文件

2010-03-25 19:01:43

ngnix配置文件

2010-12-28 16:35:32

Outlook 配置文

2022-04-28 09:46:20

Nginx文件Linux

2010-12-27 14:59:31

Outlook 配置文

2021-03-12 08:00:00

Kubernetes工具

2021-07-08 21:19:04

BashLinux

2018-08-08 10:10:54

Windows 10Windows網(wǎng)絡(luò)配置

2010-08-03 11:29:53

路由器配置

2011-03-25 17:13:37

Nagios配置文件

2010-08-05 14:36:07

NFS服務(wù)

2010-05-05 16:14:09

Unix管理

2009-09-22 10:23:15

Hibernate配置

2011-01-21 15:08:45

Sendmail
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)