CGIぽん
INDEXO
2001年12月30日リリース

INDEXO ver.2.00
文法説明

先に readme.html の「著作権・使用上の注意」を読んでくださいね。

■ 目次


■ INDEXO で始めよう

やぁみんな。 INDEXO (インデクソ)はできるだけ簡単な記述でケータイ用の目次を書くための CGI です。 indexo.txt というファイルをテキストエディタで開き、見よう見まねで書いてみればすぐに i-mode 、 J-SKY 、 H" 、 EZweb 、 ドットi 、 L モードそして PDA のブラウザにも対応したページができあがります。もちろん PC にも対応していますよ。

それぞれの端末の特殊な事情は無視しているので、あまり複雑なことはできませんから注意。

簡単ながらまずは同梱ファイルの説明。

index.cgi
ケータイ・ PC などの端末からアクセスするのはこのファイルです。一行目の perl のパス以外は中身を書き換える必要はありません。
indexo.txt
このファイルの中にいろいろな記述をします。詳しくは次節以降の説明を読んでください。
readme.html
「使用上の注意」など、文法に関すること以外について書いてあります。始めに目を通してくださいね。
grammar.html
いまご覧になっているこのファイルです。 INDEXO の記述方法を説明しています。

このファイルに書いてあることを全部読むのは大変なので、まずは「書き方の例」を読んで見よう見まねで書いてみることをお薦めします。そのあと、壁にぶち当ったら詳しい説明を読んでみてください。ただ、「イメージ表示文」と「アンカー表示文」あたりはちゃんと読んだ方がいいかも知れません。


■ 書き方の例

indexo.txt ファイルへの書き方の例を示します。おおまかな説明をしてあるのでぜひ目を通してください。

#INDEXO
p->http://www.somedomain.com/username/frame.html

title=>INDEXOサンプル
background=>./img/bg.gif
bgcolor=>#ffffff
text=>#333333
link=>#333399

#コメントです。

t<>edhijlpx<>s<>スクロールテキスト
t<>edhijlpx<>l<>左テキスト
a<>edhijlpx<>^<>続けてリンク<>http://specters.net/<>4
t<>edhijlpx<>c<>センターテキスト
t<>edhijlpx<>r<>右表示
t<>edhijlpx<>c<>テキスト表示文は色の指定も可能<>#00ff00
t<>---i----<>l<>i-modeのみ表示
t<>----j---<>l<>J-SKYのみ表示
t<>e-------<>l<>EZwebのみ表示
t<>--h-----<>l<>H"(ONC)のみ表示
t<>-d------<>l<>ドットiのみ表示
t<>edh-----<>l<>EZweb、ドットi、H"のみ表示
t<>-------x<>l<>PDAにも対応したよ
t<>------p-<>l<>PCのみ表示だが、PCは上で飛ばしているので無視される
h<>edhijlpx
i<>edhijlpx<>c<>画像です<>img.png
h<>edhijlpx
a<>edhijlpx<>c<>リンクだぜ<>http://specters.net/cgipon/<>5
m<>edhijlpx<>r<>おがちょ<>cgipon@specters.net<>3
p<>edhijlpx<>^<>電話してね<>090-9999-9999<>2
h<>edhijlpx

INDEXO では、「一行に一文」が基本です。「文」には「宣言文」「コメント文」「飛ばし文」「設定文」「表示文」の 5 種類があります。

まず一行目の

#INDEXO
は宣言文です。 index.cgi はこの一文が書かれたファイルを読み込むことができます。逆に、この一文が書かれていないファイルは無効となりますので注意してください。

2 行目の

p->http://www.somedomain.com/username/frame.html
は、「飛ばし文」です。 "p->" で始まっているので、PCからアクセスした場合に表示させるページを指定しています。 INDEXO ではフレームやテーブルを使った複雑な構成は作れませんので、複雑なページを表示させたいときには、別に PC 用の HTML を作って飛ばしてください。URL は絶対パス( "http://" から始まる記述)で指定する方法と相対パスで指定する方法があります。役割の違いは「飛ばし文」の説明を読んでね。
PC 以外でも特別に別ページに飛ばしたい場合は "d->" , "e->" , "h->" , "i->" , "j->" , "l->" , "x->" で始まる「飛ばし文」を書いてください。それぞれ、ドット i 、 EZweb 、 H" ( ONC )、 i-mode 、 J-SKY 、 L モード、 PDA でアクセスされ時に飛ばすページを指定します。「飛ばし文」で飛ばされない場合はその下の記述が反映されます。

