Radiantを使う

このページは"Using Radiant":http://wiki.radiantcms.org/Using_Radiant の邦訳です。

構成要素

”/admin” URLから管理画面に入ります。一度ログインを行うと、3つの主要な要素(Pages, Snippets, Layouts)を編集する事が可能です。

サイトの作成

クリーンインストールを利用してセットアップをした場合、Radiantはページテンプレートデータを供給しないので、あなたは若干の仕事をしなければなりません – レイアウトの作成(DOCTYPE宣言、HTMLコンテナタグとその他を含む)、必要ならばスニペットを作成し、ページを作成してください。どんなサイトと同様に、良いレイアウトテンプレートを整えることは、長期的に見ると、サイトの管理や変更点の修正において多くの助けになります。サイトのリニューアル、会社商標の変更、目的の変更などです。新しいサイトを準備した経験は、大いな助けになります。Radiantのテンプレート構造は、他のものと似ています。ウェブ上で捜すか、詳細な情報が欲しければ、何冊かの専門的なウェブ設計本を調べてください。

レイアウト

Radiant管理インターフェースの上部で「Layouts」タブを選んだならば、レイアウトのリストが表示されます – あなたが何もこれまでつくらなかったならば、空のリストになっています。
リストの底の「New Layout」ボタンは、名前と本文からなります。名前の下にある「More link」を選択すると、content typeフィールドを追加する事ができます。
レイアウト名は、スペースまたはタブを含むことができません。
もし、Webサイトを手で作ることに慣れているなら単語をアンダーラインで分割すること(例:radiant_cms)は道理にかなったことです。
名前は、100文字以内かつユニークでなければなりません。

ページ本文とスニペッツを含むだけでなく、1つのレイアウトは他のレイアウトを含むことができ、そこにはcontent typeが入ります。レイアウトはデフォルトでは、「text/xhtml」になります。
しかし、content typeが「text/css」、またはレトロに行きたいのであれば、「text/html」を使ったスタイルシートを含んだレイアウトを作る事が出来ます。

どんな言語で書かれているレイアウトでも、あなたが選択したcontent type(デフォルトの設定にしていたら「text/xhtml」)が適切です。
スニペッツとページ本文を提供する際、レイアウトは正しい構文のドキュメントを生成することを確実とするように気をつけなければなりません。
HTMLとCSSについては、W3Cからオンライン文法確認サービスがあり、あなたの強い助けになるでしょう。このサービスによって正確な文法だと一度認められると、Textileのようなフィルターがページやスニペッツを利用すれば、フィルターは文法的に正しいHTMLを生成する事を保証するので、あなたは文法が正しいかどうかを心配することは必要なくなります。
この記事を書いている今現在、Radiantのインストール初期状態では、Textile記法は、RedClothによってサポートされています。Markdown記法は、BlueClothによってサポートされています。

HTMLに加え、textまたはCSSをレイアウトのために作成するでしょう。Radiantは、レイアウト、スニペッツ、ページ本文を結びつける魔法の項目セットを持っています。
これらは、XML要素の形をとります。これらのフォームコンテナとフォームの属性(例えば、ページタイトルという属性)から成ります。多くのコンテナは、オブジェクトを定義します。
例えば、あなたが現在のタイトルが欲しいとき、または子ページが欲しいとき、または親ページなどです。

これらのタグは後で詳しく解説します。

スニペッツ

Radiant管理インターフェースの上部で「Snippets」タブを選んだならば、レイアウトのリストが表示されます。あなたがこれまでスニペッツを作成していなければ、名前と本文を入力する画面が表示されます。名前の項目には、レイアウト項目と同じ制限があります。もし、TextileやMarkdownを利用したいのであれば、本文の下にあるドロップダウンメニューで希望のフィルターを選択することができます。スニペッツは、レイアウト項目で指定したcontent type、またはページに含まれるレイアウトに対応する適切な言語で書かれていなければなりません。TextileフィルターかMarkdownフィルタ−は、[X]HTMLドキュメントの一部分として利用します。

ページ

ページはRadiant管理画面のページタグから編集します。ページは、木構造に則って加える事が出来ます。しかし、木の開閉ボタンと「add/edit/remove」機能はあなたの予想する方向で動きます。

