<commit_before># Шаблонизация ns.View в yate

Каждый вид отрисовывается изолированно. Корнем является JSON-структура описанная ниже.

Исходя из сменя контекста для каждого вида, не стоит увлекаться созданием ключей и глобальных переменных в yate, т.к. они будут перевычислять для каждого вида.
Более правильным способом является вынос таких данных в external-функции.

## Создание View
За создание DOM-обертки и содержимого отвечает мода `ns-view`.
Ее стоит использовать только для управления местом отрисовки дочерних View.

**Не стоит переопределять эту моду без крайней необходимости!**

## Атрибуты обертки View

* `ns-view-add-attrs` - с помощью этой моды можно дописать собственные атрибуты в DOM-обертку. Например,

```
match .my-view2 ns-view-add-attrs {
    @data-id = 'my-id'
}

```
* `ns-view-add-class` - с помощью этой моды можно дописать собственные классы в DOM-обертку. Например,

```
match .my-view2 ns-view-add-attrs {
    // пробел в начале обязателен
    " my-class"
}
```

## Содержимое View

### ns-view-content и ns-view-desc
`ns-view-content` - самая главная мода, отвечает за содержимое view при нормальной отрисовке.

```
match .my-view1 ns-view-content {
    <div class="view1-content">
        // в этом месте отрисуются все дочерние view с помощью хелпера ns-view-desc
        apply . ns-view-desc
    </div>
}
```<commit_msg>Update ns.view.yate.md<commit_after># Шаблонизация ns.View в yate

Каждый вид отрисовывается изолированно. Корнем является JSON-структура описанная ниже.

Исходя из сменя контекста для каждого вида, не стоит увлекаться созданием ключей и глобальных переменных в yate, т.к. они будут перевычислять для каждого вида.
Более правильным способом является вынос таких данных в external-функции.

## Создание View
За создание DOM-обертки и содержимого отвечает мода `ns-view`.
Ее стоит использовать только для управления местом отрисовки дочерних View.

**Не стоит переопределять эту моду без крайней необходимости!**

## Атрибуты обертки View

* `ns-view-add-attrs` - с помощью этой моды можно дописать собственные атрибуты в DOM-обертку. Например,

```
match .my-view2 ns-view-add-attrs {
    @data-id = 'my-id'
}

```
* `ns-view-add-class` - с помощью этой моды можно дописать собственные классы в DOM-обертку. Например,

```
match .my-view2 ns-view-add-class {
    // пробел в начале обязателен
    " my-class"
}
```

## Содержимое View

### ns-view-content и ns-view-desc
`ns-view-content` - самая главная мода, отвечает за содержимое view при нормальной отрисовке.

```
match .my-view1 ns-view-content {
    <div class="view1-content">
        // в этом месте отрисуются все дочерние view с помощью хелпера ns-view-desc
        apply . ns-view-desc
    </div>
}
```
{'fraction_non_alphanumeric': 0.09746230231702832, 'fraction_numerical': 0.002942258183155572, 'mean_word_length': 3.7469458987783595, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6157764', 'n_tokens_mistral': 1115, 'n_tokens_neox': 1292, 'n_words': 301}