3 行目は空行となっていますが、 INDEXO では空行は無視されます。適当に空行を入れて見やすく構成してください。

4 行目からのひとかたまりは「設定文」です。「設定文」は "=>" で区切ります。
指定できるのは、 "title" と "background" と "bgcolor" と "text" と "link" で、書く順番はどうでもいいです。上の「飛ばし文」で PC を飛ばしているので、 "background" の指定は反映されません。

次にあるのがコメント文で、 Perl 風に "#" で始めます。この行はまったく無視されますので、間に説明を入れておきたいときや、文をコメントアウトしたいときにご利用下さい。

最後に列んでいるのがメインコンテンツの「表示文」です。表示文は "<>" で区切って、表示させたい順番に上から記述してください。
「表示文」には "t" で始まる「テキスト表示文」、 "a" で始まる「アンカー(リンク)表示文」、 "i" で始まる「イメージ表示文」、 "h" で始まる「罫線表示文」、 "m" で始まる「メールリンク表示文」、 "p" で始まる「電話リンク表示文」があります。


■ 宣言文

宣言文は次のように書いてください。

#INDEXO

■ コメント文

コメント文は "#" (半角シャープ)から初めて次のように書いてください。

#コメント

■ 飛ばし文

飛ばし文は "->" (ハイフン、右三角括弧)を区切り文字として、次のように書いてください。

端末指定文字->URL

URL は絶対パス( "http://" で始まる書き方)と相対パスのどちらでも書くことができます。次のような処理を行います。よくわからない場合は "http://" から始まる書き方で書いておけば大丈夫です。

  1. URL が "http://" で始まっていたら、 Location ヘッダで指定先の URL に飛ばす。
  2. URL が "http://" 以外で始まっていたら、相対パスとみなし、下表の拡張子ならばファイルの中身をそのまま出力します(CGI スクリプトのソースなどを間違ってそのまま出力しないようにするために、拡張子で判断しています)。出力ファイルからのリンク先指定は index.cgi が基点となりますので、相対パスで指定するときには注意が必要です。また、ファイルの中身によらずそのまま出力されますので注意してください。

    端末 拡張子 ヘッダ
    H" .txt text/plain
    .htm text/html
    .html text/html
    EZweb .hdml text/x-hdml;charset=Shift_JIS
    .htm text/html
    .html text/html
    それ以外 .htm text/html
    .html text/html

  3. "http://" で始まっていなく、該当する拡張子がない場合は HTML で「飛ばし文が不正です。」と出力される。

H" は Location ヘッダによるページ移動ができないため URL が絶対パス( "http://" から始まる記述)で書いてある場合はページの移動を促す表示がでます(アクセスしてきたユーザは通話ボタンを押すだけで、再度 URL を入力する必要はありません)。


■ 設定文

設定文は "=>" (イコール、右三角括弧)を区切り文字として、次のように書いてください。

設定項目=>設定内容

設定できる項目は次の5種類です。

設定項目 説明
title ページのタイトルを指定します。
<TITLE>タグと同様の機能を持ちます。
background ページの背景画像を指定します。
<BODY> タグの background 属性の指定と同様の機能を持ちます。
相対パスでの指定も可能ですが、その際は index.cgi からのパスを指定してください。
bgcolor ページの背景色を指定します。
<BODY> タグの bgcolor 属性の指定と同様の機能を持ちます。
#RRGGBB のフォーマットで書いてください。
text ページの文字色を指定します。
<BODY> タグの text 属性の指定と同様の機能を持ちます。
#RRGGBB のフォーマットで書いてください。
link アンカーテキストの色を指定します。
<BODY> タグの link 属性の指定と同様の機能を持ちます。
#RRGGBB のフォーマットで書いてください。

■ 表示文

表示文には次の6種類があります。