始め付け加えるページは、あなたのホームーページになります。一度加えると、子ページしか加える事が出来ません。全てのページはタイトルを持ちます。本文にTextileかMarkdownフィルタ−を利用出来ます。最初に、レイアウトを選択します。親ページからレイアウトを継承するか、リストからレイアウトを選ぶ事が出来ます。もし、ルートページにおいてレイアウトで「継承」を選択すると、レイアウトは選択されません。この場合、推奨されない行為ですが、Radiantはレイアウトとスニペッツを無視し、非常に簡素なコンテンツマネージメントシステムとして使う事が出来ます。

子ページがアルファベット順(追加の順序でない)に並び替えられることに注意してください。

ページの振る舞い

Behaviourメニューは、「標準」に設定にされています。「アーカイブ」は、アーカイブのインデックスページを作ります。この子ページのURLの形式は、%Y/%m/%d (例えば 2004/05/06) のようになります。あなたが望めば、「年別アーカイブインデックス」、「月別アーカイブインデックス」、そして「日別アーカイブインデックス」を使ってオリジナルのインデックスページを作る事も可能です。「Page Missing」は、「404 Not Foundエラー」が出た際に表示させるページです。「環境変数ダンプ」は、デバッギングのために使います。Radiantアプリケーションが動作している際に、環境変数をダンプします。

ページの状態

状態メニューは、ページの可視性を決定します。あなたは、Radiantタグの利用によっても、子ページや特定の状態のページを巡回したり、返すことができます。

「公開」の状態にあるページだけは、標準で閲覧可能なサイトとして見られます。

「ドラフト」と「レビュー」の状態は、ページのレビュー進歩を追う場合に利用する事ができます。
「非公開」の状態にあるページは、名前の示す通り表示されません。

作業の保存

「保存」と「保存して編集を続ける」ボタンは、特にページの編集の際に役立ちます。

ウェブブラウザとオペレーティングシステムは、100%、信頼できません!あなたが事故を心配するならば、あなたは時々、あなたの製作中の作品(まだ「ドラフト」の状態)を保存するためにRadiantデータベースを使うことができます。

部分

通常、あなたはページのbodyを編集します。しかしながら、余分の内容を提供させるための拡張タブが、bodyの隣にあります。
実際に、「body」と「extended」と名付けられたパートを両方とも削除したい場合、両方とも削除する事ができます。「body」を削除し、レイアウトにあなたが定めた他のパート名が使わない限り、何も現れません。緑色の「+」でパートを追加し、赤色の「ー」でパートを削除します。

スラグとパンくず

スラグは、ページのリンクを参照するための名前です。通常、ページのタイトルから自動的に付けられます。しかしながら、タイトルの下の「詳細」を選択する事によって自分で付ける事も可能です。タイトルに日本語を利用した場合は、自分でアルファベットの文字列を使ってスラグを付けるとよいでしょう。

例えば、ルートページのタイトルが「Some source code」ならば、リンクは標準で http://myhost.com/some-source-code/ になります。もし、スラグを“some_strangeLink.html”に変えた場合は、 http://myhost.com/some_strangeLink.html/ になります。注意すべきは、”/”が残る事に注意してください。Radiantでは、ファイル名拡張子を入れることを避けましょう。スラグが、ページのためにURLの一部を作るので、含める事のできる文字列は制限されています。また、スペースが許されない点に特に注意してください。

パンくずリストは、非常に異なります。サイトは、あなたがサイト階層の範囲内でどこに行ったかについて、ユーザーに教えるために、しばしばこれらのリストを使います。
後述するタグによって、パンくずリストを自動で表示します。

これは、Radiantが閲覧者にサイトの構造を知らせる1つの方法です。標準では、リストにおける各々のページのタイトルがリストの中身のための見えるテキストとして使われます、しかし、あなたはこれを越えるのを好むかもしれません。

キャッシング

Radiantの最適化特徴はページキャッシュです。リクエストが来るたびに、ゼロからページを作り直さなければならないのを止めます。

ページを変更しても、キャッシュが有効なために変更が反映されない場合は、確実に変更を有効にするために、ページ一覧の下の方にある「キャッシュをクリア」ボタンをクリックしてください。次にリクエストが有った場合にページを1から作るために一時的にパフォーマンスが落ちるでしょう。

Radiantタグ

レイアウト、スニペッツとページ本文では、タグを使用する事ができます。下記のドキュメンテーションが不正確だと思ったり、変化について調べたいならば、Radiantのソースファイル(app/models/page_context.rb)を参照してください。

タグは、ページ、スニペッツの本文のみで利用する事が出来ます。タイトルや名前については利用する事ができません。

