Tags
Ограничение имён HTML-тегов по группам примитивов и безопасный выбор через ResolveTag.
github.com/fastygo/templ/utils
Ограничение имён HTML-тегов по группам примитивов и безопасный выбор через ResolveTag.
Обзор
Модуль tags ограничивает имена HTML-тегов для каждой группы примитивов.ResolveTag возвращает fallback, если запрошенный tag не разрешён.
Сценарии использования
Block и Box безопасно выбирают landmark-теги
Text и Title безопасно выбирают семантические prose-теги
Семантика
TagGroup — перечисление int в том же Go-пакете
ResolveTag приводит запрошенный tag к нижнему регистру и обрезает пробелы
Недопустимые tag никогда не попадают в разметку; fallback всегда побеждает
Пример resolve.layout
tag := uiutils.ResolveTag("main", "div", uiutils.TagGroupLayout)
// tag == "main"
tag := uiutils.ResolveTag("table", "div", uiutils.TagGroupLayout)
// tag == "div"
API
TagGroup · тип — Набор разрешённых семантических тегов
ResolveTag · function — Возвращает tag или fallback, если tag не разрешён
IsAllowedTag · function — Проверяет, входит ли tag в группу
TagGroupLayout · константа — div, section, article, aside, header, footer, main, nav, figure — Block, Box
TagGroupStack · константа — layout-теги, ul, ol — Stack
TagGroupGroup · константа — layout-теги, fieldset — Group
TagGroupList · константа — ul, ol, dl, menu — List
TagGroupText · константа — p, span, small, code, blockquote, em, strong, time, cite, abbr, mark, address, pre, figcaption — Text
TagGroupContainer · константа — div, main, section — Container
TagGroupHeading · константа — h1–h6 — Title