blog

初めての Middleman シリーズ初めてのMiddleman:Middleman Blogの記事データを使いやすく管理する方法

    • Ryuichi Nonaka
    この記事は書かれてから1年以上経過しており、内容が古い場合があります。

    はじめに

    Middleman-blogの記事データをブログディレクトリに直置きするのではなく1つのディレクトリにまとめる方法について小ネタの紹介です。

    Middleman-blogのテンプレートを見ていただくとわかると思いますが、記事データとなる2012-01-01-example-article.html.markdownがそのまま置かれており、このまま使うのは少し憚られます。せめて記事データを1つのディレクトリの中に保存、欲を言えば月ごとにディレクトリを分けたいです。

    config.rbでMiddleman-blogの設定を変える

    記事データをディレクトリ分けして管理するためにconfig.rbに設定を加えます。Middleman-blogの細かい設定について、ここでは説明を省きます。ある程度は公式ドキュメント:ブログ昨日に記載されているのでぜひ一読を。

    今回は記事データを一つにまとめたいだけなので、1つの設定項目だけいじります。以下の指定がデフォルト値です。config.sourcesのルールに該当したファイルが記事として扱われます。

    activate :blog do |config|
      config.sources = "{year}-{month}-{day}-{title}.html"
    end
    

    このままではブログの直下に記事データを置かなければならないので、下記のように変更してarticlesディレクトリで管理できるようにします。

    activate :blog do |config|
      config.sources = "articles/{year}-{month}-{day}-{title}.html"
    end
    

    これだけでも良いですが、より管理し易くするために、月までディレクトリに分割します。日を含めないのは下書きの状態が何日も続く場合に、毎回ファイルのディレクトリ移動を行わなくても済むようにです。手間でなければ日もディレクトリで切っても良いと思います。

    activate :blog do |config|
      config.sources = "articles/{year}/{month}/{day}-{title}.html"
    end
    

    加えて、書き出し先のディレクトリを制御したい場合はpermalinkの設定を変更します。

    activate :blog do |config|
      config.permalink = "hogehoge/{year}/{month}/{day}/{title}.html"
    end
    

    これで記事を管理し易くなりますね。 以上、小ネタの紹介でした。

    次回:初めてのMiddleman:Middleman-blogのシングルブログを前提としたSkeletonを作った

    シリーズ

    1. 初めてのMiddleman:rbenv, bundler 環境でMiddlemanを使ったHello World
    2. 初めてのMiddleman:レイアウト機能でレイアウトとコンテンツを分離する
    3. 初めてのMiddleman:パーシャルを使ったコンテンツのモジュール化
    4. 初めてのMiddleman:SCSSのコンパイルとテンプレートの基礎
    5. 初めてのMiddleman:Sass MixinライブラリのBourbon, Neatを導入してみる
    6. 初めてのMiddleman:データファイルとデータファイルを使った動的ページ生成
    7. 初めてのMiddleman:サイトにブログ機能を追加する
    8. 初めてのMiddleman:Amazon S3にビルドされたファイルを同期する
    9. 初めてのMiddleman:HTML/CSS/JS/画像をビルド時に圧縮する
    10. 初めてのMiddleman:設定について
    11. 初めてのMiddleman:静的サイトのキャッシュとasset_hash拡張を使ったキャッシュのパージ
    12. 初めてのMiddleman:Middleman::S3Syncで使うAWS IAMユーザーのアクセスキー管理方法について
    13. 初めてのMiddleman:Helperを使ってGravatarのアイコンを表示する
    14. 初めてのMiddleman:アセットパイプラインを使った外部アセットファイルの読み込みと結合
    15. 初めてのMiddleman:Bowerを使ってjQueryなどのライブラリをロードする
    16. 初めてのMiddleman:スケルトンを自作する方法
    17. 初めてのMiddleman:Middleman Blogの記事データを使いやすく管理する方法
    18. 初めてのMiddleman:Middleman-blogのシングルブログを前提としたSkeletonを作った
    19. 初めてのMiddleman:Middleman-blogでマルチブログを試してSkeletonを作った
    20. 初めてのMiddleman:Markdown EngineをkramdownからRedcarpetに切り替える
    21. 初めてのMiddleman:RedcarpetとMiddleman::Rougeを使ったシンタックスハイライト
    22. 初めてのMiddleman:Middleman-Syntaxを使ったシンタックスハイライト
    23. 初めてのMiddleman:Middleman-Blogで記事毎に画像を管理する方法
    24. 初めてのMiddleman:Gulpを使ってサムネイル画像を生成する
    25. 初めてのMiddleman:Middleman-OGPのOGP画像指定を相対パスで設定する
    26. 初めてのMiddleman:Middleman-OGPでMiddleman-BLogにOGPを設定する
    27. 初めてのMiddleman:Middleman-Titleでタイトルタグを手軽に設定する
    28. 初めてのMiddleman:多言語化 - 言語ファイルの作成とヘルパーの埋め込み
    29. 初めてのMiddleman:Middleman-blogにカテゴリやシリーズなどのカスタムコレクションを追加する方法
    30. 初めてのMiddleman:Bowerで管理されているフォントファイルをインポートする

    コメント・フィードバック