NobelmanはWebページをブラウザに合わせて動的変換するISAPI Filterです。
以下のようなことが可能です。
Nobelmanは KHTMLN を変換します。
KHTMLNはHTMLに似たXMLであり、携帯端末向けに機能が拡張されています。
以下に簡単な例を示します。
Sample.khtmln
例に示すとおり、Nobelmanを使えばページのソースは一つで各携帯端末に対応でき、
絵文字はk-emojiタグで利用することができます。
Cookie模倣も自動的に行われ、サイト構築が楽しくなること間違いなし。
これはほんの入り口。
Nobelmanによって楽しくなるモバイルサイト構築をご堪能ください。
設定ファイルはXMLで記述してください。
Nobelman設定のルート要素。
相対パスリダイレクトを利用できない端末のために絶対パス補正をするかしないかを指定します。
<LocationCorrect/> の絶対パス補正で利用される元パスを得るためのServer Variables名を指定します。
ここで指定したServer Variables値が得られればそれを元に絶対パス補正を行い、
得られなければ Server Variables:"URL" が絶対パス補正の元パスとして利用されます。
Cookieを利用できない端末のためにCookie模倣をするかしないかを指定します。
Cookie模倣はCookie模倣Keyを a/@href, form/@action に自動埋め込みすることで実現します。
Cookie模倣では 一時Cookie は模倣されますが期限付きのCookieは模倣されません。
Cookie模倣処理で内部的に利用するServer Variables名を指定します。
ここで指定した名前を利用してASPなどからCookie模倣Keyを取得することができます。
<CookieStockKey/> のRaw名を指定します。
Raw名は頭の "HTTP_" を取り除き、"_" を "-" に置換して、尻に必ず ":" を付加してください。
Cookie模倣時に a/@href, form/@action に自動埋め込みされるKeyの開始マークを指定します。
Cookie模倣時に a/@href, form/@action に自動埋め込みされるKeyの終了マークを指定します。
Cookie模倣のタイムアウト時間を分単位で指定します。
模倣されたCookieの内ここで指定した時間以上経過したものは破棄されます。
変換元ソースを受け付けるCoordinatorを設定します。
KHTMLNとして反応して変換処理を行うContentTypeを指定します。
KHTMLのXML DOCTYPEを指定します。
KHTMLの解析に失敗した場合のソースを指定します。
ソース自体はKHTMLで記述してください。
この値を空文字列に設定すると解析エラー詳細(デバッグ用)が出力されます。
<a accesskey="xxx">でのアクセスキーに対応したアイコンの表示を設定します。
デフォルトではアイコンが表示されません。
アクセスキーに対してアイコン表示を登録します。
アイコンは絵文字か文字かどちらかを指定できます。
<Icon/>は複数指定することができます。
端末へデータを送出するCoordinatorを新しく生成します。
この要素は複数指定することが可能です。
<NewOutputCoordinator/> の書かれた順番に <UAPattern/> が評価されます。
どのUser Agentに向けて送出を担当するかを正規表現で指定します。
正規表現はPerl互換(Boost.Regex Perl Regular Expression Syntax)で記述して下さい。
絵文字の種類を指定します。
"Comment"の場合は絵文字を表現する単語が出力されます。
"none"の場合は絵文字を表す画像への imgタグ が出力されます。
"i-mode", "EZweb", "J-SKY" の場合でも、絵文字番号に相当する絵文字がない場合には
絵文字を表す画像への imgタグ が出力されます。
絵文字のマッピングやCommentについての設定は "Emoji.setting" で可能です。
絵文字を表す画像への imgタグ の src値 を指定します。
端末固有の絵文字が存在しない場合に利用されます。
出力時のコードページを指定します。
値については Supported Code Pages などを参考にしてください。
出力時のCharsetを指定します。
<CodePage/> に合ったものを指定する必要があります。
ここで値を指定しても変換元ソースのHTTPヘッダー:Content-Type に charset 指定がない場合は
出力に charset 指定がされません。
出力の頭に吐く XML宣言 を指定します。
出力の頭に吐く DOCTYPE宣言 を指定します。
出力時のContentTypeを指定します。
出力時に空要素(<br/>など)をHTMLとして(<br>など)出力するかしないかを指定します。
"<marquee/>", "<input istyle/>", "<textarea istyle/>" を i-mode XHTML に準拠した style に変換するかどうかを指定します。
相対パスリダイレクト時に絶対パス補正をするかしないかを指定します。
全体設定の<LocationCorrect/>を上書いて設定する場合に指定してください。
Cookie模倣をするかしないかを指定します。
Cookie模倣はCookie模倣Keyを a/@href, form/@action に自動埋め込みすることで実現します。
Cookie模倣では 一時Cookie は模倣されますが期限付きのCookieは模倣されません。
全体設定の<CookieImitation/>を上書いて設定する場合に指定してください。
NobelmanはHTTPレスポンスのContent-Type:'text/x-khtmln'に反応しますので以下のようにして利用してください。
なお、値:'text/x-khtmln'は設定ファイルで設定可能です。
KHTMLN は XML で記述してください。
HTML要素、属性はすべて記述することが可能ですが、端末へ送出された場合に利用可能かどうかは
その端末次第ですので、目的の端末で利用可能な要素、属性のみを利用するようにしてください。
また、KHTMLNでは以下の拡張要素も利用可能です。
アクセスしてきた端末に応じて出力するか否かを制御します。
i-mode(docomo)端末に出すか否かを指定します。[値:"true", "false"]
j-sky(softbank)端末に出すか否かを指定します。[値:"true", "false"]
ezweb(au)端末に出すか否かを指定します。[値:"true", "false"]
PC端末に出すか否かを指定します。[値:"true", "false"]
絵文字を挿入します。
絵文字一覧は Emoji.setting をご覧ください。
絵文字は OutputCoordinator の <EmojiType/> の指定を元に変換されます。
端末に存在しない絵文字番号を指定すると絵文字画像へのimgタグを出力します。
imgタグのsrcは Nobelman.setting の <EmojiImgSrc/> で設定できます。
絵文字番号を指定します。
テキスト入力モードを指定します。
日本語入力モードにします。(istyle="1")
アルファベット入力モードにします。(istyle="3")
数字入力モードにします。(istyle="4")