如何使用 Python 或 Bash動態生成 Jekyll 配置檔案
導讀 | 使用 Python 或 Bash 將動態資料插入 Jekyll 靜態網站中,並且避免建立一個 API 後端。 |
靜態網站生成器 Jekyll 使用 _config.yml 進行配置。這些配置都是 Jekyll 特有的。但你也可以在這些檔案中 用我們自己的內容定義變數,並在整個網站中使用它們。在本文中,我將重點介紹動態建立 Jekyll 配置檔案的一些優勢。
在我的本地膝上型電腦上,我使用以下 來服務我的 Jekyll 網站進行測試:
bundle exec jekyll serve --incremental --config _config.yml
在本地測試中,有時需要覆蓋配置選項。我的網站的 當前 _config.yml 有以下設定:
# Jekyll Configuration # Site Settings url: " website_url: " 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 是 ,上面定義的 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 serve 的 url 的最終值將是空白。這就把我網站中定義的所有 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 配置檔案。然後我可以在 build 或 serve 過程中結合這些檔案。
對於 findmymastodon.com,我使用 Python 來獲取 Mastodon 的使用者統計資料。然後我把這些寫進一個新的 _config-data.yml 檔案(目前是手動)。最後,主頁和其他頁面從配置檔案中顯示這些。這樣,我就可以利用一個動態的後臺,並且仍然保持我所喜歡的所有靜態網站的優點。
我希望這能為你自己的靜態網站激發一些想法。Jamstack 對於靜態網站是很好的,但你可以避免為動態內容建立整個 API 後臺。為什麼不使用一個構建作業來建立帶有更新內容的配置檔案呢?這可能不適合每一種情況,但少一個 API 意味著更少的基礎設施移動部件。
我希望這能在你的下一個靜態網站專案中給你一些幫助。繼續閱讀,並祝你編碼愉快。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2842836/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- bash配置檔案
- python 配置檔案如何使用Python
- bash如何處執行啟動檔案 --節選自 man bash
- Python呼叫ansible API系列(四)動態生成hosts檔案PythonAPI
- 使用FreeMarker/Jsp(WebWork2) 生成靜態/動態RSS檔案JSWeb
- 如何獲取java執行時動態生成的class檔案?Java
- Python配置檔案使用教程Python
- php生成靜態檔案PHP
- php生成配置檔案config.php 生成陣列配置檔案PHP陣列
- .NET 中的動態編譯(生成exe檔案)編譯
- 如何動態載入js檔案JS
- /bin/bash 和 /bin/ksh使用的使用者配置檔案的比較
- 用python生成oracle goldengate複製配置檔案PythonOracleGo
- 後臺動態配置config檔案
- Qtum如何新增執行選項(或配置檔案)QT
- hyperf 框架動態修改或追加配置框架
- 如何生成csr檔案
- 直接用 java 命令列動態生成jpg檔案 (轉)Java命令列
- python生成CSV檔案Python
- python 生成requirements 檔案PythonUIREM
- 【python介面自動化】- ConfigParser配置檔案的使用Python
- bash切割檔案
- 瞭解如何用 Bash 讀寫檔案
- javascript如何動態載入js檔案JavaScriptJS
- 3、Webserver如何處理動態檔案WebServer
- Java動態指令碼Groovy讀取配置檔案Java指令碼
- 如何在python中讀取配置檔案Python
- Python如何生成windows可執行的exe檔案PythonWindows
- PYTHON如何在記憶體中生成ZIP檔案Python記憶體
- 我是如何使用freemarker生成Word檔案的?
- 從Matlab到FPGA(Matlab生成coe檔案或mem檔案)MatlabFPGA
- 靜態引數檔案配置
- 結合SpEL使用@Value-基於配置檔案或非配置的檔案的值注入-Spring BootSpring Boot
- 【Python】配置檔案配置路徑Python
- python讀配置檔案配置資訊Python
- 現有表設計如下 如何生成hibernate的配置檔案???
- Oradebug使用淺談--生成Hang或Locking問題分析檔案
- springboot如何使用自定義配置檔案Spring Boot