К содержанию

Навигация

Композиционная модель

Три уровня

  1. Layout владеет геометрией страницы и именами regions.
  2. Section допускается в совместимый region и раскладывает Blocks по slots.
  3. Block/Smart/View получает проверенные данные и создаёт конечный render artifact через общие registry/Gateway.

Content Markdown компилируется отдельно в typed in-memory Document IR. Длина ::: fence не выбирает уровень архитектуры.

Проверенные настройки и прочитанный Markdown превращаются в общий Recipe. Стандартный сборщик SIMAI Framework создаёт Composition Document — готовое дерево страницы. Docara восстанавливает из него вход своих рендереров и создаёт HTML. Авторские файлы при этом не переписываются.

Реальная insertion chain

Шаг Реальный зарегистрированный файл Ответственность
Layout resources/layouts/docara.docs.json regions, required flags, container limits
Layout View Tree resources/views/layout.docara.docs.json безопасные element/region nodes
Region descriptor-owned header, sidebar, main, outline, footer insertion point, не компонент ID branch
Section resources/sections/docara.article.json, docara.header.json, docara.navigation.json, docara.outline.json, docara.shell.json compatible regions и allowed blocks
Section View resources/views/section.docara.article.json, section.docara.header.json, section.docara.shell.json admitted slots
Block resources/blocks/content.document.json, content.markdown.json, content.smart.json, shell.element.json, shell.smart.json payload schema/capability
Smart package, Framework или project artifact props/views/presets/slots/assets/hydration
View registered view/preset/template конечный HTML/assets/provenance
Surface presentation src/PortableSite/SurfacePresentation.php единая admitted outer geometry для Surface, Hero, Showcase и Promo; semantic content остаётся у компонента
Code
Markdown owner
  -> typed Document IR
  -> Layout docara.docs
  -> region main
  -> Section docara.article
  -> slot content
  -> Block content.document
  -> generated Composition Recipe
  -> Framework resolveRecipe
  -> Composition Document
  -> Docara renderer projection
  -> SmartComponentGateway when a Smart leaf is present
  -> registered View
  -> LayoutComposer
  -> PageBuilder result

Кто проверяет совместимость

