PythonまたはBashを使用して、Jekyllの静的サイトに動的なデータを挿入し、APIバックエンドを作成しないでください。
静的サイトジェネレータ 、設定のための_config.ymlを使用しています。これらの設定は、Jekyllに固有のものです。しかし、あなたはまた、これらのファイル内の ことができます 、サイト全体でそれらを使用します。この記事では、私はいくつかの利点を強調します 動的にJekyllの設定ファイルを作成します。
bundle exec jekyll serve --incremental --config _config.yml
複数のプロファイルの組み合わせ
# Jekyll Configuration
# Site Settings
url: "https://..in"
website_url: "https://..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サーブURLはhttp://:00、上記の定義されたURLは動作しませんので。私は_config-local.ymlとして_config.ymlのコピーを作成し、すべての値を置き換えることができます。しかし、より簡単な代替手段があります。
Jekyllは、複数のプロファイルを指定することができ、後の宣言は、以前のものを上書きします。つまり、私は次のコードで新しい _config-local.yml定義することができます:
bundle exec jekyll serve --incremental --config _config.yml,_config-local.yml
動的設定ファイルと組み合わせた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"
bundle exec jekyll serve --incremental --config _config.yml,_config-local.yml,_config-data.yml
上記のコマンドを実行すると、{{ site.my_date }} その設定値を出力します。
はんけつをくだす
上記の例は単純ですが、可能性は無限大です。Bash、Python、および他のプログラミング言語は、動的にJekyllの設定ファイルを生成することができます。Bash、Python、および他のプログラミング言語が動的にJekyllの設定ファイルを生成することができ、私はその後、ビルドまたはサーブプロセスで組み合わせることができます。
、Pythonを使ってMastodonのユーザー統計を取得しました。そして、これらを新しい _config-data.yml ファイルに書き込みます。最後に、ホームページや他のページに、設定ファイルからこれらのデータを表示します。こうすることで、動的なバックエンドを利用しつつ、静的なサイトの利点を維持することができます。
jamstackは静的なサイトには最適ですが、動的なコンテンツのためにAPIバックエンド全体を作成することは避けられます。ビルド・ジョブを使って、更新されたコンテンツを含む設定ファイルを作成するのはどうでしょう?すべての状況に適しているとは限りませんが、APIが1つ減るということは、インフラの可動部分が減るということです。
次回の静的ウェブサイト・プロジェクトの参考になれば幸いです。それでは、よいコーディングを。
この記事は許可を得て転載しています。




