Move the templating system to mustache instead of ctpp2.

Mustache templating system is a bit simpler than ctpp2 and ctpp2 is no
more maintained (see #189).
We are moving to the kainjow's Mustache project
(https://github.com/kainjow/Mustache).

It simplify a lot our system has it is header only and we don't have to
precompile the template.

Fix #21
This commit is contained in:
Matthieu Gautier
2019-01-08 16:12:57 +01:00
parent c73ac9f2cd
commit 92c9a47a0d
16 changed files with 78 additions and 509 deletions

View File

@ -1,15 +1,5 @@
ctpp2c = find_program('ctpp2c', required:false)
if ctpp2c.found()
search_result_template = custom_target('result_template',
input: 'results.tmpl',
output: 'results.ct2',
command: [intermediate_ctpp2c, ctpp2c, '@INPUT@', '@OUTPUT@']
)
resources_list = 'resources_list_ctpp2.txt'
lib_resources = custom_target('resources',
lib_resources = custom_target('resources',
input: 'resources_list.txt',
output: ['kiwixlib-resources.cpp', 'kiwixlib-resources.h'],
command:[res_compiler,
@ -17,8 +7,5 @@ if ctpp2c.found()
'--hfile', '@OUTPUT1@',
'--source_dir', '@OUTDIR@',
'@INPUT@'],
depends: [search_result_template]
)
else
lib_resources = []
endif
depend_files: 'static/search_result.tmpl'
)

View File

@ -1 +1 @@
results.ct2
search_result.tmpl

View File

@ -91,68 +91,67 @@
}
</style>
<title>Search: <TMPL_var searchPattern></title>
<title>Search: {{searchPattern}}</title>
</head>
<body bgcolor="white">
<div class="header">
<TMPL_if results>
{{#hasResult}}
Results
<b>
<TMPL_var resultStart>-<TMPL_var resultEnd>
{{resultStart}}-{{resultEnd}}
</b> of <b>
<TMPL_var count>
{{count}}
</b> for <b>
<TMPL_var searchPattern>
{{searchPattern}}
</b>
<TMPL_else>
No results were found for <b><TMPL_var searchPattern></b>
</TMPL_if>
{{/hasResult}}
{{^hasResult}}
No results were found for <b>{{searchPattern}}</b>
{{/hasResult}}
</div>
<div class="results">
<ul>
<TMPL_foreach results as result>
{{#results}}
<li>
<a href="<TMPL_var protocolPrefix><TMPL_var result.contentId>/<TMPL_var result.url>">
<TMPL_var result.title>
<a href="{{protocolPrefix}}{{resultContentId}}/{{url}}">
{{title}}
</a>
<cite>
<TMPL_if result.snippet>
<TMPL_var result.snippet>...
</TMPL_if>
</cite>
<TMPL_if wordCount>
<div class="informations"><TMPL_var wordCount> words</div>
</TMPL_if>
{{#snippet}}
<cite>{{>snippet}}...</cite>
{{/snippet}}
{{#wordCount}}
<div class="informations">{{wordCount}} words</div>
{{/wordCount}}
</li>
</TMPL_foreach>
{{/results}}
</ul>
</div>
<div class="footer">
<ul>
<TMPL_if (resultLastPageStart>0)>
{{#resultLastPageStart}}
<li>
<a href="<TMPL_var searchProtocolPrefix>pattern=<TMPL_var searchPatternEncoded><TMPL_if contentId>&content=<TMPL_var contentId></TMPL_if>&start=0&end=<TMPL_var resultRange>">
<a href="{{searchProtocolPrefix}}pattern={{searchPatternEncoded}}{{#contentId}}&content={{.}}{{/contentId}}&start=0&end={{resultRange}}">
</a>
</li>
</TMPL_if>
<TMPL_foreach pages as page>
{{/resultLastPageStart}}
{{#pages}}
<li>
<a <TMPL_if page.selected>class="selected"</TMPL_if>
href="<TMPL_var searchProtocolPrefix>pattern=<TMPL_var searchPatternEncoded><TMPL_if contentId>&content=<TMPL_var contentId></TMPL_if>&start=<TMPL_var page.start>&end=<TMPL_var page.end>">
<TMPL_var page.label>
<a {{#selected}}class="selected"{{/selected}}
href="{{searchProtocolPrefix}}pattern={{searchPatternEncoded}}{{#contentId}}&content={{.}}{{/contentId}}&start={{start}}&end={{end}}">
{{label}}
</a>
</li>
</TMPL_foreach>
<TMPL_if (resultLastPageStart>0)>
{{/pages}}
{{#resultLastPageStart}}
<li>
<a href="<TMPL_var searchProtocolPrefix>pattern=<TMPL_var searchPatternEncoded><TMPL_if contentId>&content=<TMPL_var contentId></TMPL_if>&start=<TMPL_var resultLastPageStart>&end=<TMPL_var (resultLastPageStart+resultRange)>">
<a href="{{searchProtocolPrefix}}pattern={{searchPatternEncoded}}{{#contentId}}&content={{.}}{{/contentId}}&start={{resultLastPageStart}}&end={{lastResult}}">
</a>
</li>
</TMPL_if>
{{/resultLastPageStart}}
</ul>
</div>
</body>