oscript-ui
oscript-ui

Словарь родов

Все роды узлов холста в одной таблице: каким тегом печатается род, принимает ли он детей и какие виды знает. Таблица собирается из кода кита при каждом показе страницы, поэтому не отстаёт от него.

Род, вид, контейнер#

  • Род — что это за узел. Род задаёт тег и правила печати: ряд — 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

Проверяет, что ребёнок такого рода в таком родителе бывает. Узел, которого родитель
не печатает, исчез бы с экрана молча.

Параметры:
 Род        - Строка - род родителя.
 РодРебёнка - Строка - род ребёнка.