К содержанию

Навигация

Композиция: сайт → раздел → страница

Сайт задаёт бренд и тему, раздел заменяет sidebar и отключает aside, а страница сбрасывает aside и включает footer.

Результат

Открыть отдельно

Исходные файлы

Markdown
# Композиция: сайт → раздел → страница

Сайт задаёт бренд и тему, раздел заменяет sidebar и отключает aside, а страница
сбрасывает aside и включает footer.

## Результат

[Открыть отдельно](/ru/demonstrator-results/composition-inheritance/page/)

:::internal_preview {size=tall title="Композиция сайта, раздела и страницы"}
[Открыть результат](/ru/demonstrator-results/composition-inheritance/page/)
:::

## Исходные файлы

:::code {src="./composition-inheritance.md" lang=markdown title="Страница примера · content/ru/examples/composition-inheritance.md"}
:::

:::code {src="../../../docara.json" lang=json title="Настройки сайта · docara.json"}
:::

:::code {src="../demonstrator-results/composition-inheritance/section.json" lang=json title="Настройки раздела · content/ru/demonstrator-results/composition-inheritance/section.json"}
:::

:::code {src="../demonstrator-results/composition-inheritance/page.md" lang=markdown title="Markdown страницы · content/ru/demonstrator-results/composition-inheritance/page.md"}
:::

:::code {src="../demonstrator-results/composition-inheritance/page.page.json" lang=json title="Переопределение страницы · content/ru/demonstrator-results/composition-inheritance/page.page.json"}
:::
JSON
{
  "schema": "docara.site.v1",
  "title": "Docara",
  "preset": "docs",
  "content_root": "content/ru",
  "framework_lock": "simai-framework.lock.json",
  "smart": {
    "namespace": "project"
  },
  "default_locale": "ru",
  "locales": {
    "missing_page_policy": "skip",
    "ru": {
      "label": "Русский",
      "direction": "ltr",
      "content_root": "content/ru",
      "public_prefix": "ru",
      "fallbacks": []
    }
  },
  "locale_routing": {
    "strategy": "prefixed",
    "root": "redirect",
    "detect_browser_language": false,
    "legacy_unprefixed_redirects": true
  },
  "documentation_version": "current",
  "redirects_file": "redirects.json",
  "base_url": "/",
  "branding": {
    "title": "Docara",
    "mode": "compact",
    "size": "large",
    "logo": "assets/docara-mark.svg",
    "favicon": "assets/favicon.ico"
  },
  "layout": {
    "key": "docara.docs",
    "container": {
      "max": 7
    },
    "scrollbar": {
      "preset": "overlay"
    },
    "content": {
      "gap": 0
    }
  },
  "settings": {
    "theme": "system",
    "modal_blur": "none",
    "ui_radius": "default"
  },
  "reader_preferences": {
    "enabled": true,
    "view": "side-panel",
    "groups": [
      {
        "id": "appearance",
        "fields": [
          "appearance.theme",
          "appearance.font_size",
          "appearance.content_width"
        ]
      }
    ]
  },
  "search": {
    "enabled": true,
    "indexed": true
  },
  "reading": {
    "breadcrumbs": true,
    "toc": true,
    "toc_depth": 3,
    "previous_next": true
  },
  "site_url": "https://docara.simai.io/"
}
JSON
{
  "schema": "docara.section.v1",
  "title": "Наследуемая композиция",
  "navigation": {"hidden": true},
  "search": {"indexed": false},
  "layout": {
    "regions": {
      "sidebar": {
        "sections": [
          {"id": "docs-navigation", "section": "docara.navigation"},
          {
            "id": "section-context",
            "section": "docara.shell",
            "utilities": ["flex", "flex-col", "gap-1", "p-2", "surface-0"],
            "blocks": [
              {"id": "label", "block": "shell.element", "slot": "content", "element": {"tag": "p", "text": "Этот блок унаследован от section.json.", "utilities": ["m-0"]}}
            ]
          }
        ]
      },
      "outline": {"enabled": false}
    }
  }
}
Markdown
# Три уровня настроек

Эта страница получает бренд, тему и ширину от `docara.json`, дополнительный
sidebar — от `section.json`, а aside и footer — от собственного sidecar.

## Наследование сайта

Брендированный header не повторяется в настройках раздела или страницы.

## Переопределение раздела

Sidebar заменён на уровне раздела и содержит дополнительный контекст.

## Reset страницы

Страница сбрасывает отключённый aside к явной композиции и включает footer.
JSON
{
  "schema": "docara.page.v1",
  "title": "Композиция: сайт → раздел → страница",
  "description": "Три уровня наследования областей с явным reset страницы.",
  "layout": {
    "regions": {
      "outline": {
        "$reset": true,
        "enabled": true,
        "sections": [
          {"id": "page-outline", "section": "docara.outline"},
          {
            "id": "page-context",
            "section": "docara.shell",
            "utilities": ["flex", "flex-col", "gap-1"],
            "blocks": [
              {"id": "label", "block": "shell.element", "slot": "content", "element": {"tag": "p", "text": "Aside переопределён в page.page.json.", "utilities": ["m-0"]}}
            ]
          }
        ]
      },
      "footer": {
        "enabled": true,
        "sections": [
          {
            "id": "page-footer",
            "section": "docara.shell",
            "utilities": ["flex", "flex-col", "gap-1", "p-2", "surface-0"],
            "blocks": [
              {"id": "label", "block": "shell.element", "slot": "content", "element": {"tag": "p", "text": "Footer включён только для этой страницы.", "utilities": ["m-0"]}}
            ]
          }
        ]
      }
    }
  }
}

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

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

    Настройки

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