Стандарт списка
Что делает список хорошим — обязательное ядро, приветствуемая норма и шаблоны для шести типов списков.
Список в SetFork правит кто угодно: автор, соавтор, предложение со стороны, генерация, правка через git. Чтобы при этом одинаковые по смыслу списки не выглядели каждый раз по-новому, у формы есть стандарт.
Он устроен как в языках программирования. В Python отступы — часть синтаксиса: без них код просто не запустится. В JavaScript точки с запятой не обязательны, но их ставят, потому что так принято и так читается лучше. У нас так же: есть небольшое жёсткое ядро, без которого список не сохранится, и есть норма, которую мы приветствуем и показываем, но не навязываем.
Тип списка
Тип отвечает на один вопрос: что является элементом списка. Он выбирается при создании и меняется в настройках.
| Тип | Элемент — это | Пример |
|---|---|---|
| Пошагово | действие, которое выполняют по порядку | развёртывание сервиса, сборка стеллажа |
| Список вещей | вещь, которую нужно достать или иметь | аптечка в дорогу, набор для акварели |
| Чеклист | состояние, которое подтверждают | «Резервная копия создана», «Паспорт действителен» |
| Критерии | правило, по которому выбирают или судят | на что смотреть при покупке монитора |
| Варианты | вариант для сравнения | пять сервисов рассылок и их компромиссы |
| Рецепт | ингредиент с количеством, затем шаг готовки | борщ, фокачча |
Тип — не украшение: от него зависит форма вывода генерации, проверки, экспорт и то, как список находят.
Что обязательно
Это минимум. Без него список не сохранится — как код без отступов в Python.
- Тип объявлен. Список без типа не создать: угадывать за автора мы перестали.
- Хотя бы один элемент.
- У каждого элемента есть заголовок — непустой и на языке списка.
- Тип каждого блока известен — шаг, текст, картинка, опрос, видео, тест, файл или товары.
- В списке есть элемент, ради которого он заведён: у рецепта — хотя бы один ингредиент, у списка вещей — хотя бы одна вещь, у критериев — хотя бы одно правило. Рецепт без ингредиентов — это не «рецепт со свободной формой», это другой список.
Список обязательного намеренно короткий и расширяется только осознанным решением.
Что приветствуется
Это норма. Она не мешает сохранить список, но её видно — рядом со списком появляется пометка «что улучшить», и она снимается сама, когда причина исчезла.
Для всех типов
- Заголовок элемента говорит о самом элементе, а не о работе над ним: «Определите нужный размер» — это не вещь и не критерий.
- Описание объясняет то, чего нет в заголовке: количества, температуры, флаги, подводные камни.
- Разделы (
День 1,Тесто,Проверка) группируют длинный список. Раздел — свойство любого типа, а не только рецепта. - Ссылки ведут на источник, а не на главную страницу сайта.
- Уровень элемента расставлен осмысленно:
обязательно/рекомендуется/по желанию— это MUST / SHOULD / MAY, а не оформление.
По типам
| Тип | Норма |
|---|---|
| Пошагово | заголовок — короткое действие в повелительном наклонении; команда только там, где её действительно набирают в терминале |
| Список вещей | в заголовке — название вещи и количество или спецификация; порядок не означает последовательность действий |
| Чеклист | заголовок — состояние («Ключи выпущены»), а не действие («Выпусти ключи») |
| Критерии | заголовок — само правило; «почему» объясняет, чем грозит его нарушение |
| Варианты | не меньше двух вариантов; у каждого назван компромисс, а не только достоинство |
| Рецепт | ингредиенты идут первыми, у каждого — точное количество в заголовке («Сахар — 400 г»); дальше шаги с таймингами и температурами |
Шаблоны
Шаблон — это тип плюс заготовленная структура: разделы, порядок, подсказки в полях. Взяли шаблон — получили список, который уже соответствует норме, и осталось наполнить его содержимым.
Тот же шаблон читает генерация. Это не два похожих документа, а один: если форма меняется, она меняется сразу и для человека, и для ИИ — разъехаться им нечем.
Что даёт соблюдение
Стандарт ничего не отнимает у списка, который до него не дотягивает. Он добавляет тем, кто дотягивает:
- Разметка для поисковиков. Список раскладывается в schema.org (
Recipe,HowTo,ItemList) и получает шанс на расширенный сниппет в выдаче. - Данные, а не текст. Список отдаётся по
data.jsonтипизированными элементами: ингредиент видно как ингредиент, инструмент — как инструмент. - Находимость. Фильтры и подборки работают по типу списка.
- Понятность для соавторов. Предложение к списку со знакомой формой читается и принимается быстрее.
Как это вводится
Порядок такой же, как при внедрении политики в любой живой системе: сначала показать, потом требовать. Новые правила появляются как пометка «что улучшить», и только затем — если правило оказалось бесспорным — переходят в обязательные. Уже существующие списки при этом не ломаются.
Технические подробности — какие поля едут в list.json, как выглядит отказ и какие у него коды —
описаны в разделе Git-доступ и в схеме манифеста, ссылка на которую лежит в каждом
list.json ($schema).