You've seen or heard about Clearsilver, CTPP, libctemplate. But the best template lib which has C spirit is libtemplate
Using templates in PHP and C++ has spoiled me. So when I started developing applications in C, I went hunting for a templating library that I could use again. I didn't find it, so after developing in a mixture of C for my lowlevel routines and C++ for my interface, I finally broke down and wrote a templating engine in C. (See Free HTML Template Engine.)An example
#include "template.h" int main(void) { struct tpl_engine *engine; int n; char n1[10], n2[10], n3[10]; engine = tpl_engine_new(); /* Load the template file */ tpl_file_load(engine, "test.tpl"); for(n = 1; n <= 10; n++) { sprintf(n1, "%d", n); sprintf(n2, "%d", n*n); sprintf(n3, "%d", n*n*n); tpl_element_set(engine, "n", n1); tpl_element_set(engine, "n2", n2); tpl_element_set(engine, "n3", n3); /* Parse the template 'row' and add the result to element 'rows' */ tpl_parse(engine, "row", "rows", 1); } tpl_parse(engine, "grid", "main", 0); printf("%s", tpl_element_get(engine, "main")); return 0; }test.tpl
<template name="grid"> <table> <tr> <th>n</th> <th>nˆ2</th> <th>nˆ3</th> </tr> {rows} </table> </template> <template name="row"> <tr> <td>{n}</td> <td>{n2}</td> <td>{n3}</td> </tr> </template>
No comments:
Post a Comment