YEML (язык разметки)
Дополнительные действия
YEML (Yastre Error Markup Language) — декларативный язык разметки для описания сценариев в жанре смешных ошибок. Позволяет записать последовательность окон ошибок, TTS-озвучки и системных событий в читаемом текстовом формате.
Язык разработан DimaYastrebov в феврале 2026 года для ошибкоделов. Текущая версия — 1.3. Файлы YEML имеют расширение .yeml.
YEML поддерживает следующие конструкции:
| Конструкция | Описание |
|---|---|
scene |
Логический блок сценария |
error |
Диалоговое окно с текстом, кнопками и озвучкой |
tts |
Независимая TTS-реплика |
event |
Системные события: загрузка, BSOD, паузы, переходы, и любые другие (даже кастомные события). |
Комментарии
править править код// Однострочный комментарий
/*
Многострочный
комментарий
*/
Метаданные файла
править править кодОбъявляются в начале файла, до первой сцены.
@yeml 1.3
@title "Название выпуска"
@series "Название серии"
@author "Автор"
@date "2026-02-25"
@url "https://youtube.com/watch?v=..."
@created_by "Кто создал файл"
Обязательно только @yeml — версия протокола. Остальные поля опциональны.
scene
править править кодСцена — основной контейнер сценария. Перед ней указывается операционная система через @system.
@system windows_xp
scene "Название" {
// события
}
Возможные значения @system:
| Значение | Описание |
|---|---|
windows_xp |
Windows XP |
windows_7 |
Windows 7 |
windows_10 |
Windows 10 |
windows_11 |
Windows 11 |
ubuntu 22.04 |
Ubuntu 22.04 |
@author
править править кодПереопределяет автора для конкретной сцены. Актуально для коллабораций.
@author "Другой автор"
scene "Его часть" {
// ...
}
@timeline
править править кодПривязывает сцену к моменту или отрезку оригинального видео.
@timeline "0:00:15"
@timeline "0:01:30" - "0:04:20"
error
править править кодДиалоговое окно ошибки. Единственное обязательное поле — text.
error {
title: "Заголовок"
text: "Текст ошибки"
icon: "error"
buttons: [
{"id": "ok", "text": "OK", "type": "default"}
]
choice: "ok"
tts: {
voice: "nikolai"
text: "Озвучка"
}
}
Поле icon принимает любое значение.
Типы кнопок (type):
| Значение | Описание |
|---|---|
default |
Обычная кнопка |
recommended |
Рекомендуемая (выделена) |
disabled |
Неактивная |
Поле closable — наличие крестика закрытия. По умолчанию true.
Поле sound — звуковой файл при появлении окна. Опционален.
Поле timeline: — привязывает окно к моменту или отрезку видео. Опционально.
error {
timeline: "0:02:14"
text: "Текст ошибки"
}
error {
timeline: "0:02:14" - "0:02:30"
text: "Текст ошибки"
}
tts
править править кодНезависимая реплика, не привязанная к окну ошибки.
tts {
voice: "nikolai"
text: "Текст"
}
Стандартные голоса:
| Значение | Описание |
|---|---|
nikolai |
Голос Николай |
maxim |
Голос Максим |
irina |
Голос Ирина |
Кастомные голоса тоже допустимы.
event
править править кодСистемные события. Тип задаётся через type.
event {
type: "boot"
}
event {
type: "bsod"
}
event {
type: "wait", duration: 2
}
event {
type: "timeskip",
text: "Три часа спустя...",
duration: 3
}
event {
type: "fade_to_black"
}
Стандартные типы событий
править править код| Тип | Описание |
|---|---|
boot |
Загрузка системы |
bsod |
Синий экран смерти |
wait |
Пауза (параметр duration — секунды)
|
timeskip |
Пропуск времени с текстом на экране |
fade_to_black |
Затухание экрана |
Кастомные типы тоже допустимы.
Пример
править править код@yeml 1.3
@title "Название выпуска"
@author "Автор"
@system windows_xp
@timeline "0:00:05" - "0:02:50"
scene "Название сцены" {
tts {
voice: "nikolai"
text: "Текст реплики"
}
error {
title: "Заголовок окна"
text: "Текст ошибки"
icon: "error"
buttons: [
{"id": "ok", "text": "OK", "type": "default"}
]
choice: "ok"
}
}
История версий
править править код| Версия | Дата | Изменения |
|---|---|---|
| 1.3 | Февраль 2026 | Добавлен @timeline для сцен и поле timeline: в error. Добавлены метаданные @date, @url, @created_by.
|
| 1.2 | Февраль 2026 | Добавлен @author на уровне сцены для коллабораций. name, sound, duration в event стали опциональными.
|
| 1.1 | Февраль 2026 | Добавлены метаданные файла: @yeml, @title, @series, @author. icon, buttons, choice в error стали опциональными.
|
| 1.0 | Февраль 2026 | Первая версия. Базовые конструкции: @system, scene, error, tts, event.
|