[mayaa-user:296] Re: コンポーネントのみの出力方法について

suga ko.suga @ gmail.com
2006年 10月 17日 (火) 17:33:11 JST


suga です。

On 10/17/06, Applied_MATSUDA Masaaki <m.matsuda @ appliedjapan.com> wrote:
> 1. Mayaaを使うとレンダリング結果に<HTML>〜</HTML>タグが必ず入って
>    しまうようで、複数のポートレットを画面上に配置すると、

これは NekoHTMLParser を使っているためで、Mayaa が認識できる
HTML は "<HTML><BODY>, </BODY></HTML>が追加されたもの" に
なってしまいます。


>    <HTML>タグの出力を抑制して、テンプレートに書いてある内容に
>    忠実に出力するオプション等があれば望ましいのですが、いかが
>    でしょうか??

忠実に出力するというのは難しいです。
HTML は閉じタグを自動補完するなどしなければツリーとして
扱えないため、タグのバランサーを通す必要があります。

Neko の自動補完を乗っ取って何らかの手段を取るという手も
ありますが、元の投稿にあるように、HTML の部分のみを出力する
手段を用意すれば解決することであれば、そちらの方が全体的には
良いかもしれません。


ちなみに現状でも、html タグ、body タグに m:with を当てると
body の内部のみが返ります。:)
ついでに head に m:null を当てるとヘッダを書いていても消えます。
DOCTYPE や xml 宣言を消す方法はありませんけど……。

<m:with m:id="html" />
<m:with m:id="body" />
<m:null m:id="head" />


> 2. テンプレートの文字エンコーディングを、.mayaaファイルのほうで
>    指定できるのでしょうか?
>    テンプレートHTML側にエンコーディングがらみの何か記載を追加
>    する、というのはこちらの事情でまずいので、他の方法があれば
>    教えてください。

現状ではありません。Neko の判別では良くて UTF-8、ダメなら ISO-8859_1 です。
META タグがない場合に UTF-8 固定と見なす変更であれば容易ですが、
それで問題ないでしょうか。

# と書いているうちに作成しました。
# リポジトリ上のみですので、手元でビルドしていただければ
# META タグ無しの場合に UTF-8 と見なすようになります。


出力の文字セットを変更する手段は容易されていて、
m:mayaa タグで m:contentType="text/html; charset=UTF-8" のように
指定します。(content-type 全体指定のみです)


> 3. あと話はとびますが、Mayaaのオプション一覧ってありますでしょう
>    か?
>    http://mayaa.seasar.org/documentation/engine_settings.html
>    こちらで、「これ以外にも設定項目はありますが、それらは 5 章
>    の別ページで説明します。」と書いてありますが、該当部分が
>    見当たらないような気がします。
>    もし私の見落としであればご指摘ください。

ごめんなさい、書いたつもりで書いていませんでしたね。
現状は時間を取れませんので、お急ぎの場合は申し訳ありませんが
デフォルトの設定ファイルをご覧ください。
デフォルトのファイルにはすべての項目のデフォルト値が指定してあります。

-- 
suga ( ko.suga @ gmail.com )


mayaa-user メーリングリストの案内