昨日2010年10月21日、さくらのブログが久々にバージョンアップ。オリジナルであるSeesaaブログに近づきました。新機能で、トップページのページングやら、他サービスとの連携やら、色々増えました。重いの嫌いだから、あんま色々足さないで欲しいんだけど…それはカスタマイズで削りまくり。しかし色々チェックしてると、何か余計なものが勝手に増えてるぞ、と。
<body>
タグの直後に、iPhone最適化ページへのリンクコードが挿入されてる!
カスタマイズにより、トップ・記事・過去ログ・カテゴリーページのhtmlヘッダ部はメインコンテンツ内で生成してるので、コメント確認ページと記事検索結果ページにしか影響が無かったが、非常に気になるし何かウザイ。でまぁ、実験用ブログの方で暇見て回避する方法が無いかを探していたら、回避する事に成功。結論から言うと、次のように書く事で回避可能だった。
<body>
↓
<bo<% if:0 %><% /if %>dy>
要するに、ベースHTML中に"<body>
"そのものの文字列が存在しなければOKだった。テンプレート解析エンジンを通した結果、最終的に <body>
が出力されるようにしてやる、と。他にもちょろっと試してみて、if分岐の中にやっぱり"<body>
"そのものがあっても駄目だったので、テンプレート解析エンジンの最終段で文字列比較して挿入するのではなく、ページソースに書き出す際に、"<body>
"を含む文字列が一括で送られるとアウトなんかな。知らんけど。
※</body>
タグ直前に <!-- common footer -->
が挿入されるのも、同様でOK。
※Seesaaブログでもできる…かも。
あとは、内部関数 bodyfilter()
を通すと、先頭に <!-- MATCH SEESAA : NO FLOATING -->
が挿入されてしまう件。この関数を通さなければいい…ハズなんだけども、この関数で「改行のbr置換」や「リンク補完」も行なわれてるので、外してしまうと、記事設定によってそれら処理を切り替える事ができなくなってしまう。どうしたもんかなー、コレ。
オマケ:その他弄りながら判った事
・<% blog.index_page_cnt %> … 設定>ブログ設定>「トップページ表示件数」の値
・<% blog.archives_page_cnt %> … 設定>ブログ設定>「過去ログページ」の値
・<% blog.category_page_cnt %> … 設定>ブログ設定>「記事カテゴリページ」の値
・<% pager.current_page %> … ページャーの現在ページ
・<% pager.first_page %> … ページャーの先頭ページ
・<% pager.last_page %> … ページャーの最終ページ
…ページャーに先頭ページ・最終ページへのリンクも出すようにしてみたんだけどね。まさか記事数上限1,000記事(ブログ設定でトップページ表示件数5件に設定してるので、÷5で200ページが最後になる)制限があるとは思わなかったよ。あとページャーはどうも非公開記事も記事数にカウントしてるようで、日付降順で1,000件内に非公開記事が存在すると、最終ページが空になる場合がありうるっつーのもなんだかなぁ。
追記(2010/10/26 12:20)
ifブロックを途中に挟んで分割するよりも、echo()
で出力させた方が判りやすいか。例えば <<% echo('body') %>>
のように書けばいい。注意点は、echo()
の中に'<'と'>'が両方含まれる場合に構文エラーとなる事かな(なので'<'と'>'をecho
の外に出してる)。
追記(2010/11/10)
ページャーを更に弄って、なんちゃってWordPressのpagebar風にしてみた。pagebarの場合はページ番号の表示数が一定なんだけども、コイツは先頭と最終ページが表示数に含まれる場合(…説明し辛いな、1〜3ページ目と最終-2〜最終ページ)に数が異なる挙動になってる…コレを一定にしようと思ったら、もちっと分岐書かなくてはならず、面倒臭くなってヤメちゃった。
実際のコードも一応上げておこうか…余計な改行を出力しないようにする為、かなりイビツなコードだけど。
posted by あかたま at 19:50 |
Comment(0) |
日記・駄文#3