Atlas публикует для каждого container allowed_children, slots, min_children, max_children, order, max_depth и machine-readable depth_semantics. Значение relative_subtree_root_level_1 означает, что каждый container считает собственный root уровнем 1. Registry отклоняет unknown View Tree kind/tag/attribute/utility/region/slot до registration. Project config выбирает только admitted IDs и не содержит class/callback/PHP/template path.

  • content.documentblocksupported

    Владелец: simai/docara; namespace: content; origin: docara; provider: docara.builtin; authoring: configuration.

  • content.iconblockrejected

    Владелец: simai/docara; namespace: content; origin: requirement; provider: component.catalog.product_requirement; authoring: block.

    Capabilities: add_semantic_icon.

  • content.markdownblocksupported

    Владелец: simai/docara; namespace: content; origin: docara; provider: docara.builtin; authoring: configuration.

  • content.smartblocksupported

    Владелец: simai/docara; namespace: content; origin: docara; provider: docara.builtin; authoring: configuration.

  • docara.alertblocksupported

    Владелец: simai/docara; namespace: docara; origin: docara; provider: component.catalog.typed_definition; authoring: block.

    Capabilities: report_status.

  • docara.backlinksblocksupported

    Владелец: simai/docara; namespace: docara; origin: docara; provider: component.catalog.typed_definition; authoring: block.

    Capabilities: show_pages_linking_here.

  • docara.badgeblocksupported

    Владелец: simai/docara; namespace: docara; origin: docara; provider: component.catalog.inline_definition; authoring: inline.

    Capabilities: label_status.

  • docara.bannerblocksupported

    Владелец: simai/docara; namespace: docara; origin: docara; provider: component.catalog.typed_definition; authoring: block.

    Capabilities: show_bounded_page_announcement.

  • docara.buttonblocksupported

    Владелец: simai/docara; namespace: docara; origin: docara; provider: component.catalog.inline_definition; authoring: inline.

    Capabilities: link_as_action.

  • docara.cardblocksupported

    Владелец: simai/docara; namespace: docara; origin: docara; provider: component.catalog.typed_definition; authoring: block.

    Capabilities: content.embeddable.

  • docara.codeblocksupported

    Владелец: simai/docara; namespace: docara; origin: docara; provider: component.catalog.typed_definition; authoring: block.

    Capabilities: include_external_code.

  • docara.detailsblocksupported

    Владелец: simai/docara; namespace: docara; origin: docara; provider: component.catalog.typed_definition; authoring: block.

    Capabilities: disclose_optional_content.

  • docara.diagramblocksupported

    Владелец: simai/docara; namespace: docara; origin: docara; provider: component.catalog.typed_definition; authoring: block.

    Capabilities: render_declarative_diagram.

  • docara.downloadblocksupported

    Владелец: simai/docara; namespace: docara; origin: docara; provider: component.catalog.typed_definition; authoring: block.

    Capabilities: download_file.

  • docara.embedblocksupported

    Владелец: simai/docara; namespace: docara; origin: docara; provider: component.catalog.typed_definition; authoring: block.

    Capabilities: embed_external_content.

  • docara.exampleblocksupported

    Владелец: simai/docara; namespace: docara; origin: docara; provider: component.catalog.typed_definition; authoring: block.

    Capabilities: show_live_example_and_source.

  • docara.figureblocksupported

    Владелец: simai/docara; namespace: docara; origin: docara; provider: component.catalog.typed_definition; authoring: block.

    Capabilities: show_illustration_with_caption.

  • docara.gridblocksupported

    Владелец: simai/docara; namespace: docara; origin: docara; provider: component.catalog.typed_definition; authoring: container.

    Capabilities: content.embeddable.

    Container: allowed_children=[docara.card]; slots=[]; min_children=1; max_children=12; order=declared; max_depth=2, depth_semantics=relative_subtree_root_level_1.

  • docara.heroblocksupported

    Владелец: simai/docara; namespace: docara; origin: docara; provider: component.catalog.typed_definition; authoring: block.

    Capabilities: explain_product_value, primary_landing_action.

  • docara.htmlblocksupported

    Владелец: simai/docara; namespace: docara; origin: docara; provider: component.catalog.typed_definition; authoring: block.

    Capabilities: render_isolated_trusted_html.

  • docara.iconblocksupported

    Владелец: simai/docara; namespace: docara; origin: docara; provider: component.catalog.inline_definition; authoring: inline.

    Capabilities: add_semantic_icon.

  • docara.kbdblocksupported

    Владелец: simai/docara; namespace: docara; origin: docara; provider: component.catalog.inline_definition; authoring: inline.

    Capabilities: name_keyboard_input.

  • docara.logosblocksupported

    Владелец: simai/docara; namespace: docara; origin: docara; provider: component.catalog.typed_definition; authoring: block.

    Capabilities: show_ecosystem_members, show_trust_signals.

  • docara.mathblocksupported

    Владелец: simai/docara; namespace: docara; origin: docara; provider: component.catalog.typed_definition; authoring: block.

    Capabilities: render_tex_formula.

  • docara.mediablocksupported

    Владелец: simai/docara; namespace: docara; origin: docara; provider: component.catalog.typed_definition; authoring: block.

    Capabilities: pair_content_with_media.

  • docara.stepsblocksupported

    Владелец: simai/docara; namespace: docara; origin: docara; provider: component.catalog.typed_definition; authoring: block.

    Capabilities: content.embeddable.

  • docara.surfaceblocksupported

    Владелец: simai/docara; namespace: docara; origin: docara; provider: component.catalog.typed_definition; authoring: container.

    Capabilities: present_content_surface.

    Container: allowed_children=[]; slots=[content]; min_children=1; max_children=64; order=declared; max_depth=3, depth_semantics=relative_subtree_root_level_1.

  • docara.tabsblocksupported

    Владелец: simai/docara; namespace: docara; origin: docara; provider: component.catalog.typed_definition; authoring: block.

    Capabilities: switch_between_equivalent_views.

  • docara.treeblocksupported

    Владелец: simai/docara; namespace: docara; origin: docara; provider: component.catalog.typed_definition; authoring: block.

    Capabilities: show_file_structure.

  • native.codeblocksupported

    Владелец: simai/docara; namespace: native; origin: native; provider: component.catalog.portable_markdown_profile; authoring: markdown.

    Capabilities: show_code.

  • native.code.enhancedblockrejected

    Владелец: simai/docara; namespace: native; origin: requirement; provider: component.catalog.product_requirement; authoring: block.

    Capabilities: enhance_code.

  • native.footnotes_and_sourcesblocksupported

    Владелец: simai/docara; namespace: native; origin: native; provider: component.catalog.portable_markdown_profile; authoring: markdown.

    Capabilities: cite_source_with_footnote.

  • native.headings_and_textblocksupported

    Владелец: simai/docara; namespace: native; origin: native; provider: component.catalog.portable_markdown_profile; authoring: markdown.

    Capabilities: structure_prose.

  • native.links_and_imagesblocksupported

    Владелец: simai/docara; namespace: native; origin: native; provider: component.catalog.portable_markdown_profile; authoring: markdown.

    Capabilities: illustrate_content, link_content.

  • native.lists_and_quotesblocksupported

    Владелец: simai/docara; namespace: native; origin: native; provider: component.catalog.portable_markdown_profile; authoring: markdown.

    Capabilities: list_items, quote_content.

  • native.tableblocksupported

    Владелец: simai/docara; namespace: native; origin: native; provider: component.catalog.portable_markdown_profile; authoring: markdown.

    Capabilities: compare_small_datasets.

  • project.footer-smartblockproject

    Владелец: project/project; namespace: project; origin: project; provider: project.project; authoring: configuration.

  • shell.elementblocksupported

    Владелец: simai/docara; namespace: shell; origin: docara; provider: docara.builtin; authoring: configuration.

  • shell.smartblocksupported

    Владелец: simai/docara; namespace: shell; origin: docara; provider: docara.builtin; authoring: configuration.

  • ui.badgeblockproposal

    Владелец: simai/docara; namespace: ui; origin: requirement; provider: component.catalog.product_requirement; authoring: block.

    Capabilities: label_status.

  • ui.dataviewblockproposal

    Владелец: simai/docara; namespace: ui; origin: requirement; provider: component.catalog.product_requirement; authoring: block.

    Capabilities: present_structured_data.

  • ui.tabsblockrejected

    Владелец: simai/docara; namespace: ui; origin: requirement; provider: component.catalog.product_requirement; authoring: block.

    Capabilities: switch_content_panels.

  • docara.docslayoutsupported

    Владелец: simai/docara; namespace: docara; origin: docara; provider: docara.builtin; authoring: container.

    Container: allowed_children=[section]; slots=[header, sidebar, main, outline, footer]; min_children=1; max_children=7; order=layout_regions; max_depth=3, depth_semantics=relative_subtree_root_level_1.

  • docara.articlesectionsupported

    Владелец: simai/docara; namespace: docara; origin: docara; provider: docara.builtin; authoring: container.

    Capabilities: content.document.

    Container: allowed_children=[content.document, content.markdown, content.smart]; slots=[content]; min_children=0; max_children=64; order=declared; max_depth=2, depth_semantics=relative_subtree_root_level_1.

  • docara.headersectionsupported

    Владелец: simai/docara; namespace: docara; origin: docara; provider: docara.builtin; authoring: container.

    Capabilities: shell.brand, shell.primary-navigation.

    Container: allowed_children=[shell.smart]; slots=[content]; min_children=0; max_children=64; order=declared; max_depth=2, depth_semantics=relative_subtree_root_level_1.

  • docara.navigationsectionsupported

    Владелец: simai/docara; namespace: docara; origin: docara; provider: docara.builtin; authoring: container.

    Capabilities: shell.secondary-navigation.

    Container: allowed_children=[shell.smart]; slots=[content]; min_children=0; max_children=64; order=declared; max_depth=2, depth_semantics=relative_subtree_root_level_1.

  • docara.outlinesectionsupported

    Владелец: simai/docara; namespace: docara; origin: docara; provider: docara.builtin; authoring: container.

    Capabilities: shell.outline.

    Container: allowed_children=[shell.smart]; slots=[content]; min_children=0; max_children=64; order=declared; max_depth=2, depth_semantics=relative_subtree_root_level_1.

  • docara.shellsectionsupported

    Владелец: simai/docara; namespace: docara; origin: docara; provider: docara.builtin; authoring: container.

    Capabilities: shell.brand, shell.content-after, shell.content-before, shell.footer, shell.outline, shell.primary-navigation, shell.secondary-navigation.

    Container: allowed_children=[shell.element, shell.smart]; slots=[content]; min_children=0; max_children=64; order=declared; max_depth=2, depth_semantics=relative_subtree_root_level_1.

  • project.footersectionproject

    Владелец: project/project; namespace: project; origin: project; provider: project.project; authoring: container.

    Capabilities: shell.footer.

    Container: allowed_children=[project.footer-smart]; slots=[content]; min_children=0; max_children=64; order=declared; max_depth=2, depth_semantics=relative_subtree_root_level_1.

Общая presentation не меняет semantic owner

Surface — authored content container. Hero, Showcase и Promo — отдельные typed semantic definitions. Их Atlas ownership, states, props и provenance берутся из реальных admitted definitions, но outer width/container/background frame собирает одна immutable Surface presentation. Оборачивать эти semantic blocks в Surface нельзя; page/head и границы region по-прежнему принадлежат LayoutComposer.

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

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

    Настройки

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