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 финального босса