— title: middleman-tansu の簡単な紹介 author: yterajima

date: 2014-01-25 23:32:00 +0900

middleman-tansu は Markdown ファイルをディレクトリを使って分類管理するために開発されているテンプレートです。例えるなら静的な wiki のようなものを目指しています。バラバラに管理される Markdown を tansu (箪笥) に入れてまとめて管理できるように工夫されています。

middleman-tansu が提供する機能

  1. middleman tansu コマンド

  2. 各ディレクトリに index.html を用意する機能

  3. 自動生成された index.html を活用するための Helper

  4. プロジェクトテンプレート

1.middleman tansu コマンド

middleman-blog のようにコマンドラインからページのひな形を作成することができます。

$ middleman tansu path/to/ページ

このコマンドによって source/path/to/ページ.html.md が作成されます。同時にこのテンプレートに必要な Frontmatter を書き込みます。例えば次のようになります。

---
title: ページ
author: yterajima
date: 2015-01-31 08:11:22 UTC
---

author には使用している PC のユーザ名, date のシステム上で設定されているタイムゾーンを使って決定しています。もし任意のユーザ名, 任意のタイムゾーンを利用したい場合コマンド実行時に指定することもできます。

$ middleman tansu path/to/ページ -z Tokyo -a yterajima

2.各ディレクトリに index.html を用意する機能

大量の Markdown ファイルを管理するには工夫が必要です。

source ディレクトリ以下に次のようにディレクトリとファイルが用意されているとしましょう。

- source
    - ディレクトリ1
        - ページ1.md.html
        - ページ2.md.html
    - ディレクトリ2
        - index.html.slim
    - templates
        - index.html.slim

この状態で $ middleman server を実行した場合, http://localhost:4567 にアクセスしても何も表示されます。また, http://localhost:4567/ディレクトリ1/ にアクセスしても当然何も表示されません。このまま build & deploy した場合, それぞれのページにたどり着けません。

そこで, middleman-tansu では index.html にあたるファイルがない場合, 動的にそのページを生成しそのディレクトリ中のページやディレクトリへのリンクを提供します。

NOTICE: index.html として出力されるファイルが存在する場合は, middleman-tansu はそのディレクトリに元からあった index.html を採用します。

このディレクトリ構成の場合, source/index.htmlsource/ディレクトリ1/index.html を自動的に用意します。用意すると言ってもファイルを直接ディレクトリの中に作成する訳ではありません。動的ページ つまりは proxy を使って $ middleman server, $ middleman build の際にページを出力します。

3.自動生成された index.html を活用するための Helper

いくつかの Helper を提供しています。主に使われるのは次の 2 つになるでしょう。

4.プロジェクトテンプレート

middleman-tansu は拡張機能と同時にプロジェクトテンプレートを提供しています。次のコマンドで初期化できます。

$ middleman init PROJECT_NAME --template tansu

このまま $ middleman server すると基本的な機能が用意されたテンプレートを使うことができます。このテンプレートは github-flavored-markdown を使用することができます。もちろんコードの構文ハイライトも対応します。