世界を旅して暮らしたい放浪エンジニアブログ

Jekyllでカスタムプラグインを作成してみる

環境変数をjekyll build時にHTMLへ埋め込むプラグインを作成

[ 目次 ]

はじめに

こんにちは、香港に住んでいるWEBデベロッパーのなかむ(@nakanakamu0828)です。

この記事は過去に運用していたブログからの移行記事になります。

今回は、Jekyllのプラグインを作成します。
きっかけはGoogle AnalyticsのトラッキングIDやGoogle MapのAPI Keyなどセキュリティ的に_config.ymlに直接埋め込みたくないものを環境変数で持たせたいと思ったからです。
また、WEBサービスを作る際は、production, staging, developmentなど環境によって変数を変更したいケースがあります。そちらの考慮も踏まえ環境変数のプラグインを作成しています。

プロジェクトルートに_pluginsディレクトリを作成

jekyllでは_pluginsディレクトリ内のrubyスクリプトを自動で読み込むように設計されています。
プラグインは主に3種類存在します。

■ ジェネレータ(Generators)
→ 独自のルールでJekyllに追加コンテンツを生成させる必要があるときに利用します。今回はジェネレーターを使ってsite変数に環境変数を設定していきます。

■ コンバータ(Converters)
→ サイトで利用したい新しいマークアップ言語があるときは、独自のコンバータを実装することで利用できるようになります

■ タグ(Tags)
→ 独自のLiquidタグが作成できます。

環境変数をsite変数に格納するスクリプト(environment-variables.rb)を作成

# environment-variables.rb
module Jekyll
    class EnvironmentVariablesGenerator < Generator
        def generate(site)
            site.config['env'] = {}
            ENV.each do |key, value|
                site.config['env'][key] = value
            end
        end
    end
end

利用方法

環境変数として「GOOGLE_ANALITICS_TRAKING_ID=XXXXXX」を設定した場合、html側では以下のように組み込むことができます。

{{ site.env.GOOGLE_ANALITICS_TRAKING_ID }}

最後に

今後もブログの機能拡張を進めていく予定です。
以下のプラグイン機能も取り込んでいきたいです。

■ ジェネレータ(Generators)

■ タグ(Tags)

皆さんもプラグインを上手に利用して独自のサイトを構築していきましょう。  
プラグインについては こちら を参考にさせて頂きました。

前のページ

次のページ

Profile

なかむ🇭🇰Webデベロッパー

なかむ🇭🇰Webデベロッパー

香港在住4年目になるWEBエンジニアのなかむです。 現在は、LaravelやRailsを利用したWEB開発を中心にエンジニアをしています。 顧客は全て日本の企業になります。リモート開発にて各企業様の支援を行なっております

プロフィール詳細はこちら

Latest Posts