SetFork Docs

Стандарт списка

Что делает список хорошим — обязательное ядро, приветствуемая норма и шаблоны для шести типов списков.

Список в SetFork правит кто угодно: автор, соавтор, предложение со стороны, генерация, правка через git. Чтобы при этом одинаковые по смыслу списки не выглядели каждый раз по-новому, у формы есть стандарт.

Он устроен как в языках программирования. В Python отступы — часть синтаксиса: без них код просто не запустится. В JavaScript точки с запятой не обязательны, но их ставят, потому что так принято и так читается лучше. У нас так же: есть небольшое жёсткое ядро, без которого список не сохранится, и есть норма, которую мы приветствуем и показываем, но не навязываем.

Тип списка

Тип отвечает на один вопрос: что является элементом списка. Он выбирается при создании и меняется в настройках.

ТипЭлемент — этоПример
Пошаговодействие, которое выполняют по порядкуразвёртывание сервиса, сборка стеллажа
Список вещейвещь, которую нужно достать или иметьаптечка в дорогу, набор для акварели
Чеклистсостояние, которое подтверждают«Резервная копия создана», «Паспорт действителен»
Критерииправило, по которому выбирают или судятна что смотреть при покупке монитора
Вариантывариант для сравненияпять сервисов рассылок и их компромиссы
Рецептингредиент с количеством, затем шаг готовкиборщ, фокачча

Тип — не украшение: от него зависит форма вывода генерации, проверки, экспорт и то, как список находят.

Что обязательно

Это минимум. Без него список не сохранится — как код без отступов в Python.

  1. Тип объявлен. Список без типа не создать: угадывать за автора мы перестали.
  2. Хотя бы один элемент.
  3. У каждого элемента есть заголовок — непустой и на языке списка.
  4. Тип каждого блока известен — шаг, текст, картинка, опрос, видео, тест, файл или товары.
  5. В списке есть элемент, ради которого он заведён: у рецепта — хотя бы один ингредиент, у списка вещей — хотя бы одна вещь, у критериев — хотя бы одно правило. Рецепт без ингредиентов — это не «рецепт со свободной формой», это другой список.

Список обязательного намеренно короткий и расширяется только осознанным решением.

Что приветствуется

Это норма. Она не мешает сохранить список, но её видно — рядом со списком появляется пометка «что улучшить», и она снимается сама, когда причина исчезла.

Для всех типов

  • Заголовок элемента говорит о самом элементе, а не о работе над ним: «Определите нужный размер» — это не вещь и не критерий.
  • Описание объясняет то, чего нет в заголовке: количества, температуры, флаги, подводные камни.
  • Разделы (День 1, Тесто, Проверка) группируют длинный список. Раздел — свойство любого типа, а не только рецепта.
  • Ссылки ведут на источник, а не на главную страницу сайта.
  • Уровень элемента расставлен осмысленно: обязательно / рекомендуется / по желанию — это MUST / SHOULD / MAY, а не оформление.

По типам

ТипНорма
Пошаговозаголовок — короткое действие в повелительном наклонении; команда только там, где её действительно набирают в терминале
Список вещейв заголовке — название вещи и количество или спецификация; порядок не означает последовательность действий
Чеклистзаголовок — состояние («Ключи выпущены»), а не действие («Выпусти ключи»)
Критериизаголовок — само правило; «почему» объясняет, чем грозит его нарушение
Вариантыне меньше двух вариантов; у каждого назван компромисс, а не только достоинство
Рецептингредиенты идут первыми, у каждого — точное количество в заголовке («Сахар — 400 г»); дальше шаги с таймингами и температурами

Шаблоны

Шаблон — это тип плюс заготовленная структура: разделы, порядок, подсказки в полях. Взяли шаблон — получили список, который уже соответствует норме, и осталось наполнить его содержимым.

Тот же шаблон читает генерация. Это не два похожих документа, а один: если форма меняется, она меняется сразу и для человека, и для ИИ — разъехаться им нечем.

Что даёт соблюдение

Стандарт ничего не отнимает у списка, который до него не дотягивает. Он добавляет тем, кто дотягивает:

  • Разметка для поисковиков. Список раскладывается в schema.org (Recipe, HowTo, ItemList) и получает шанс на расширенный сниппет в выдаче.
  • Данные, а не текст. Список отдаётся по data.json типизированными элементами: ингредиент видно как ингредиент, инструмент — как инструмент.
  • Находимость. Фильтры и подборки работают по типу списка.
  • Понятность для соавторов. Предложение к списку со знакомой формой читается и принимается быстрее.

Как это вводится

Порядок такой же, как при внедрении политики в любой живой системе: сначала показать, потом требовать. Новые правила появляются как пометка «что улучшить», и только затем — если правило оказалось бесспорным — переходят в обязательные. Уже существующие списки при этом не ломаются.

Технические подробности — какие поля едут в list.json, как выглядит отказ и какие у него коды — описаны в разделе Git-доступ и в схеме манифеста, ссылка на которую лежит в каждом list.json ($schema).

На этой странице