朔のテンプレート
朔 4.0.0以降では Jinja2 というテンプレートエンジンを使って、出力するHTMLを生成しています (一部例外があります)。 一般的な書式は Jinja2 documentation を見てもらうとして、 どんな変数を定義しているのかを説明します。
テンプレートは template ディレクトリにあります。 書き換えると朔の再起動なしに反映します。
どのテンプレートでも使える変数
- cgi (オブジェクト)
- 呼び出し側のLightCGIオブジェクト。
- environ (文字列の辞書)
- LightCGIの環境変数。
- ua (文字列)
- UserAgentの文字列。携帯電話ではこれを見て分岐を書くことになるかも。
- message (文字列の辞書)
- file/message-*.txtで指定するメッセージの辞書。
- lang (文字列)
- どの言語で出力するか。デフォルトではja(日本語)とen(英語)のみ。
- config (オブジェクト)
- 設定ファイルによる設定項目。
- appli (文字列の辞書)
- アプリケーションとCGIの対応表。 現在は {'thread': '/thread.cgi'} のみ。
- gateway_cgi, thread_cgi, admin_cgi, mobile_cgi (文字列)
- 各種CGIのURLのパス部分。'/thread.cgi' など。
- root_path (文字列)
- ルートのURLのパス部分。 デフォルトでは / 。
- archive_uri (文字列)
- 保管庫のURL。設定していなければ空文字列。 gateway.cgi等では保管庫のルート、 thread.cgi等ではそのスレッドの保管庫を指す。
- types (文字列の配列)
- どんなアプリケーションがあるか。現在はthreadのみ。
- isadmin, isfriend, isvisitor (bool変数)
- アクセスした人がその権限を持つかどうか。
- localtime (関数)
- 整数を YYYY-mm-dd HH:MM 形式に整形する。
- str_encode (関数)
- URLエンコード。
- file_decode (関数)
- ファイル名→タイトルの変換。
- escape (関数)
- タグ等のHTMLエスケープ。 ♥はそのままなど、ちょっと特殊。
- escape_simple (関数)
- タグ等のHTMLエスケープ。
- escape_space (関数)
- タグ等のHTMLエスケープに加え、 連続するスペースが表示されるようにする。
- make_list_item (関数)
- gateway.cgi で各スレッドへのリンクを生成する。
- gateway_link (関数)
- gateway.cgi で最終更新等へのリンクを生成する。
各テンプレートに固有の変数
各テンプレートを見てください。