a-blog cms で、思いついたこと
前々からincludeは便利だけど、レイアウトができないなと悩ましい思いをしていた。
そもそも a-blog cms って、URLコンテキストから対象のエントリやカテゴリを見つけると、その段階でどのテンプレートファイルを使うかということが確定してしまうので、あとからレイアウトとして何を使うという指定が仕組み上できない。
で、結果的に
<html> <head> <!-- #include file="/include/head.html" --> </head> <body> <!-- #include file="/include/header.html" --> <div> hogehoge </div> </body> </html>
という感じで、大枠のhtmlはすべてのページに書くことになりますね。
これちょっとどうにかならんかなと。
で、思いついたんだけど
<!-- #outclude file="/layout/main_layout.html" --> <div> hogehoge </div>
みたいな書き方で、レイアウトを指定して、その中身だけを書くってできたらいいのにな。と思った。
いや、outcludeなんて単語は無いだろうけど、便宜上。
で、レイアウト側も普通にテンプレートを書くので
<html> <head> <!-- #include file="/include/head.html" --> </head> <body> <!-- #include file="/include/header.html" --> <!-- #include file="%{this}" --> </body> </html>
としておけば、これ内部的な処理としても、outclude指定があればそのレイアウトファイルを先読んで、中に自身を展開しておけば、あとは同じ流れで処理できるきがするので、実装しやすいのでは?と。
まぁ、急に思いついただけなので、実用性のほどはわかんないけど。