角括弧が下で使われる所で、彼らは中で含まれるものがオプションのことを示します。あなたがそれを含めることに決めるならば、角括弧を含まないでください – 例えば:

<r:children:each [offset=“number”]>

実際のレイアウト、スニペット、ページの中では、以下のように示します。

<r:children:each offset="2">

Containers

コンテナは、他のRadiantタグを囲みます。中のタグは、コンテナの範囲内で利用出来、現在のページまたは特定の子供のタイトルを取得・表示します。

<r:page>…</r:page>

<r:parent>…</r:parent>

親ページへのアクセスを提供します。

<r:children>…</r:children>

子ページへのアクセスを提供します。どの子ページを参照したいかを指定しないと直接役に立ちません。(実際の利用は下のようになります)

<r:children:first>…</r:children:first>

or

<r:children>
<r:first>

</r:first>
</r:children>

アルファベットを昇順でソートする際の最初の子ページを返します。
このタグに囲まれている全てのページ属性タグは、最初の子ページと対応しています。

<r:children:last>…</r:children:last>

or

<r:children>
<r:last>

</r:last>
</r:children>

アルファベットを昇順でソートする際の最後の子ページを返します。
このタグに囲まれている全てのページ属性タグは、最後の子ページと対応しています。

<r:children:each [offset=“number”] [limit=“number”] [by=“attribute”] [order=“asc|desc”] [status=“draft|reviewed|published|hidden|all”]> … </r:children:each>

子ページごとに繰り返し処理を行います。このタグに囲まれた全てのページの属性タグは、子ページと対応づけされています。「…」の部分で子ページを利用する事が出来ます。
パラメーターを追加する事によって繰り返しの対象を絞り込む事が出来ます。statusは、対象となるページの状態です。byの属性によって並び替えることが出来ます。orderは、並び順を降順(desc)か昇順(asac)で指定する事が出来ます。offsetは、繰り返しの起点を示します。limitは、繰り返しの終点を示します。
注意すべきは標準のソート順はアルファベット順ではなく、追加の昇順です。そのため、最初と最後の子ページは、:first と :last セレクタを与えた場合のものと異なるかもしれません。

<r:child>…</r:child>

このタグに囲まれたページ属性タグは、現在の子ページを参照します。ほとんどの場合必要でありません。
注意すべきは、このタグが、特定の子ページを選択していないので、直接役に立たない点です。なたが子ページを参照したいならば、上で説明した :first または、:lastセレクタを使う必要があります。

<r:find url="value_to_find">…</r:find>

このタグの中には、‘url’属性で該当する全てのページに関係するタグを参照します。

ページ内容

Radiantで最も重要なタグのいくらかは、レイアウトの中でスニペットまたはページ内容をインクルードするのに用いられます。

<r:content [part=“part_name”] [inherit=“true|false”] [contextual=“true|false”] />

ページのメイン・コンテンツを表示します。part属性を利用する事によって、パート名を指定する事が出来ます。標準では、bodyになっています。inherit属性は、親のパート引き継ぎます。標準では、inheritはfalseです。親ページのパートを引き継がせることを強制します。contextual属性を利用する事によって、子ページの中で親ページのパートを作り直します。標準では、contextual属性はfalseになっています。

絶対禁止! ページをこの中に書いてはいけません!もし書いてしまった場合、あなたは、Radiantとそれ支えるRubyを絞首刑に処します。あなたはあなたのホスティングサービスへ行って、強制的にプロセスをつぶす必要があります。その間に、CPUのリソースとメモリ容量のすべてを消費しています。このタグを書く時点で、Radiantは再帰的な包含から身を守る何もしません。それは:

例 1: 決してこうしないでください!

<r:page><r:content /></r:page>

…あなたがページの中にそうするならば、正確結果が出ます!

<r:snippet name=“snippet_name” />

ページの範囲内でname属性で指定するスニペットを参照します。

属性

属性は、ページのURL、タイトル、著者を含みます。上記のコンテナは、属性がどのページに作用するかについて決定します。標準で、現在のページは、常に選ばれます。

<r:url />

現在のページのURLを返します。

<r:title />

現在のページのタイトルを返します。

<r:author />

現在のページの著者の名前を返します。誰かがRadiant管理画面にログインして、ページを作成したり、修正するとき、著者は暗黙のうちに設定されます。

<r:date [format=“format_string”] />

ページの日付を表示します。標準では、作成・公開された時間です。日付の形式に関する属性は、プログラミング言語Rubyのstrftimeメソッドと同じです。標準では、「%A, %B %d, %Y」です。for属性では、どの日付を表示するかを指定します。published_at、created_at、updated_at、そしてnowがあります。nowは、現在の日付/時間を表示します。

