К содержанию

Навигация

Схемы JSON

Portable Docara использует JSON Schema Draft 2020-12 и fail closed отклоняет unknown fields, неверные типы и unsafe paths.

Schema ID Source/output Назначение
docara.site.v1 docara.json Site contract
docara.section.v1 section.json Наследуемый section contract
docara.page.v1 <page>.page.json Page contract
docara.redirects.v1 Файл из redirects_file Декларативные внутренние redirects
docara.redirect_receipt.v1 .docara/redirects.json Проверяемый результат публикации redirects
docara.component_call.v1 Нормализованный вызов Форма ID/props; admission определяет runtime
docara.framework_lock.v1 simai-framework.lock.json Immutable runtime/manifests/assets
https://schemas.simai.io/docara/component-catalog-entry/v1 Package source record Одна запись component catalog
https://schemas.simai.io/docara/typed-component-definition/v1 resources/component-catalog/typed/*.json Typed owner record
docara.effective_component_catalog.v1 _docara/component-catalog.json Производный catalog exact build
docara.search_index.v1 _docara/search-index.json Локальный search index
docara.lang.v1 content/<locale>/lang.json Только общие UI-подписи локали
docara.translation_lock.v1 translations.lock.json Принятые hashes переводов, уровень проверки и исключения
docara.translation_status.v1 .docara/translation-status.json Детерминированный отчёт о страницах и ключах локали
docara.documentation_source.v1 Source-owned JSON или встроенный provider Нейтральный публичный контракт документируемых сущностей
docara.documentation_lock.v1 documentation.lock.json Принятые связи страниц, примеров и отпечатков исходного API
docara.documentation_status.v1 .docara/documentation-status.json Производный отчёт актуальности документации по исходному коду

Исполняемые примеры schema

Valid minimal site:

JSON
{
  "schema": "docara.site.v1",
  "preset": "docs",
  "framework_lock": "simai-framework.lock.json"
}

Invalid site с unknown field:

JSON
{
  "schema": "docara.site.v1",
  "preset": "docs",
  "framework_lock": "simai-framework.lock.json",
  "unknown_setting": true
}

Invalid-пример документирует ожидаемую ошибку; не копируйте его в проект.

Scope

Поле Site Section Page
preset, title, locale ✓ ✓ ✓
branding, layout, settings ✓ ✓ ✓
navigation, search, reading ✓ ✓ ✓
reader_preferences ✓ — —
framework_lock, content_root, base_url, default_locale, locales, locale_routing, translation_tracking, documentation_tracking ✓ — —
documentation_version, redirects_file ✓ — —
description, slug — — ✓

schema обязателен. Optional version, если присутствует, равен 1 и обозначает версию schema, а не версию документации.

Presentation branches

  • branding: непустые title/label, mode (full, compact, logo, text), size (small, medium, large) и относительные пути brand assets;
  • layout.key: registered value docara.docs;
  • layout.container.max: integer 1..8, mapped to SIMAI Framework max-container-1..8;
  • layout.regions.<name>.enabled: boolean;
  • layout.regions.<name>.sections: ordered registered Section -> Block -> Smart calls;
  • settings.theme: system, light, dark;
  • settings.modal_blur: none, small, medium, large;
  • settings.ui_radius: default, medium, large;
  • reader_preferences.enabled: boolean;
  • reader_preferences.view: side-panel;
  • reader_preferences.hidden_fields: необязательный список встроенных полей, которые не нужно показывать;
  • reader_preferences.groups: непустой список зарегистрированных групп и полей; runtime дополнительно проверяет неизвестные ID, повторы, принадлежность группе и безопасный effect contract;
  • navigation.hidden: boolean;
  • navigation.order: integer 0..2147483647;
  • search.enabled, search.indexed: boolean;
  • reading.breadcrumbs, reading.toc, reading.previous_next: boolean;
  • reading.mobile_toc: auto, always, never;
  • reading.toc_depth: integer 2..6.

Branch должен содержать хотя бы одно поле. {} и [] отклоняются. Явная очистка записывается как {"$reset": true}; reset можно совместить с новыми ключами этой же ветки.

Defaults

Resolver устанавливает:

JSON
{
  "content_root": "content",
  "layout": {
    "key": "docara.docs",
    "regions": {
      "header": { "enabled": true },
      "sidebar": { "enabled": true },
      "main": { "enabled": true },
      "outline": { "enabled": true },
      "footer": { "enabled": false }
    }
  },
  "search": {
    "enabled": false,
    "indexed": true
  },
  "reading": {
    "breadcrumbs": true,
    "toc": true,
    "mobile_toc": "auto",
    "toc_depth": 3,
    "previous_next": true
  }
}

Структурные defaults областей восстанавливаются после branch reset. main является обязательной областью и не может быть выключен. Допустимые section/block/Smart IDs и фиксированные data bindings дополнительно проверяются runtime resolver.

Значения starter, например включённый search UI, приходят из поставляемого docara.json, а не из скрытого default.

Effective component catalog

Machine-readable catalog объединяет native Markdown, typed Docara и Smart-компоненты, допущенные exact Framework lock. Requirement records фиксируют недоступные потребности, но не callable syntax.

Root содержит immutable framework/provider identity, sorted entries, content_sha256 и bounded nonclaims. Exact параметры, states, limitations и examples принадлежат source records/fixtures и показываются в справочнике компонентов, а не повторяются здесь.

_docara/component-catalog.json является output. Автор не редактирует его и не может через него, Markdown или presentation JSON расширить Smart surface.

Runtime checks beyond schema

Schema подтверждает форму, но builder дополнительно проверяет:

  • существование и confinement paths;
  • symlink и reserved destinations;
  • brand asset type/size/hash;
  • Framework lock semantics и immutable references;
  • manifest, props, dependencies и asset projection;
  • принадлежность каждой страницы объявленному locale, BCP 47 tags, непересекающиеся content roots, fallback-циклы, locales.missing_page_policy и отдельную documentation_version;
  • redirect target existence, collision, chain/cycle и confinement внутри base_url;
  • output collisions.

Поэтому schema-valid JSON ещё не гарантирует успешную сборку, если внешний файл или runtime contract нарушен.

Поиск по документации

Введите минимум 2 символа

    Настройки

    Тема
    Размер шрифта
    Ширина страницы