# Cheat Sheet

## js в темплейтах, кавычки, точка с запятой, условия в атрибутах
```ejs
<div class="_1" attr="<%= (data.listTitle ? 'a': 'b') %>"></div>
```
## форматирование текста, html escape, utf коды

Для форматирования текста в исполняемом коде предусмотрены следующие возможности:

- Если вам необходимо использовать форматирование текста вы можете указать в опциях компиляции шаблона те теги для которых компилятор будет сохранять форматирование текста, то есть не удалять переносы строк и граничные пробелы. По умолчанию это теги `<pre>` и `<code>`.
- В случае необходимости вы всегда можете использовать UTF коды необходимых символов вида: `&#XXXX;`, где *XXXX* код символа который вы вставляете.
- И наконец вы можете использовать HTML escape последовательности, но в этом случае вам необходимо указать исходную и конечную последовательность символов в опуиях компиляции.

> Никто не мешает вам указать не HTML escape последовательность в качестве исходной и всего один символ в качестве конечной последовательности. Это могут быть любые последовательности символов, которые будут вставлены в `textContent` вашего элемента.

## открытые теги, закрытые теги
Все самозакрывающиеся теги желательно записывать в строгом синтаксисе, закрывая их:

```html
<img src="image.jpg" alt="image" /> 
```
Это позволит избежать возможных ошибок с неправильным парсингом шаблонов.

> Также следует помнить о том что в опциях компиляции шаблонов есть список тегов которые всегда будут представлены как [void](http://google.github.io/incremental-dom/#api/elementVoid) команда шаблонной функции.

## коментарии в шаблонах

Вы можете использовать два типа коментариев в ваших шаблонах

- первый: это стандартные коментарии html. Коментарии данного типа не отображаються и не переносяться в шаблонную функцию

```ejs
<!--This is a comment.-->
<div>
	...
</div>
```

- второй: закрытые javascript коментарии. Коментарии данного типа переносяться как часть кода в шаблоную функцию.

```ejs
<% /* This is a comment.
* Another line of comment.
*/ %>
<div>
	...
</div>
```
> Необходимость закрытия javascript коментариев связана с тем что при переносе кода в шаблонную функцию переносы строк удаляються. И если коментарий не будет закрыт, функция станет синтексически не верной так как код функции после окончания станет частью коментария.