<r:link [anchor=“name”] [other attributes…] />

or

<r:link>…</r:link>

ページのリンクを表示します。ページのタイトルをリンクの名前として使うような場合、単体で使います。二重のタグとして利用するとき、二つのタグに囲まれたタグは、リンクテキストのように働きます。リンクタグは、全ての属性をHTMLタグへ渡します。class属性やid属性のような属性を渡す場合には非常に便利です。

アンカー属性がタグに通過されるならば、HTMLのAタグのhref属性の値に(『#』)を追加し、HTMLのタグを作ります。これらは、例によってよりよく説明されます:

例 2:

<r:children:first><r:link /></r:children:first>

最初の子ページへのリンクを作成します。リンクテキストは、子ページのタイトルになります。

例 3:

<r:children:last><r:link anchor="hello">Link to child</r:link></r:children:last>

最後の子ページへのリンクを作成します。リンクテキストは、”Link to child”になります。
リンクの中のURLは、「/」で終わります。#hello は、アンカーテキストの後に追加されると、子ページ内のローカルアンカーへリンクを貼り、HTMLは()のようなアンカーを定めます。

<r:children:count />

子ページの数を表示します。

<r:navigation urls=“[Title: url; Title: url; …]”>
<r:normal><a href=“<r:url />”><r:title /></a></r:normal>
<r:here><strong><r:title /></strong></r:here>
<r:selected><strong><a href=“<r:url />”><r:title /></a></strong></r:selected>
<r:between> | </r:between>
</r:navigation>

urls属性の3つ状態によって、リンクの一覧を表示します。

  • normal – リンクの通常の状態。
  • here – 現在のページのURLとリンクのURLが一致する状態。
  • selected – 現在のページのURLの子ページである状態。

betweenタグは、それぞれのリンクの間に何を挿入すればよいのかを指定します。
なたが0.6.x使用を使っているならば、注意してください | の代わりに;を使ってナビゲーションURLを区切ること。

条件付きの要素(Conditional Elements)

Radiantは、条件によって振る舞いを変えるためにいくつかの方法をサポートします。

<r:header [name=“header_name”] [restart=“name1[;name2;…]”]>…</r:header>

内容が1つ前のヘッダと一致しない場合だけ、タグに囲まれた部分を表示します。これは、dateヘッダーを子のページで表示する場合に非常に便利です。もし、複数のヘッダブロックをあなたが使いたいとき、name属性によってヘッダに名前を付ける事が出来ます。ヘッダに名前が付けられたとき、他の同じ名前のヘッダまで再起動しないというのは間違いです。他のヘッダに名前を付けたいときは、セミコロンを付けて列挙してください。

<r:if_content [part=“part_name”]>…</r:if_content>

ページにパートが存在する場合に限り、タグに囲まれた部分を表示します。標準では、part属性はbodyにセットされています。

<r:unless_content [part=“part_name”]>…</r:unless_content>

if_contentタグの反対。つまり、ページにパートが存在しない場合に、タグに囲まれた部分を表示します。

<r:if_parent>…</r:if_parent>

ページが親ページを持つ場合に限り、タグに囲まれた部分を表示します。言い換えれば、ルートページ以外で動作するということです。

<r:unless_parent>…</r:unless_parent>

if_parentタグの反対。

<r:if_url matches=“regexp” [ignore_case=“true|false”]>…</r:if_url>

matches属性で指定した正規表現で指定したurlと一致したページに限り、タグに囲まれた部分を表示します。
もし、ignore_case属性がfalseの場合、大文字と小文字を区別します。標準では、ignore_caseはtrueになっています。

<r:unless_url matches=“regexp” [ignore_case=“true|false”]>…</r:unless_url>

if_urlタグの反対

<r:random>
<r:option>…</r:option>
<r:option>…</r:option>

</r:random>

optionタグによって指定されたオプションの1つをランダムに表示します。

その他のタグ(Miscellaneous tags)

<r:breadcrumbs [separator=“separator_string”] />

現在のページのパンくず属性を表示します。

<r:comment>…</r:comment>

コメントタグの間は表示されません。

<r:escape_html>…</r:escape_html>

HTMLをエスケープします。HTML文章を表示するために利用します。

<r:rfc1123_date />

登校時間をRFC 1123の形式で出力します。この形式は、RSSフィードに適した形式です。