Цитата:
|
Как вставить код скрипта, вместе с тегами script в шаблон, чтобы парсер не ругался?
|
Для этой задачи в SS существует расширенный синтаксис:
https://github.com/kobezzza/Snakeski...%D0%B8%D 1%81
Логика простая: когда ты начинаешь юзать #{...} для декларации директивы, то все вложенные директивы также будут требовать такую декларацию, например:
{template foo()}
#{script}
var a = {
bar: #{1 + 2}
};
#{/}
{/}
Эта директива для inline вставок, например,
{template foo()}
<input type="button" onclick="{data console.log({foo: 1})}">
{/}
Цитата:
|
А тогда такой вопрос, а зачем тут решётка? Был хитрый план по на будущее?
|
CDATA работает до построения AST, чисто вырезается по регулярке и поэтому я сделал обязательным расширенный синтаксис директивы для использования, чтобы случайно не выстрелить себе в ногу.
Цитата:
|
Оо, нашёл. Честно говоря решётку не заметил, думал это коммент, автоматом воспринимаю в конфигах...
|
В SS комменты обозначаются через
/// Однострочный коммент
/* Многострочный коммент */
/** JSDoc (не вырезается парсером из конечного кода) */
Для создания XML комментариев есть удобная директива comment, которая также поддерживает условия для старых ИЕ.
{template foo()}
{comment IE 7}
{link}http://bar.com/ie.css{/link}
{/}
{/}
Но также можно просто писать по старинке
PS: По поводу однострочных комментов: есть сильное желание заменить в SS7 на //# (или ещё как), т.к. сейчас можно напороться на ошибку при подключение некоторых урлов:
<a href="file:///C://foo.png">121</a>
Т.е. нужно явно экранировать:
<a href="file://\/C://foo.png">121</a>
Забавно, что я сделал коммент как /// чтобы не напарываться на такие ошибки с //, но не учёл, что урлы с тремя слешами тоже бывают