LINUX.ORG.RU

Универсальный шаблонизатор?


0

0

Есть статический сайт в локалке, для которого разные скрипты генерируют всякий контент: статистику, rss и т.д. Скрипты написаны на разных языках (python, unix shell), и в каждом тупо содержится html код.

Нужно: простенький шаблонизатор, позволяющий отделить логику от представления. В идеале, скрипты сваливают контент в XML, а уж об остальном заботится шаблонизатор. Движок должен уметь циклы и условные проверки -- этого вполне хватит. Язык: python/unix shell/c/c++. Посоветуйте, пожалуйста, такую программу. Неохота изобретать велосипед.

XML + XSLT не устраивают, ибо задача частично решается, но XSLT'ный код получается похожим на кашу. Спасибо.

anonymous

> XSLT'ный код получается похожим на кашу

Страсти какие. Лично я всегда выделял для себя код на XSLT, как склонный к человеческому форматированию.

r_asian ★☆☆
()

хошь, свой подарю? страшный пример:

{INCLUDE '0header'}
{SET script  SERVER('SCRIPT_NAME')@'?fid='@fid}
{SET anchor ""}
{SET nodel  0}
{INCLUDE 'zmenu'}

<div style="height:1px;width:100%;border-bottom:1px solid"></div>
{SET :rown  0}
{FOREACH topics}
<div class="topiclist_item row{:rown}" id="nn{ITERATION}">
<span class="floatrbtn" onmousedown="ShowPostForm({fid},'nn{ITERATION}')">[post]</span>
<img src="{TPL}img/{IF new==1}has{ELSEIF new==2}updated{ELSE}no{ENDIF}new.png">
<a href="viewtopic.php?fid={fid}&tid={tid}&update=1#new">{subj}</a>
(<span class="topiclist_nick">{nick} </span>
{IF loginid}<a class="profile" href="viewprofile?pid={loginid}">&copy;</a> {ENDIF}
<span class="topiclist_date">{adate}</span>)
<a class="origlink" href="http://www.delphimaster.ru/cgi-bin/forum.pl?n={fid}&id={tid}">*</a><
br>
<span class="topiclist_descr">{descr}</span><br>
{IF envir}<span class="topiclist_envir">env: {envir}</span><br>{ENDIF}
<span class="topiclist_answers">Îòâåòîâ:{acount} {answers}</span>
</div>
{SET :rown  1-:rown}
{ENDFOR}

{INCLUDE 'answerform'}

{INCLUDE 'zmenu'}
{INCLUDE '0footer'}

умеет математику, циклы по сету из db (циклы по любому объекту с методом Fetch() на самом деле), полную математику в выражениях и условиях (хоть тут этого и не видно), написан на Глобальном и Надёжном, шаблон компилят обратно в Глобальный и Надёжный, лицензия WTFPL.

anonymous
()
Ответ на: комментарий от anonymous

а, да. весит чуть меньше 20 кб в исходнике.

anonymous
()
Ответ на: комментарий от anonymous

> Лично я всегда выделял для себя код на XSLT, как склонный к человеческому форматированию.

Ага, в итоге xslt-стильник это помесь xslt инструкция и html верстки. Действительно, человеческое форматирование. А когда нужно еще и в контекст каких-то узлов входить, так это еще и притягивание логики.

> хошь, свой подарю?

на машинке php принципиально не установил, иначе бы не искал такой шаблонизатор. Спасибо за предложение :).

anonymous
()
Ответ на: комментарий от anonymous

ну, чем богаты. думал хоть кому-то его подпихнуть. %-)

anonymous
()
Ответ на: комментарий от anonymous

s/обходимости/необходимости/g

anonymous
()

>движок должен уметь циклы и условные проверки -- этого вполне хватит темплейты django всё перечисленное умеют язык python соответственно

gFun
()
Ответ на: комментарий от gFun

>движок должен уметь циклы и условные проверки -- этого вполне хватит

темплейты django всё перечисленное умеют язык python соответственно

gFun
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.