Уровень 1 0 / 100 XP
Сегодня
0 мин
0 вопросов
- точность
0 уроков

Завтра счёт начнётся заново

Новое достижение
Первые шаги

Front Matter Reference

YAML fields specification for Concepts, Tracks, and Paths

Front Matter Reference

Полная спецификация YAML полей для концептов, треков и путей.


Concept Front Matter

Файл: content/concepts/{id}/index.md

Обязательные поля

---
id: "html-forms"              # Уникальный идентификатор (slug)
title: "HTML Forms"            # Название концепта
description: "Short desc"      # Краткое описание (1-2 предложения)
duration: "15 min"             # Примерное время изучения
level: 1                       # Уровень сложности (1-5)
---

Опциональные поля

---
# ... обязательные поля ...

# Категоризация
tags: ["html", "web", "forms"]  # Теги для поиска и фильтрации
category: "web-development"     # Основная категория
topics: ["frontend", "markup"]  # Связанные темы

# Зависимости
prerequisites: ["html-basics", "css-selectors"]  # Что нужно знать до
connections:
  before: ["html-basics"]       # Что изучить перед этим
  after: ["forms-validation"]   # Что изучить после
  related: ["css-forms"]        # Связанные темы

# Авторство
author: "John Doe"             # Автор концепта
contributors: ["Jane Smith"]   # Соавторы
created: 2025-01-15            # Дата создания
updated: 2025-01-20            # Дата обновления

# Геймификация
points: 100                    # Баллы за завершение
achievements: ["first-form"]   # Ачивки при завершении
boss: true                     # Это концепт-босс?

# Визуализация
image: "forms.png"             # Изображение для карточки
icon: "form-icon.svg"          # Иконка
color: "#059669"               # Цвет темы

# Контент
type: "material"               # material | exercise | assessment
mode: "standard"               # standard | immersive | practice
template: "single"             # single | immersive | scenario | story

# Дополнительно
draft: false                   # Черновик?
featured: true                 # Показывать в featured?
difficulty: "beginner"         # beginner | intermediate | advanced
---

Track Data File

Файл: data/tracks/{id}.yaml

Полная спецификация

# === Основная информация ===
id: "html-basics"
title: "HTML Basics"
description: "Learn HTML fundamentals"

# === Время и сложность ===
duration: "1.5 hours"
level: 1                        # 1-5
difficulty: "beginner"          # beginner | intermediate | advanced

# === Категоризация ===
tags: ["html", "web", "beginner"]
category: "web-development"
topics: ["frontend", "markup"]

# === Контент ===
concepts:                       # Список концептов (обязательно!)
  - html-tags
  - html-attributes
  - html-forms
  - semantic-html

mode: "free"                    # free | sequential

# === Визуализация ===
image: "html-basics.png"
icon: "html-icon.svg"
color: "#e34c26"

# === Геймификация ===
points: 500                     # Баллы за завершение трека
achievements: ["html-master"]   # Ачивки
boss_concept: "semantic-html"   # Финальный босс-концепт

# === Мета ===
author: "John Doe"
contributors: ["Jane Smith"]
created: 2025-01-15
updated: 2025-01-20
draft: false
featured: true

Track Page File

Файл: content/tracks/{id}.md

---
title: "HTML Basics"
dataFile: "html-basics"         # Ссылка на data/tracks/html-basics.yaml
---

Path Data File

Файл: data/paths/{id}.yaml

Полная спецификация

# === Основная информация ===
id: "web-developer"
title: "Web Developer"
description: "Become a web developer from scratch"

# === Время и сложность ===
duration: "20 hours"
level: 1
difficulty: "beginner"

# === Категоризация ===
tags: ["web", "fullstack", "career"]
category: "career-path"
topics: ["frontend", "backend", "deployment"]

# === Контент ===
items:                          # Список треков и концептов
  - type: track
    id: html-basics
    optional: false             # Обязательный?

  - type: concept
    id: how-browser-works
    optional: true              # Опциональный концепт

  - type: track
    id: css-basics

  - type: track
    id: js-basics

  - type: milestone             # Контрольная точка
    id: first-project
    title: "Build Your First Website"
    description: "Apply everything you've learned"
    points: 1000

# === Визуализация ===
image: "web-developer.png"
icon: "code-icon.svg"
color: "#059669"

# === Геймификация ===
points: 5000                    # Баллы за завершение пути
achievements: ["web-dev-novice"]
certificate: true               # Выдать сертификат?

# === Мета ===
author: "John Doe"
contributors: ["Jane Smith"]
created: 2025-01-15
updated: 2025-01-20
draft: false
featured: true

Path Page File

Файл: content/paths/{id}.md

---
title: "Web Developer"
dataFile: "web-developer"       # Ссылка на data/paths/web-developer.yaml
---

Типы контента

concept_type field

concept_type: material

Во всех восьми готовых уроках дерева стоит одно значение, material. Шаблоны читают .Params.concept_type (с запасным ходом на legacy type) в layouts/concepts/single.html и layouts/concepts/list.html, где значение задаёт иконку и фильтр.

Виды-компаньоны (-practice, -mindmap) concept_type не несут. Вид выбирается полем layout плюс parent_concept:

title: "Практика: Опричнина"
layout: practice
type: concepts
parent_concept: oprichnina
url: /concepts/oprichnina-practice/

Режимы отображения

mode field

Доступно только для Concept.

mode: "standard"     # Обычная страница
mode: "immersive"    # Полноэкранный immersive mode
mode: "practice"     # Режим практики

Выбор шаблона

layout field

Реально существующие виды, файлы в layouts/concepts/:

layout: practice    # страница практики, читает parent_concept
layout: mindmap     # карта понятий, строится из content_graph родителя
layout: scenario    # ветвящийся сценарий

Без layout основной урок рендерится через layouts/concepts/single.html. Отдельного значения для него писать не нужно.

Когда шорткод, а когда отдельный вид

Правило:

SHORTCODE = embedded (часть страницы)
TEMPLATE  = fullscreen (вся страница)

Пример:

Уровни сложности

level field (1-5)

level: 1    # Beginner
level: 2    # Elementary
level: 3    # Intermediate
level: 4    # Advanced
level: 5    # Expert

difficulty field (текстовый)

difficulty: "beginner"      # Начинающий
difficulty: "intermediate"  # Средний
difficulty: "advanced"      # Продвинутый

Connections (Knowledge Graph)

connections field

Доступно только для Concept.

connections:
  before: ["html-basics", "css-selectors"]   # Что изучить перед
  after: ["forms-validation", "ajax"]        # Что изучить после
  related: ["css-forms", "js-forms"]         # Связанные темы
  alternative: ["vue-forms"]                 # Альтернативные подходы

Визуализация:

Before (prerequisites):
  HTML Basics ──────→ HTML Forms
  CSS Selectors ────→ HTML Forms

After (next steps):
  HTML Forms ──→ Forms Validation
  HTML Forms ──→ AJAX

Related:
  CSS Forms ···→ HTML Forms
  JS Forms ····→ HTML Forms

Alternative:
  Vue Forms ···→ HTML Forms

Геймификация

Баллы

# Concept
points: 100              # Баллы за завершение

# Track
points: 500              # Баллы за завершение трека

# Path
points: 5000             # Баллы за завершение пути

Ачивки

# Concept
achievements: ["first-form"]

# Track
achievements: ["html-master"]

# Path
achievements: ["web-dev-novice", "completed-first-path"]

Босс-концепты

# В Concept
boss: true               # Это босс-концепт

# В Track
boss_concept: "semantic-html"  # ID финального босса

Проверка понимания


Следующие шаги