Обновилась версия - 2.3.0
Основное изменение - добавлен тег else с атрибутом if ;) |
Добавил модуль в npm и в список модулей.
|
Перед выходом новой версии хочу провести небольшой эксперимент и попросить вашего участия в нем :)
Если вы потратите немного своего времени, я буду вам очень признателен :) Есть некие файлы шаблонов: page.xml: <?xml version="1.0" encoding="UTF-8"?> <tsn:root xmlns:tsn="TSN" xmlns="http://www.w3.org/1999/xhtml"> <tsn:data key="JSBlock"> <script type="text/javascript"> //<![CDATA[ alert('Page.'); //]]> </script> </tsn:data> <tsn:render file="service.xml" /> </tsn:root> service.xml: <?xml version="1.0" encoding="UTF-8"?> <tsn:root xmlns:tsn="TSN" xmlns="http://www.w3.org/1999/xhtml"> <tsn:data key="JSBlock" action="prepend"> <script type="text/javascript" src="&TSN.this.serviceName;.js"> </script> </tsn:data> <tsn:block name="JS" type="global"> <tsn:echo data="_data.JSBlock" /> </tsn:block> <tsn:block name="CSS" type="global"> <link rel="stylesheet" type="text/css" href="service.css" /> <tsn:if expr="_data.CSSBlock"> <tsn:echo data="_data.CSSBlock" /> </tsn:if> </tsn:block> <tsn:block name="content" type="default"> Page not found </tsn:block> <tsn:render file="base.xml" /> </tsn:root> base.xml: <?xml version="1.0" encoding="UTF-8"?> <tsn:root xmlns:tsn="TSN" xmlns="http://www.w3.org/1999/xhtml"> <tsn:render file="common.xml" /> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <tsn:render block="CSS" /> </head> <body> <tsn:render block="content" /> <tsn:render block="JS" /> </body> </html> </tsn:root> common.xml: <?xml version="1.0" encoding="UTF-8"?> <tsn:root xmlns:tsn="TSN" xmlns="http://www.w3.org/1999/xhtml"> <tsn:data key="JSBlock" action="prepend"> <script type="text/javascript" src="common.js" /> </tsn:data> <tsn:block name="content" type="default"> <tsn:render file="/404.xml" config="({ cache: false })" /> </tsn:block> </tsn:root> Вопрос: глядя на код шаблонов, можно ли, потратив несколько минут, вникнуть в суть происходящего. Прикинуть, что будет на выходе. Без документации. Дополнительный вопрос: какие моменты показались вам нелогичными/непонятными. |
Я понял более-менее, но не понял, зачем нужен элемент data, почему у него такое же значение атрибута key, как и name и элемента-блока, и что означает у него значение атрибута action - prepend.
|
Цитата:
Цитата:
Цитата:
|
Немного подправил пример, что бы не возникало лишних недопониманий.
|
Вот более полный пример: https://github.com/B-Vladi/TSN/tree/2.4.0/example
|
Для тех, кому интересно, предлагаю обсудить API.
Обновленный JSDoc в репозитории: https://github.com/B-Vladi/TSN/tree/2.4.0/jsdoc Для удобства выложил сюда: http://tsn.amxhost.ru |
UPD: небольшой upgrade.
|
Мне тут подкинули идею и я реализовал теги header и status. Хотя раньше это можно было сделать и в JS-выражениях.
Как пиздато самим с собой разговаривать |
Часовой пояс GMT +3, время: 15:46. |