名前 フォーマット
テキスト表示文 t<>端末指定文字<>レイアウト指定文字<>表示文字列<>色指定
アンカー(リンク)表示文 a<>端末指定文字<>レイアウト指定文字<>表示文字列<>URL<>アクセスキー
イメージ表示文 i<>端末指定文字<>レイアウト指定文字<>alt文字列<>URL
罫線表示文 h<>端末指定文字
メールリンク表示文 m<>端末指定文字<>レイアウト指定文字<>表示文字列<>メールアドレス<>アクセスキー
電話リンク表示文 p<>端末指定文字<>レイアウト指定文字<>表示文字列<>電話番号<>アクセスキー

■ テキスト表示文

テキスト表示文は "<>" (左三角括弧、右三角括弧)を区切り文字として、次のように書いてください。

t<>端末指定文字<>レイアウト指定文字<>表示文字列<>色指定

■ アンカー(リンク)表示文

アンカー(リンク)表示文は "<>" (左三角括弧、右三角括弧)を区切り文字として、次のように書いてください。

a<>端末指定文字<>レイアウト指定文字<>表示文字列<>URL<>アクセスキー

■ イメージ表示文

イメージ表示文は "<>" (左三角括弧、右三角括弧)を区切り文字として、次のように書いてください。

i<>端末指定文字<>レイアウト指定文字<>alt文字列<>URL

■ 罫線表示文

罫線表示文は "<>" (左三角括弧、右三角括弧)を区切り文字として、次のように書いてください。

h<>端末指定文字

■ メールリンク表示文

メールリンク表示文は "<>" (左三角括弧、右三角括弧)を区切り文字として、次のように書いてください。

m<>端末指定文字<>レイアウト指定文字<>表示文字列<>メールアドレス<>アクセスキー

■ 電話リンク表示文

電話リンク表示文は "<>" (左三角括弧、右三角括弧)を区切り文字として、次のように書いてください。

p<>端末指定文字<>レイアウト指定文字<>表示文字列<>電話番号<>アクセスキー

■ 特殊文字・色・ URL の指定について

■ 特殊文字

区切り文字として使う場合以外は、 "<" (左三角括弧)と ">" (右三角括弧)は次のように記述するようにしてください。またこれに伴って "&" (アンド記号)も特別な記述をする必要があります。

表示させたい文字 記述
< &lt;
> &gt;
& &amp;

その他の特殊文字( "&nbsp;", "&quot;" , "$" など)はCGIで処理しますので、表示させたい通りに書いてください。

■ 絵文字・半角文字

INDEXOには絵文字・半角文字関連の処理は含まれておりません。今後なんらかの対応をするつもりです。

■ 端末指定文字

端末を示すのに "dehijlpx" の 8 文字が使われますが、それぞれ次のように対応しています。これ以外の文字は無視されますので、見やすいように間にハイフンや半角スペースなどを入れると良いでしょう。

文字 端末/サービス
d ドットi(CHTML)
e EZweb(HDML , XHTML-MP)
h H"、PDX(ONC)
i i-mode(CHTML)
j J-SKY(CHTML)
l Lモード(CHTML)
p パソコン(HTML)
x PDA(HTML)

■ レイアウト指定文字

テキストや画像のレイアウトを指定するのに "lcrs^" の5文字が使われますが、それぞれ次のような意味を持ちます。

文字 説明
l 「left」の "l" です。
テキストを左寄せにして、最後に改行します。
c 「center」の "c" です。
テキストを中央揃えにして、最後に改行します。
H"では、表示が複数行に渡る場合には左寄せになります。
r 「right」の "r" です。
テキストを右揃えにして、最後に改行します。
H"では、表示が複数行に渡る場合には左寄せになります。
s 「scroll」の "s" です。
テキストをスクロールさせます。
EZwebでは、一行で表示されますが、自動的にスクロールしない場合があります。
H"では、スクロールせずに、左寄せになります。
^ ハット記号です。
前の行の改行をなくして、前の行のレイアウトに従います。
テキストとアンカーを改行なしで続けて書きたいときなどに使用してください。

■ 色の指定

色を指定する場合には "white" , "black" などのカラーネームは使わず、 "#RRGGBB" の形式で指定してください。

■ URLの指定

リンク先の URL を指定する場合には絶対パス( "http://" から始まる記述)で指定してください。ただし、画像ファイルの指定の場合のみ相対パスを使用することが可能です。「飛ばし文」では絶対パスと相対パスで役割が違います。詳しくは「飛ばし文」の説明をご覧下さい。


CGIぽん (C)Copyright 2000-2001 OGATA,Tetsuji