Словарь родов
Все роды узлов холста в одной таблице: каким тегом печатается род, принимает ли он детей и какие виды знает. Таблица собирается из кода кита при каждом показе страницы, поэтому не отстаёт от него.
Род, вид, контейнер#
- Род — что это за узел. Род задаёт тег и правила печати: ряд —
div, запись —tr, свойство — параdtиdd. Род выбирают функцией кита:Кит.Ряддаёт род «ряд». - Вид — оформление узла из закрытого набора его рода, словом
.Вид(…)(у ряда — первым аргументом). Вид — не имя CSS-класса: класс за пределы кита не выходит, а неизвестный вид останавливает сборку сразу. «—» в таблице значит «без вида». - Контейнер — принимает ли род детей. Лист дерева (текст, картинка, мета, проза, готовое, раздел) печатает себя целиком. Компонент принимает детей ровно тогда, когда у него есть слот.
- «Только дети» в колонке тега — род без своего тега. Холст и шаблон печатают одних детей, свойство — пару тегов
dtиdd, текст — экранированную строку, компонент и готовое — свою разметку целиком, раздел — строку колонки разделов своего дома.
Род и признак холста можно спросить у самого узла: Род() и ЭтоХолст().
Род, вид и холст — у самого узла
| Род | Вид | Холст |
|---|---|---|
холст | да | |
ряд | выбор | да |
текст | нет | |
компонент | кнопка | нет |
компонент | карточка | да |
секция | да |
Узлы = Новый Массив();
Узлы.Добавить(Кит.Холст());
Узлы.Добавить(Кит.Ряд("выбор"));
Узлы.Добавить(Кит.Текст("строка"));
Узлы.Добавить(Кит.Кнопка("Создать"));
Узлы.Добавить(Кит.Карточка("Проекты"));
Узлы.Добавить(Кит.Секция("Ключи"));
Роды = Новый ТаблицаЗначений;
Роды.Колонки.Добавить("Род");
Роды.Колонки.Добавить("Вид");
Роды.Колонки.Добавить("Холст");
Для Каждого Узел Из Узлы Цикл
Строка_ = Роды.Добавить();
Строка_.Род = Кит.Код(Узел.Род());
Строка_.Вид = Узел.Свойства().Вид;
Строка_.Холст = ?(Узел.ЭтоХолст(), "да", "нет");
КонецЦикла;
HTML = Кит.Таблица(Роды).Рендер();Все роды#
| Род | Тег | Принимает детей | Виды |
|---|---|---|---|
голова | <head> | да | — |
готовое | только дети | нет | — |
группа | <fieldset> | да | —, «набор», «простая», «раздел» |
документ | <html> | да | — |
дом | <div> | да | — |
заголовок | <h1…h6> | да | —, «имя» |
запись | <tr> | да | —, «выделенная» |
запись-реестра | <li> | да | — |
картинка | <img> | нет | —, «значок», «значок-малый», «превью», «знак» |
код | <code> | да | —, «блочный», «приглушённый» |
колонка | <th> | да | —, «узкая», «число» |
компонент | только дети | нет | «кнопка», «плашка», «плашки», «поле», «поле-конфига», «скрытое», «команда», «карточка», «зона», «сетка», «шапка», «заглавие», «пустое», «вкладки», «вкладка», «поиск», «страницы», «отказ», «шаги», «иконка», «мета», «полоса», «тумблер», «меню», «пункт-меню», «меню-бургер», «меню-учётка», «меню-панель», «плитка», «уведомление», «разделы», «панель», «сводка», «дерево-галок», «крошки», «крошка», «объявление», «окно», «переключатель-темы» |
мета | <meta> | нет | — |
навигация | <nav> | да | —, «верхняя» |
надпись | <span> | да | —, «название», «пояснение», «сноска», «приглушённая», «приписка», «ключ», «заголовок», «лид», «метка», «учётка» |
область | <div> | да | —, «полоса», «проза», «карточки», «шапка», «плашки», «действия», «отбор», «вставка», «студия», «работа», «образец», «поле», «шапка-узкой», «столбик» |
оболочка-окна | <dialog> | нет | — |
образец | <figure> | да | — |
окно | <dialog> | да | —, «обычное», «опасное», «широкое» |
окно-по-адресу | <a> | нет | — |
основное | <main> | да | —, «полоса» |
панель-сегмента | <div> | да | — |
подвал | <footer> | да | —, «страницы» |
подсказка | <button> | нет | — |
подтверждение | <dialog> | да | — |
примечание | <p> | да | —, «описание», «источник», «пусто», «рамка», «сноска» |
проза | <div> | нет | — |
пункт | <li> | да | — |
раздел | только дети | нет | — |
разделитель | <div> | нет | — |
раскрывашка | <details> | да | —, «простая», «врезка», «подробность», «хвост» |
реестр | <ul> | да | — |
ресурс | <link> | нет | — |
ряд | <div> | да | «выбор», «признаки», «свёрнутые», «плашки», «справа», «строкой», «действия» |
свойства | <dl> | да | — |
свойство | только дети | да | — |
сегмент | <label> | да | — |
сегменты | <div> | да | —, «малые» |
секция | <section> | да | — |
скрипт | <script> | нет | — |
слот-картинки | <div> | нет | — |
список | <ul> | да | —, «сноска» |
ссылка | <a> | да | —, «пилюля», «пилюля-текущая», «знак», «шапка» |
статья | <article> | да | —, «карточка» |
стиль | <style> | нет | — |
таблица | <table> | да | —, «карточками» |
текст | только дети | нет | — |
тело | <body> | да | — |
титул | <title> | да | — |
узкая | <div> | да | — |
форма | <form> | да | —, «столбик», «строкой», «меню», «переключатель» |
форма-без-сессии | <form> | да | —, «столбик», «строкой», «меню», «переключатель» |
форма-без-токена | <form> | да | —, «столбик», «строкой», «меню», «переключатель» |
форма-отбора | <form> | да | —, «столбик», «строкой», «меню», «переключатель» |
холст | только дети | да | — |
шаблон | только дети | да | — |
шаг | <details> | да | — |
шаги | <div> | да | —, «вкладки» |
шапка | <header> | да | —, «страницы», «меню» |
ячейка | <td> | да | —, «величина», «столбиком», «узкая», «число» |
У компонента в таблице стоит «нет»: так про род в целом. Детей принимает только компонент со слотом — карточка, опасная зона, шапка объекта, плашка, сетка. Виды компонента — имена компонентов кита, их видно в Дерево().
Правила вложения#
Большинство родов принимают любых детей. Строгие роды печатают только своих — узел чужого рода исчез бы с экрана молча, поэтому кит останавливает сборку на Добавить.
| Родитель | Принимает только |
|---|---|
документ |
голова, тело |
голова |
титул, мета, ресурс, стиль, скрипт |
титул |
текст |
таблица |
колонка, запись |
запись |
ячейка |
список |
пункт |
свойства |
свойство |
дом |
секция, раздел |
шаги |
шаг |
реестр |
запись-реестра |
сегменты |
сегмент |
Строка на месте ребёнка — тоже узел, рода «текст», поэтому в строгий род она не ложится. В форму строка не кладётся вовсе: токен — словом .Токен(…), текст — узлом Кит.Текст(). Кит.Ничего() — тот же холст, поэтому и он подчиняется этим правилам: в запись его не положить. Подробно — на странице Холст и узлы.
Второй холст#
Шесть родов и карточка держат второй холст — место для содержимого, которое печатается не там, где дети. С аргументами слово наполняет второй холст и возвращает сам узел, без аргументов — отдаёт холст.
| Род | Второй холст | Где печатается |
|---|---|---|
раскрывашка |
Шапка(…) |
свёрнутой строкой перед телом |
запись |
Разворот(…) |
строкой под записью во всю ширину; пустой не печатается |
таблица |
Пусто(…) |
вместо таблицы, когда записей нет; строка — примечание вида «пусто» |
компонент[карточка] |
Действия(…) |
рядом действий под телом карточки |
реестр |
Пусто(…) |
вместо списка, когда записей нет; строка — пояснение пустого состояния |
запись-реестра |
Действия(…) |
справа от свёрнутой строки, вне её; третий холст Кнопки(…) — меню ⚙ и кнопки внизу тела |
окно |
Действия(…) |
рядом действий внизу окна, под телом; на телефоне — прилипшим к низу листа |
У других родов второго холста нет. Вызов Шапка() у записи — исключение, которое называет, как второй холст называется у этого рода. У таблицы из данных Разворот(ИмяКолонки) — не холст, а имя колонки, чьё значение печатается разворотом.
Второй холст другого рода — исключение
Элемент экрана: у узла «запись» нет холста «шапка» — второй холст у него называется «разворот». Содержимое, которому второй холст не нужен, кладите обычным Добавить().
Попытка
Кит.Запись().Шапка();
Исключение
HTML = Кит.Примечание(КраткоеПредставлениеОшибки(ИнформацияОбОшибке())).Рендер();
КонецПопытки;Где искать род#
| Роды | Страница |
|---|---|
| документ, голова, титул, мета, ресурс, стиль, скрипт, тело, шапка, основное, подвал, навигация | Каркас документа |
| холст, область, ряд, статья, раскрывашка, группа | Раскладка |
| список, пункт, свойства, свойство | Списки и пары |
| таблица, колонка, запись, ячейка | Таблица деревом |
| форма, форма-без-сессии, форма-отбора, форма-без-токена | Формы деревом |
| заголовок, надпись, примечание, ссылка, текст, код, шаблон, картинка, проза, готовое | Текст и значения |
| компонент | Компонент в дереве |
| дом, раздел, секция | Дом настроек |
| шаги, шаг | Шаги |
| реестр, запись-реестра | Реестр |
| окно, окно-по-адресу, оболочка-окна | Окно |
| подтверждение | Подтверждение |
| сегменты, сегмент, панель-сегмента | Сегменты |
| подсказка | Подсказка |
| слот-картинки | Слот картинки |
| образец | Образец |
Справка#
ЭлементЭкрана.Род()src/Классы/холст/ЭлементЭкрана.os
Род узла: документ, голова, титул, мета, ресурс, стиль, скрипт, тело, шапка, основное, подвал, навигация, холст, область, ряд, раскрывашка, статья, список, пункт, свойства, свойство, группа, форма, таблица, колонка, запись, ячейка, заголовок, надпись, примечание, ссылка, текст, код, шаблон, картинка, компонент, готовое, дом, раздел, секция. Возвращаемое значение: Строка
ЭлементЭкрана.ЭтоХолст()src/Классы/холст/ЭлементЭкрана.os
Может ли элемент быть холстом — принимать вложенные. Возвращаемое значение: Булево
ЭлементЭкрана.Свойства()src/Классы/холст/ЭлементЭкрана.os
Свойства узла — для печати. Вид, Подпись, Подсказка, Якорь, Роль, Высота, Ширина, Файлы, Отключён, Скрыт, Открыта, БезПодписиВЗаписи и Показан есть у каждого узла; остальные — Текст, Разметка, Адрес, Действие, Уровень, Образец, Слот, Модель, Рисователь, Токен, Данные, Ключ, Язык, Тема, Имя, Свойство, Содержание, Кодировка, Отношение, Тип, Размеры, Правила — только у своего рода. Возвращаемое значение: Структура
РазметкаЭлементов.Роды()src/Классы/холст/РазметкаЭлементов.os
Роды узлов, которые кит умеет печатать. Возвращаемое значение: Массив из Строка
РазметкаЭлементов.ВидыРода()src/Классы/холст/РазметкаЭлементов.os
Виды, известные роду узла. Параметры: Род - Строка - род узла. Возвращаемое значение: Массив из Строка - "" в списке означает «без вида»; пустой список — рода кит не знает.
РазметкаЭлементов.ПроверитьВид()src/Классы/холст/РазметкаЭлементов.os
Проверяет, что вид известен роду узла. Неизвестный вид не печатается пустым классом — он останавливает сборку: иначе опечатка в виде даёт молча неоформленный экран. Параметры: Род - Строка - род узла. Вид - Строка - вид узла.
РазметкаЭлементов.ПроверитьВложение()src/Классы/холст/РазметкаЭлементов.os
Проверяет, что ребёнок такого рода в таком родителе бывает. Узел, которого родитель не печатает, исчез бы с экрана молча. Параметры: Род - Строка - род родителя. РодРебёнка - Строка - род ребёнка.