Ktai Style でテーマをつくっていて気が付いたこと
現在、Ktai Style 1.61-beta1でテーマを作成・修正しているところですが、気が付いたことを箇条書きしておきます。
- テーマの作成途中で、バージョン1.61にはインラインスタイルへ自動的に変換してくれる機能があることを知った(汗)
- まぁ、別に良いか……と思っていたけど、互換性当を考えて font タグ等を使って記述した方が良さそう
- hr タグにインラインスタイルを記述していても、自動変換で消されてしまう(コメントにて報告済み)
- redir.php に記述されたコードは、インラインスタイルに自動変換してくれないっぽい
- font タグが入れ子になっていると、変換がおかしくなる
- Softbank 3G は、『display:-wap-marquee』が使えないらしいので、機種判別して maequee タグを使うしかないのかな……
- ページ分割時の文言は、翻訳ファイルを修正しないと変更できない。また、<hr />タグが出力されるのは固定っぽいので、プログラム部分を直接しなければレイアウト修正できない
- 普段のページ遷移に『#』『*』の accesskey を使用していると、ページ分割時に accesskey が重複してしまう
- body タグの link は『a,a:link {color:~』のスタイルシートに置き換えられるので、<a id="">や<a name="">で囲われた文字の色も変わる場合がありそう(これが良いのか悪いのかは不明)
- 個人的に、function.php で変数を色々とつくっておいて、必要なときに各テンプレートファイルから global で呼び出すとテーマを修正しやすい気がした
- 『<!--start paging-->』と『<!--end paging-->』は、ちゃんと意味があるコメントだったのか……間違えて削除していたぞ(汗)
- function.php に以下のコードを記述して、MIMEタイプが『application/xhtml+xml』ではないときに、スタイルシート関連の記述を削除してみた
function ks_karuta_replace($buffer) {
if (! ks_applied_appl_xhtml()){
$buffer = preg_replace('!<([a-z]+?[^>]*?) style="[^>]*?"([^>]*?)>!', '<$1$2>', $buffer);
$buffer = preg_replace('!</?span( [^>]*?)?>!', '', $buffer);
}
return $buffer;
}
add_filter('raw_content/ktai_style.php', 'ks_karuta_replace');
最もCSS、XHTMLに融通が利かないdocomoで実機確認してはいるけど、XHTML非対応端末や他の機種でちゃんと表示されているかが不安です。まぁ、今のところ特にクレーム等は来ていないので、それなりにちゃんと表示されている……と願っておきます(笑)
関連記事
同じ日の記事
- 2014-01-29 お手つきを制御できない (0)
- 2012-01-29 男女かるた名人が気迫の対戦 (0)
- 2012-01-29 『「きみがため」なら取れる』(『きみのためなら死ねる』の替え歌) (0)
- 2011-01-29 『パワフルかるた特殊能力メーカー』を作ってみた (2)
- 2011-01-29 まるで“畳の上の格闘技” 競技かるたで熱戦展開 (0)
- 2008-01-29 最後の1枚は何を残す? (0)
- 2008-01-29 環境問題 (0)
- 2007-01-29 佐賀と長崎が動き始めるっ! (2)
7 Comments
Sorry, the comment form is closed at this time.
いろいろと貴重なご意見・ご感想ありがとうございます。
実は ver 0.95~0.98 あたりから搭載している機能です ;-) ただし、附属テーマでは一貫して text/html での出力なので、本格的に活用したのは今回の新テーマ3種からということになります。
redir.php での出力は意図的に処理を削っていますが、インラインスタイル変換が抜けるのは想定外ですね。入れるようにしてみます。
これは実装の都合上仕方ないです。入れ子にならないようなテンプレート記述をお願いします。
個人的に marquee は嫌いなのでノーチェックでした。ちょっと調査してみます。marquee タグを自動変換の対象とすれば、SoftBank 3G は変換しない、とかの対応が取れると思います。
はい、今のところ固定です。これをカスタマイズ可能としたいんですが、ページ分割は結構トリビアルな処理をしているので、進んでいません。どうせ改造するならば、「何分割されたか」「前後ページだけじゃなくて2ページ以上先に進みたい」などの機能アップもしたいところです。文言を変えるだけならば独自フィルターフックを設置すればいいのですが、設置してしまうと、後で実装を変えたときに困りそうですから、やっていません。
ページ分割時は、分割元ページのアクセスキーで *, # があったらそれを削除しています。ひょっとすると、その削除がうまくいってないでしょうか??
スタイル付与は a:link だけでいい気もするんですが、ブラウザーによって a も必要だったはずなので入れています。携帯端末で a:link だけでよさそうなら、削除してみていいかもしれません。要調査ですね。
はい、特に色指定はそうですね。header.php で変数定義して、他のファイルから呼び出す手もあります (monolith テーマとかは、一部そういう技を使っています)。
公式に、そういう実装も検討したんですが、PDC 端末の場合はテーマを別に分けた方がいいかと思って、さぼっています。PDC の場合、表示できるパケット量が少ないため、できるだけ削除した方がいいわけで、ちょっと検討してみます。
早速の丁寧なコメントありがとうございます。
微力ながら、少しでもプラグインの開発に役立って貰えると幸いです。
>これは実装の都合上仕方ないです。入れ子にならないようなテンプレート記述をお願いします。
なるほど……
確かに処理的にもややこしいでしょうし、
諦めて入れ子の記述を止めるようにしてみます。
>個人的に marquee は嫌いなのでノーチェックでした。ちょっと調査してみます。marquee タグを自動変換の対象とすれば、SoftBank 3G は変換しない、とかの対応が取れると思います。
了解しました。
とりあえず、以下のコードを'raw_content/ktai_style.php'のフィルタフックに記述して、marquee タグに対応することにしてみました。
>ページ分割時は、分割元ページのアクセスキーで *, # があったらそれを削除しています。ひょっとすると、その削除がうまくいってないでしょうか??
もしかしたら、私が色々とテーマをいじっているせいで動作が可笑しいのかと思い、default テーマで確認してみましたが、同様にアクセスキーが重複する現象が発生してしまいました。
ちなみに、iモードHTMLシミュレータでソース確認いたしました。
>公式に、そういう実装も検討したんですが、PDC 端末の場合はテーマを別に分けた方がいいかと思って、さぼっています。PDC の場合、表示できるパケット量が少ないため、できるだけ削除した方がいいわけで、ちょっと検討してみます。
初めはテーマを別に分けていたのですが、インラインスタイルシートに自動変換する機能があることを知ってからひとつにまとめてみました。
ただ、ひとつにまとめると、多くのページが分割ページになってしまったので、少しでもソースコードが減った方が嬉しいですね。
accesskey 属性が a, label 要素の末尾にあるときだけ削除されていました。途中に入っているときは残ってしまうことが分かりました。これは直しておきます。
インライン style の削除も、提示されたソースをほぼ流用 (一部改変) の上、実装する予定です。
marquee 処理はちょっと調査がかかるので、先の対応とさせてください。
[...] 今回のベータ版には、HaRD さんに頂いた改善案をいくつか入れています。ご提案ありがとうございました。 △上に戻る « au の法人向け新機種 [...]
あ、ページ分割時の文言ですが、独自フィルターフックが存在したことを忘れていました。split_page_navi/ktai_style.php フィルターを使ってみてください。このフィルターの結果をもとに分割位置を決めているので、多少長い内容にしても問題ありません。
ただし、hr 要素の挿入はハードコードしているので、hr color="xxxx" とかにするのは無理です。すいません。
あ、ホントですね……
フィルターフックは確認したつもりだったんですが、見逃していました。
ご指摘ありがとうございます。
今度テーマを修正するときに使ってみようと思います。
[...] beta3 は、テーマの扱いを向上しています。HaRD さんから頂いた不具合報告や要望を検討して、かなりの部分を取り込みました (色設定をグローバル変数に入れる/ページ分割時の色設定が [...]