Home

orz公開所

なんぞこれ

  • 2008年7月20日 02:41
  • C/C++

よく判らないgoogle-ctemplateのユーティリティたちの紹介?

make_tpl_varnames_h

テンプレートファイル内から{{VARNAME}}、{{#SECNAME}}、{{TPLNAME}}形式で記述された名称を取得し、
それらを定数として定義したヘッダファイルを作成します。
使い方は以下。

$ cat test.tpl
<h2>{{CONTENT}}</h2>
<p>Copyright:{{COPYRIGHT}}</p>

$ make_tpl_varnames_h test.tpl

------ Checking test.tpl ------
No syntax errors detected in test.tpl
Creating ./test.tpl.varnames.h

$ cat test.tpl.varnames.h
//
// This header file auto-generated for the template
//    /path/to/templates/./test.tpl
// by make_tpl_varnames_h
// DO NOT MODIFY THIS FILE DIRECTLY
//
const char * const kt_CONTENT = "CONTENT";
const char * const kt_COPYRIGHT = "COPYRIGHT";

複数のテンプレートに同じ名前が使用されていて、それらのヘッダファイルを同時にインクルードしてしまうと、定数の重複定義エラーになってしまう。
さらに、複数のファイル内で同一ヘッダファイルを読み込むと、これまた重複定義エラーになってしまう。
※多重読み込み防止の制御(#ifndef XXX_H ~ #define XXX_H ~ #endif のやつ)がないため。
イマイチ使えない・・・。

template-converter

テンプレートのソースを実行バイナリ内に組み込みたい場合に使います。
通常通りにテンプレートファイルを作成し、以下の手順で文字列に変換して使用します。

$ cat test.tpl
<h2>{{CONTENT}}</h2>
<p>Copyright:{{COPYRIGHT}}</p>

$ template-converter

Need to specify template variable name.
Usage: template-converter <template-varname> [infile] [outfile]

$ template-converter test.tpl test.tpl out.txt

$ cat out.txt
// This file automatically generated by template-converter
// DO NOT EDIT!

#ifndef _TEST_TPL_H
#define _TEST_TPL_H

const string test_tpl (
"<h2>{{CONTENT}}</h2>\n"
"<p>Copyright:{COPYRIGHT}}</p>\n"
);

#endif /* _TEST_TPL_H */

要は、テンプレートの内容を文字列化し、定数として定義したヘッダファイルを作成するツール。
使えなくはないけどあんまいらない・・・

diff_tpl_auto_escape

指定されたエスケープと、ソース内のエスケープ修飾子が異なる箇所を出力する?
ドキュメント読んだり、実際に試してみても意味がよく判りませんでした。。。

AzaraC

今更だけど気になる記事を発見。(2006年年10月の記事)

■WebアプリをC++で開発するためのテンプレート・エンジンをオープンソースとして公開
http://itpro.nikkeibp.co.jp/article/NEWS/20061013/250667/

CGI++(これもC++でWebアプリを作るフレームワーク)とは違って、
メインとなるロジックと表示ロジックを分割することが出来る優れもの。
まぁ、要はJavaのServlet+JSPみたいなものですが。
但し、セッション管理はないみたいです。phpでも挟んで管理させれば問題ないですが。

ちなみに、agesrvは一度xmlで出力して、それをXSLTを用いてHTMLに変換するという二度手間作業でやってます。
せっかくC++で開発したのに変換で時間が掛かっていて本末転倒な状態。
主ロジックと表示ロジックを混同させたくはなかったので仕方ないんです。

JavaはWeb開発用の色々なフレームワークが存在していて開発が楽なのだけど
JavaはTomcatとかの導入がメンドクサイので嫌。
導入が楽なのはPerlやPHPだけど、あれは言語仕様が気に入らない。。。

AzaraCを使用するように直してみるかなー

武器ジェネレータ

武器ジェネレータ( http://genzu.net/buki/ )で自分の名前から武器を生成し
その武器からAoE3のユニットに繋げて、自身に合うユニットを占ってみる。

で、horzと入力すると・・・

horzバズーカ (攻撃力:16)

これはアブス使うしかない!!


ちなみに、fyuji の場合は fyujiの軍配 (決断力:96)
一体何をどう決断しろと

シェル型検索エンジン

  • 2008年6月 5日 01:21
  • 雑談

おもしろす
http://goosh.org/?lang=ja

にしても検索結果がやけに少ない気がする

Index of all entries

Home

Search
iKnow!バッジ


Feeds

Return to page top