`.
+До открывающего и после закрывающего тегов должна быть 1 пустая строка.
+
+Пример простого грида с компактными карточками:
+
+```
+
+- :fontawesome-brands-html5: Карточка №1
+- :fontawesome-brands-js: Карточка №2
+- :fontawesome-brands-css3: Карточка №3
+- :fontawesome-brands-internet-explorer: Карточка №4
+
+```
+
+Пример грида с многострочными карточками:
+
+```
+
+- :fontawesome-brands-html5: **Заголовок карточки №1**
+
+ ---
+
+ Многострочное содержимое карточки №1
+
+- :fontawesome-brands-js: **Заголовок карточки №2**
+
+ ---
+
+ Многострочное содержимое карточки №2
+
+- :fontawesome-brands-css3: **Заголовок карточки №3**
+
+ ---
+
+ Многострочное содержимое карточки №3
+
+- :fontawesome-brands-internet-explorer: **Заголовок карточки №4**
+
+ ---
+
+ Многострочное содержимое карточки №4
+
+```
+
+### Вкладки (табы)
+
+Позволяют уместить информацию на одном уровне, не растягивая страницу по высоте.
+
+Синтаксис:
+
+```
+=== "Заголовок вкладки 1"
+ Содержимое вкладки 1
+
+=== "Заголовок вкладки 2"
+ Содержимое вкладки 2
+```
+
+Содержимое вкладки отступается минимум на 4 пробела.
+Содержимое без отступа (в начале строки) находится вне вкладки.
+
+Для содержимого вкладки распространяются все те же markdown-правила, включая указанные в этом документе.
+
+До и после каждого заголовка вкладки должна быть 1 пустая строка.
+
+После содержимого последней вкладки должна быть 1 пустая строка.
+
+### Сноски
+
+Сноска позволяет добавить надстрочный индекс к слову, чтобы вынести пояснения в конец страницы, быстро переместиться к нему по клику на индекс и вернуться обратно.
+
+Синтаксис:
+
+```
+Lorem[^1] ipsum[^2] dolor sit amet, consectetur adipiscing elit.
+
+[^1]: однострочная сноска
+[^2]:
+ многострочная сноска
+ с отступом 4 пробела слева
+ на каждой строке
+```
+
+### Подсказки (тултипы) и аббревиатуры
+
+Они появляются при наведении мыши на какой-либо элемент на странице документа.
+
+Пример 1: иконка с подсказкой:
+`:material-information-outline:{ title="текст подсказки" }`
+
+Пример 2: ссылка с подсказкой:
+`[Hover me](https://example.com "I'm a tooltip!")`
+
+Пример 3: альтернативная ссылка с подсказкой:
+
+```
+[Hover me][example]
+
+ [example]: https://example.com "I'm a tooltip!"
+```
+
+### Горячие клавиши
+
+В общем случае, для указания корячих клавиш следует использовать тег `
`.
+Примеры: `B`, `Esc`
+
+Для описания комбинаций клавиш следует вставлять между каждой клавишей знак `+`, обрамлённый пробелами.
+Примеры: `Shift + A`, `Ctrl + K + 4`
+
+Для MacOS-специфичных тем вставлять `+` не нужно.
+Примеры: `⌘C`, `⇧⌘P`
+
+Сопоставление пиктограмм с названиями клавиш (служебных и модификаторов) MacOS:
+
+- Базовые модификаторы:
+ - `⌘` - `Command` (`Cmd`)
+ - `⌥` - `Option` (`Alt`)
+ - `⌃` - `Control` (`Ctrl`)
+ - `⇧` - `Shift`
+ - `⇪` - `Caps Lock`
+- Навигация и управление:
+ - `⌫` - `Delete` (Backspace, удаление символа слева)
+ - `⌦` - `Forward Delete` (удаление символа справа, `Fn` + D`elete)
+ - `⏎` - `Return` (`Enter`)
+ - `⌕` - `Enter` на цифровой клавиатуре (в некоторых шрифтах)
+ - `⎋` - `Escape` (`Esc`)
+ - `⇥` - `Tab` (Табуляция)
+ - `⇤` - `Backtab` (`Shift` + `Tab`)
+ - `␣` - `Space` (Пробел)
+- Перемещение по тексту:
+ - `↖` - `Home` (Начало документа, `Fn` + `←`)
+ - `↘` - `End` (Конец документа, `Fn` + `→`)
+ - `⇞` - `Page Up` (Страница вверх, `Fn` + `↑`)
+ - `⇟` - `Page Down` (Страница вниз, `Fn` + `↓`)
+- Специальные и системные:
+ - `🌐` / `fn` — Функция (`Fn` / Кнопка смены языка/вызова эмодзи)
+ - `⏏` — `Eject` (Извлечение диска)
+
+### Кнопки
+
+- `[Серая кнопка](https://example.com/){ .md-button }`
+- `[Синяя кнопка](https://example.com/){ .md-button .md-button--primary }`
+- `[:fontawesome-solid-paper-plane: Кнопка серая с иконкой](https://example.com/){ .md-button }`
+- `[:fontawesome-solid-paper-plane: Кнопка синяя с иконкой](https://example.com/){ .md-button .md-button--primary }`
diff --git a/.gitignore b/.gitignore
index 4cf203a..5b28ba5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
-/.cache
-/site
+/.cache/
+/site/
+/__pycache__/
.DS_Store
diff --git a/.kodarules b/.kodarules
new file mode 100644
index 0000000..9eecc2d
--- /dev/null
+++ b/.kodarules
@@ -0,0 +1,25 @@
+- Всегда используй навык koda-zensical
+- Всегда перечитывай файлы перед каждым изменением - пользователь уже мог внести изменения
+- При изменениях структуры проекта всегда актуализируй AGENTS.md
+- |
+ В структуре навигации файла `zensical.toml` всегда должен присутствовать закомментированный раздел `Debug`.
+ Это отладочные страницы с примерами, которые не должны попасть в итоговую документацию.
+ Этот раздел раскомментируется вручную по необходимости.
+- |
+ Для отладки используй команду `make site`.
+ В выводе команды могу быть предупреждения и ошибки в следующем формате:
+
+ ```
+ Warning: page does not exist
+ ╭─[ test.md:695:10 ]
+ │
+ 695 │ - [Edit](../edit/how-to-use-it.md) — редактирование кода
+ │ ────────────┬───────────
+ │ ╰───────────── page does not exist
+ ─────╯
+ ```
+ что означает буквально следующее: "в файле content/test.md в строке 695 в позиции 10 есть ссылка на несуществующую страницу."
+ Эти предупреждения надо всегда исправлять.
+
+- При изменениях структуры проекта и только при корректной сборке (без предупреждений и ошибок) всегда актуализируй `./AGENTS.md`
+- При доработке или расширении функционала этого проекта или синтаксиса всегда актуализируй скилл `./.agents/skills/koda-zensical`
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
new file mode 100644
index 0000000..afcfe0a
--- /dev/null
+++ b/.vscode/extensions.json
@@ -0,0 +1,5 @@
+{
+ "recommendations": [
+ "0x10.mkdocs-material-preview"
+ ]
+}
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..9a3098a
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,5 @@
+{
+ "files.associations": {
+ "*.md": "python-markdown"
+ }
+}
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
new file mode 100644
index 0000000..c814c6d
--- /dev/null
+++ b/.vscode/tasks.json
@@ -0,0 +1,22 @@
+{
+ // See https://go.microsoft.com/fwlink/?LinkId=733558
+ // for the documentation about the tasks.json format
+ "version": "2.0.0",
+ "tasks": [
+ {
+ "label": "Живой предпросмотр (localhost:8000)",
+ "type": "shell",
+ "command": "make live"
+ },
+ {
+ "label": "Собрать статический сайт (./site)",
+ "type": "shell",
+ "command": "make site"
+ },
+ {
+ "label": "Собрать docker-образ со стат. сайтом",
+ "type": "shell",
+ "command": "make image"
+ }
+ ]
+}
diff --git a/AGENTS.md b/AGENTS.md
new file mode 100644
index 0000000..615a017
--- /dev/null
+++ b/AGENTS.md
@@ -0,0 +1,129 @@
+# KODA.md — контекст проекта
+
+## Обзор проекта
+
+Бойлерплейт для документации на базе [Zensical](https://zensical.org) — системы документации, построенной на MkDocs Material.
+Проект предназначен для быстрого старта документации к любому продукту или сервису: от локальной разработки с live-предпросмотром до сборки Docker-образа со статическим сайтом на nginx.
+
+### Технологии
+
+- **Zensical** — движок документации (форк MkDocs Material)
+- **Docker** — контейнерная сборка и деплой
+- **nginx:alpine** — раздача статического сайта
+- **Python** — кастомный плагин `inline_badges.py` (inline-бейджи через HTML-комментарии)
+- **TOML** — конфигурация проекта (`zensical.toml`)
+
+### Архитектура
+
+Проект использует двухэтапную сборку Docker-образа:
+
+1. **Builder** (`zensical/zensical:latest`) — собирает статический сайт из Markdown-файлов в `content/`
+2. **Runtime** (`nginx:alpine`) — раздаёт готовый статический сайт на порту 80
+
+Вся разработка ведётся через Docker — локальная установка Zensical не требуется.
+
+## Структура проекта
+
+```
+content/ — исходные страницы документации (.md)
+ index.md — главная страница
+ part1/ — пример раздела с вложенными страницами
+ sandbox.md — песочница с примерами синтаксиса (отладочная)
+ vscode-icons.md — справочник VSCode-иконок (отладочная)
+ _asseets/ — assets (изображения, стили, скрипты)
+snippets/ — переиспользуемые блоки markdown
+ abbr.md — аббревиатуры
+ coming_soon.md — заглушка «скоро появится»
+ config_file_path.md — пример сниппета с путями конфигурации
+overrides/ — кастомизация темы Zensical
+ .icons/ — кастомные наборы иконок (vscode/)
+zensical.toml — конфигурация проекта (тема, навигация, расширения)
+inline_badges.py — Python-плагин для inline-бейджей
+Dockerfile — многоэтапная сборка: zensical build → nginx
+Makefile — команды для разработки и деплоя
+CONTRIBUTING.md — правила контрибуции
+.editorconfig — настройки редактора (отступы, кодировка, переносы)
+.dockerignore — исключения для Docker-контекста
+.kodarules — правила для AI-ассистента
+```
+
+## Сборка и запуск
+
+Все команды выполняются через `make` (требуется установленный Docker).
+
+| Команда | Описание |
+| ------------ | --------------------------------------------------------------------- |
+| `make live` | Запуск в режиме живой перезагрузки на `http://localhost:8000` |
+| `make site` | Генерация статического сайта с валидацией ссылок и якорей |
+| `make image` | Сборка Docker-образа `harbor.example.com/boilerplate-docs:latest` |
+| `make run` | Запуск контейнера из образа на `http://localhost:8001` |
+| `make push` | Загрузка Docker-образа в реестр `harbor.example.com` |
+| `make help` | Справка по командам (цель по умолчанию) |
+
+### Валидация
+
+При сборке (`make site`) включена валидация:
+
+- битые ссылки (`invalid_links = true`)
+- битые якоря (`invalid_link_anchors = true`)
+
+Предупреждения и ошибки валидации необходимо исправлять перед отправкой изменений.
+
+## Конфигурация
+
+### zensical.toml
+
+Основной конфигурационный файл. Ключевые настройки:
+
+- **Документация:** `content/`, вывод в `site/`
+- **Тема:** Material с поддержкой светлой/тёмной тем, шрифты Inter / JetBrains Mono
+- **Навигация:** табы, секции, хлебные крошки, кнопка «наверх», прошлый/следующий документ
+- **Расширения Markdown:** admonition, tabs, superfences, snippets, footnotes, emoji, highlight, inline badges
+- **Иконки:** Lucide, Material Design, FontAwesome, Octicons, Simple Icons, VSCode Codicons (кастомные)
+- **Теги:** настроены иконки для HTML, JS, CSS, VSCode, JetBrains, CLI, AI/LLM
+- **Социальные ссылки:** Telegram, YouTube, GitHub (в футере)
+- **Debug-раздел:** закомментированный блок в `nav` для отладочных страниц (`sandbox.md`, `vscode-icons.md`)
+
+### inline_badges.py
+
+Кастомный Python-плагин для Markdown. Преобразует HTML-комментарии в бейджи:
+
+- `` — бейдж версии с иконкой `material/tag-outline`
+- `` — бейдж значения по умолчанию с иконкой `material/water`
+- `` — бейдж экспериментального функционала с иконкой `material/test-tube`
+
+## Правила разработки
+
+### Стиль и форматирование
+
+- Кодировка UTF-8, переносы строк LF
+- Отступы: 4 пробела (2 для YAML/YML, табы для Makefile)
+- В Markdown-файлах завершающие пробелы не обрезаются
+- В остальных файлах — обрезаются
+- В конце файла — пустая строка
+
+### Документация
+
+- Язык документации — русский
+- Обращение к пользователю на «вы»
+- Простой и понятный язык, активный залог
+- Каждый документ начинается с frontmatter (YAML с метаданными)
+- На странице — один заголовок 1 уровня
+- До и после заголовков, абзацев, списков, блоков кода, врезок — пустая строка
+- Вложенные уровни списков отступаются на 4 пробела
+- Ненумерованные списки начинаются с `-`
+- Подробные правила синтаксиса — в скилле `.agents/skills/koda-zensical`
+
+### Отладка
+
+- Для отладки использовать `make site` и проверять вывод на предупреждения
+- Debug-страницы (`sandbox.md`, `vscode-icons.md`) не должны попадать в навигацию — раздел `Debug` в `zensical.toml` закомментирован
+- Раскомментирование `Debug` выполняется вручную по необходимости
+
+### Контрибуция
+
+Подробные правила — в [CONTRIBUTING.md](CONTRIBUTING.md).
+
+## Лицензия
+
+MIT License
diff --git a/Dockerfile b/Dockerfile
index fc33a01..9a4edda 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,8 +1,21 @@
-FROM squidfunk/mkdocs-material AS builder
+FROM zensical/zensical:latest AS builder
+ENV PYTHONPATH=/docs
COPY . /docs
-RUN mkdocs build
+RUN zensical build --clean
+
+FROM nginx:alpine AS boilerplate-docs
+
+# LABEL org.opencontainers.image.revision="c76960ef08be04f397b72702eca4166c7b783176"
+# LABEL org.opencontainers.image.description="Documentation for our services and products"
+# LABEL org.opencontainers.image.url="https://example.com"
+# LABEL org.opencontainers.image.vendor="Boilerplate"
+# LABEL org.opencontainers.image.documentation="https://example.com"
+# LABEL org.opencontainers.image.version="v0.0.46"
+# LABEL org.opencontainers.image.created="2026-06-21T18:47:29.228Z"
+# LABEL org.opencontainers.image.licenses="MIT"
+# LABEL org.opencontainers.image.title="BoilerplateDocs"
+# LABEL org.opencontainers.image.source=""
-FROM nginx:alpine AS iptv-docs
COPY --from=builder /docs/site /usr/share/nginx/html
WORKDIR /usr/share/nginx/html
USER root
diff --git a/Makefile b/Makefile
index bd01222..6468c20 100644
--- a/Makefile
+++ b/Makefile
@@ -1,47 +1,54 @@
.DEFAULT_GOAL := help
-.PHONY: live site image run help
+.PHONY: live site image push run help
-## live: Run mkdocs with live-reloading (localhost:3000)
+## live = Run zensical with live-reloading on http://localhost:8000
live:
- @echo "Wait until container starts and open http://localhost:3000 to see live preview"
- @docker run \
- --pull always \
+ @echo "*** Wait until container starts and open http://localhost:8000 to see live preview"
+ @docker stop boilerplate-docs-dev 2>/dev/null; \
+ docker run \
--rm \
--interactive \
--tty \
- --publish 3000:8000 \
+ --env PYTHONPATH=/docs \
+ --publish 8000:8000 \
--volume ${PWD}:/docs \
- --name my-project-docs-dev \
- squidfunk/mkdocs-material:9.6.20
+ --name boilerplate-docs-dev \
+ zensical/zensical:latest
-## site: Build local static site
+## site = Build a local static site
site:
- @echo "Wait until mkdocs finish"
- @docker run \
+ @echo "*** Wait until zensical finish"
+ @docker stop boilerplate-docs-dev 2>/dev/null; \
+ docker run \
--pull always \
--rm \
- --interactive \
- --tty \
+ --env PYTHONPATH=/docs \
--volume ${PWD}:/docs \
- --name my-project-docs-dev \
- squidfunk/mkdocs-material:9.6.20 build
+ --name boilerplate-docs-dev \
+ zensical/zensical:latest \
+ build \
+ --clean
-## image: Build docker image
+## image = Build a docker image
image:
- @docker build \
- --tag my-project-docs-dev:latest \
- .
+ @docker build --tag harbor.example.com/boilerplate-docs:latest .
-## run: Run docker image (localhost:3001)
+## run = Run docker container from image built with `make image` on http://localhost:8001
run:
- @echo "Wait until container starts and open http://localhost:3001 to see ready static website"
- @docker run \
+ @echo "*** Wait until container starts and open http://localhost:8001 to see ready static website"
+ @docker stop boilerplate-docs 2>/dev/null; \
+ docker run \
--rm \
- --publish 3001:80 \
- --name my-project-docs-dev \
- my-project-docs-dev:latest
+ --publish 8001:80 \
+ --name boilerplate-docs \
+ harbor.example.com/boilerplate-docs:latest
-## help: Show this message and exit
+## push = Push docker image built with `make image` to harbor.example.com
+push:
+ @docker login harbor.example.com; \
+ docker push harbor.example.com/boilerplate-docs:latest
+
+## help = Show this message and exit (default)
help: Makefile
@echo "Available recipes:"
- @sed -n 's/^##/ /p' $< | column -t -s ':'
+ @sed -n 's/^##/ /p' $< | column -t -s '='
diff --git a/README.md b/README.md
index a6c5535..4e3d90e 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,54 @@
-# Пример документации к проекту
+# Документация к проекту
-* `make live` -- запуск в режиме живой перезагрузки для отладки
-* `make site` -- генерация статического сайта
-* `make image` -- генерация docker-образа
-* `make run` -- запуск контейнера из docker-образа
-* `make help` -- справка по командам
+Бойлерплейт для документации на базе [Zensical](https://zensical.org) — системы документации, построенной на MkDocs Material.
+
+## Возможности
+
+- Live-предпросмотр с автоматической перезагрузкой
+- Сборка статического сайта в Docker-образ на базе nginx
+- Светлая и тёмная темы оформления
+- Расширенный Markdown: врезки, вкладки, гриды, сноски, иконки
+- Валидация ссылок и якорей при сборке
+- Поддержка сниппетов и переиспользуемых блоков
+- Кастомные inline-бейджи через `inline_badges.py`
+
+## Структура проекта
+
+```
+content/ — исходные страницы документации (.md)
+snippets/ — переиспользуемые блоки markdown
+overrides/ — кастомизация темы: иконки, шаблоны, стили
+zensical.toml — конфигурация проекта
+inline_badges.py — плагин inline-бейджей
+Dockerfile — многоэтапная сборка: zensical build → nginx
+Makefile — команды для разработки и деплоя
+```
+
+## Быстрый старт
+
+### Требования
+
+- [Docker](https://docs.docker.com/get-docker/)
+
+### Команды
+
+| Команда | Описание |
+| ------------ | --------------------------------------------------------------- |
+| `make live` | Запуск в режиме живой перезагрузки на `http://localhost:8000` |
+| `make site` | Генерация статического сайта (с валидацией ссылок и якорей) |
+| `make image` | Сборка Docker-образа |
+| `make run` | Запуск контейнера на `http://localhost:8001` |
+| `make push` | Загрузка Docker-образа в реестр |
+| `make help` | Справка по командам (по умолчанию) |
+
+## Разработка
+
+Для локальной отладки используйте `make live` — откройте `http://localhost:8000` после запуска контейнера.
+
+Для проверки сборки без предупреждений используйте `make site`.
+
+Подробности о форматировании и стиле — в [CONTRIBUTING.md](CONTRIBUTING.md).
+
+## Лицензия
+
+MIT License
diff --git a/content/glossary.md b/content/glossary.md
deleted file mode 100644
index b29fdd7..0000000
--- a/content/glossary.md
+++ /dev/null
@@ -1,130 +0,0 @@
----
-title: Глоссарий терминов
-icon: material/format-text
----
-
-# Глоссарий терминов
-
-Справочник терминов, используемых в документации Koda.
-
-## A
-
-**Agent (Агент)** — режим работы Koda, в котором AI самостоятельно выполняет многошаговые задачи, используя различные инструменты.
-
-**API Key (API-ключ)** — уникальный ключ для доступа к API провайдера моделей (OpenAI, Anthropic и др.).
-
-**Autocomplete (Автодополнение)** — режим автоматического предложения продолжения кода при наборе.
-
-## C
-
-**Chat (Чат)** — режим диалога с AI-моделью для решения задач, объяснения кода и получения рекомендаций.
-
-**Completion** — см. Autocomplete.
-
-**Config (Конфигурация)** — файл настроек Koda (`config.yaml`), определяющий модели, провайдеров и параметры.
-
-**Context (Контекст)** — информация, которую Koda использует для генерации ответов (файлы, код, документация).
-
-**Context Provider (Контекстный провайдер)** — компонент, автоматически добавляющий релевантную информацию в запросы через символ @ (file, code, docs, codebase, diff, terminal и др.). Подробнее в [Контекст-провайдеры](context-providers.md).
-
-## D
-
-**Diff (Дифф)** — разница между двумя версиями файла, показывающая изменения.
-
-## E
-
-**Edit (Редактирование)** — режим изменения выделенного кода по инструкции пользователя.
-
-**Embeddings (Эмбеддинги)** — векторные представления текста для поиска по семантическому сходству.
-
-## F
-
-**FIM (Fill-In-Middle)** — техника автодополнения, когда модель заполняет текст между префиксом и суффиксом.
-
-## I
-
-**Indexing (Индексация)** — процесс анализа и векторизации кодовой базы или документации для быстрого поиска.
-
-## L
-
-**LLM (Large Language Model)** — большая языковая модель, используемая для генерации текста и кода.
-
-## M
-
-**Model (Модель)** — AI-модель, используемая для генерации ответов (GPT-4, Claude, Llama и др.).
-
-**Model Role (Роль модели)** — назначение модели в Koda (chat, edit, agent, autocomplete, embed, rerank).
-
-## P
-
-**Provider (Провайдер)** — сервис, предоставляющий доступ к AI-моделям (OpenAI, Anthropic, Ollama и др.).
-
-**Prompt (Промпт)** — текстовый запрос к AI-модели.
-
-## R
-
-**RAG (Retrieval-Augmented Generation)** — техника генерации ответов с использованием поиска по внешней базе знаний.
-
-**Retrieval (Поиск)** — режим поиска по документации и другим источникам информации.
-
-**Roles (Роли)** — см. Model Role.
-
-## S
-
-**Session (Сессия)** — отдельный диалог в чате Koda со своей историей и контекстом.
-
-**Session History (История сессий)** — список всех предыдущих сессий с возможностью поиска, переключения и удаления.
-
-**Session Metadata (Метаданные сессии)** — информация о сессии: ID, заголовок, дата создания, режим работы, рабочая директория.
-
-**Session Storage (Хранилище сессий)** — место сохранения данных сессий (локальные файлы `~/.koda/sessions/` или серверное хранилище).
-
-**Summarization (Суммаризация)** — процесс сжатия длинной истории диалога в краткое содержание для экономии токенов.
-
-**SummaryMarker (Маркер суммаризации)** — визуальный индикатор в истории чата, показывающий где была применена суммаризация.
-
-**Auto-Summarize (Автосуммаризация)** — автоматическая суммаризация при достижении 75% использования контекста (только Agent режим).
-
-**Skill (Навык)** — переиспользуемый набор инструкций для AI-модели, хранящийся в отдельном файле.
-
-**Slash Command (Slash-команда)** — специальная команда, начинающаяся с @ (например, /share, /commit, /summarize).
-
-## T
-
-**Token (Токен)** — единица измерения длины текста для AI-моделей (примерно ¾ слова).
-
-**Tool (Инструмент)** — действие, которое агент может выполнить (читать файл, редактировать код, запускать команду).
-
-## V
-
-:material-microsoft-visual-studio-code: **VS Code** — Visual Studio Code, среда разработки от Microsoft.
-
-## W
-
-**Workspace (Рабочая область)** — проект или директория, открытая в IDE.
-
-## Ё
-
-**Ёфикация** — использование буквы "ё" вместо "е" в русских текстах документации.
-
----
-
-## Сокращения
-
-| Сокращение | Расшифровка |
-|------------|-------------|
-| AI | Artificial Intelligence (Искусственный интеллект) |
-| API | Application Programming Interface |
-| IDE | Integrated Development Environment |
-| LLM | Large Language Model |
-| [RAG] | Retrieval-Augmented Generation |
-| :material-microsoft-visual-studio-code: VS Code | Visual Studio Code |
-| FIM | Fill-In-Middle |
-
----
-
-## Дополнительные ресурсы
-
-- [Основная документация](README.md)
-- [Режимы работы](modes.md)
-- [Инструменты агента](agent-tools.md)
diff --git a/content/sandbox.md b/content/sandbox.md
new file mode 100644
index 0000000..dcedf69
--- /dev/null
+++ b/content/sandbox.md
@@ -0,0 +1,284 @@
+# Песочница
+
+
+
+## Мелочёвка
+
+=== "Frontmatter"
+
+ ```yaml
+ ---
+ title: My Page
+ description: Some page description
+ icon: material/star
+ tags: [tag1, tag2]
+ hide: [navigation, toc, path]
+ status: new
+ #status: deprecated
+ #status: beta
+ ---
+
+ # My Super-Duper Page
+
+ # Markdown content goes here
+ ```
+
+=== "Бейджи"
+
+
+
+=== "Тултипы"
+
+ :material-information-outline:{ title="текст подсказки" }
+
+ [Hover me 1](https://example.com "I'm first tooltip!")
+
+ [Hover me 2][example]
+
+ [example]: https://example.com "I'm second tooltip!"
+
+=== "Кнопки"
+
+ [Серая кнопка](https://example.com/){ .md-button }
+
+ [Синяя кнопка](https://example.com/){ .md-button .md-button--primary }
+
+ [:fontawesome-solid-paper-plane: Кнопка серая с иконкой и подсказкой](https://example.com/){ .md-button title="текст подсказки 2" }
+
+ [:fontawesome-solid-paper-plane: Кнопка синяя с иконкой](https://example.com/){ .md-button .md-button--primary }
+
+---
+
+=== "Простой блок"
+
+ ```python
+ def _render_icon(shortcode: str, md) -> str:
+ emoji_pattern = md.inlinePatterns.get("emoji")
+ if emoji_pattern is None:
+ return escape(shortcode)
+ ```
+
+=== "С аннотациями"
+
+ ```python
+ def _render_icon(shortcode: str, md) -> str: #(1)!
+ emoji_pattern = md.inlinePatterns.get("emoji") #(2)!
+ if emoji_pattern is None:
+ return escape(shortcode) #(3)!
+ ```
+
+ 1. сигнатура функции
+ 2. инициализация переменной
+ 3. возврат результата
+
+=== "С заголовком"
+
+ ```python title="example.py"
+ def _render_icon(shortcode: str, md) -> str:
+ emoji_pattern = md.inlinePatterns.get("emoji")
+ if emoji_pattern is None:
+ return escape(shortcode)
+ ```
+
+=== "С нумерацией с 5"
+
+ ```python linenums="5"
+ def _render_icon(shortcode: str, md) -> str:
+ emoji_pattern = md.inlinePatterns.get("emoji")
+ if emoji_pattern is None:
+ return escape(shortcode)
+ ```
+
+=== "С выделением"
+
+ ```python linenums="1" hl_lines="2-5 8 9 22"
+ def _render_icon(shortcode: str, md) -> str:
+ try:
+ emoji_pattern = md.inlinePatterns["emoji"]
+ except KeyError:
+ return escape(shortcode)
+
+ icon = emoji_pattern.emoji_index["emoji"].get(shortcode)
+ if icon is None:
+ return escape(shortcode)
+
+ element = emoji_pattern.generator(
+ emoji_pattern.emoji_index["name"],
+ shortcode,
+ None,
+ None,
+ shortcode,
+ "",
+ icon.get("category", ""),
+ emoji_pattern.options,
+ md,
+ )
+ return tostring(element, encoding="unicode", method="html")
+ ```
+
+---
+
+## Врезки
+
+=== "Полные"
+
+ !!! note "Заголовок статичной врезки"
+ Содержимое, которое может
+ быть многострочным
+
+ !!! abstract "Заголовок статичной врезки"
+ Содержимое, которое может
+ быть многострочным
+
+ !!! info "Заголовок статичной врезки"
+ Содержимое, которое может
+ быть многострочным
+
+ !!! tip "Заголовок статичной врезки"
+ Содержимое, которое может
+ быть многострочным
+
+ !!! success "Заголовок статичной врезки"
+ Содержимое, которое может
+ быть многострочным
+
+ !!! question "Заголовок статичной врезки"
+ Содержимое, которое может
+ быть многострочным
+
+ !!! warning "Заголовок статичной врезки"
+ Содержимое, которое может
+ быть многострочным
+
+ !!! failure "Заголовок статичной врезки"
+ Содержимое, которое может
+ быть многострочным
+
+ !!! danger "Заголовок статичной врезки"
+ Содержимое, которое может
+ быть многострочным
+
+ !!! bug "Заголовок статичной врезки"
+ Содержимое, которое может
+ быть многострочным
+
+ !!! example "Заголовок статичной врезки"
+ Содержимое, которое может
+ быть многострочным
+
+ !!! quote "Заголовок статичной врезки"
+ Содержимое, которое может
+ быть многострочным
+
+=== "Свёрнутые"
+
+ ??? note "Заголовок свёрнутой врезки"
+ Содержимое, которое может
+ быть многострочным
+
+ ??? abstract "Заголовок свёрнутой врезки"
+ Содержимое, которое может
+ быть многострочным
+
+ ??? info "Заголовок свёрнутой врезки"
+ Содержимое, которое может
+ быть многострочным
+
+ ??? tip "Заголовок свёрнутой врезки"
+ Содержимое, которое может
+ быть многострочным
+
+ ??? success "Заголовок свёрнутой врезки"
+ Содержимое, которое может
+ быть многострочным
+
+ ??? question "Заголовок свёрнутой врезки"
+ Содержимое, которое может
+ быть многострочным
+
+ ??? warning "Заголовок свёрнутой врезки"
+ Содержимое, которое может
+ быть многострочным
+
+ ??? failure "Заголовок свёрнутой врезки"
+ Содержимое, которое может
+ быть многострочным
+
+ ??? danger "Заголовок свёрнутой врезки"
+ Содержимое, которое может
+ быть многострочным
+
+ ??? bug "Заголовок свёрнутой врезки"
+ Содержимое, которое может
+ быть многострочным
+
+ ??? example "Заголовок свёрнутой врезки"
+ Содержимое, которое может
+ быть многострочным
+
+ ??? quote "Заголовок свёрнутой врезки"
+ Содержимое, которое может
+ быть многострочным
+
+=== "Сворачиваемые"
+
+ ???+ note "Заголовок развёрнутой врезки"
+ Содержимое, которое может
+ быть многострочным
+
+ ???+ abstract "Заголовок развёрнутой врезки"
+ Содержимое, которое может
+ быть многострочным
+
+ ???+ info "Заголовок развёрнутой врезки"
+ Содержимое, которое может
+ быть многострочным
+
+ ???+ tip "Заголовок развёрнутой врезки"
+ Содержимое, которое может
+ быть многострочным
+
+ ???+ success "Заголовок развёрнутой врезки"
+ Содержимое, которое может
+ быть многострочным
+
+ ???+ question "Заголовок развёрнутой врезки"
+ Содержимое, которое может
+ быть многострочным
+
+ ???+ warning "Заголовок развёрнутой врезки"
+ Содержимое, которое может
+ быть многострочным
+
+ ???+ failure "Заголовок развёрнутой врезки"
+ Содержимое, которое может
+ быть многострочным
+
+ ???+ danger "Заголовок развёрнутой врезки"
+ Содержимое, которое может
+ быть многострочным
+
+ ???+ bug "Заголовок развёрнутой врезки"
+ Содержимое, которое может
+ быть многострочным
+
+ ???+ example "Заголовок развёрнутой врезки"
+ Содержимое, которое может
+ быть многострочным
+
+ ???+ quote "Заголовок развёрнутой врезки"
+ Содержимое, которое может
+ быть многострочным
+
+=== "Короткие"
+
+ !!! note
+ Дефолтный заголовок
+
+ !!! abstract ""
+ Пустой заголовок
+
+ !!! info "Пустое содержимое"
+
+
+---
diff --git a/content/tags.md b/content/tags.md
deleted file mode 100644
index 15396cd..0000000
--- a/content/tags.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: Теги
-icon: material/tag-text
----
-
-# Теги документации
-
-Здесь перечислены все теги, которые встречаются на страницах документации.
-
-Нажмите на ссылку для перехода к странице, которая содержит тег.
-
----
-
-
diff --git a/content/vscode-icons.md b/content/vscode-icons.md
index 4cd0b11..b37a02e 100644
--- a/content/vscode-icons.md
+++ b/content/vscode-icons.md
@@ -1,549 +1,550 @@
-| asdf | asdf |
-|---|---|
-| :vscode-account: | `:vscode-account:` |
-| :vscode-activate-breakpoints: | `:vscode-activate-breakpoints:` |
-| :vscode-add: | `:vscode-add:` |
-| :vscode-add-small: | `:vscode-add-small:` |
-| :vscode-agent: | `:vscode-agent:` |
-| :vscode-archive: | `:vscode-archive:` |
-| :vscode-arrow-both: | `:vscode-arrow-both:` |
-| :vscode-arrow-circle-down: | `:vscode-arrow-circle-down:` |
-| :vscode-arrow-circle-left: | `:vscode-arrow-circle-left:` |
-| :vscode-arrow-circle-right: | `:vscode-arrow-circle-right:` |
-| :vscode-arrow-circle-up: | `:vscode-arrow-circle-up:` |
-| :vscode-arrow-down: | `:vscode-arrow-down:` |
-| :vscode-arrow-left: | `:vscode-arrow-left:` |
-| :vscode-arrow-right: | `:vscode-arrow-right:` |
-| :vscode-arrow-small-down: | `:vscode-arrow-small-down:` |
-| :vscode-arrow-small-left: | `:vscode-arrow-small-left:` |
-| :vscode-arrow-small-right: | `:vscode-arrow-small-right:` |
-| :vscode-arrow-small-up: | `:vscode-arrow-small-up:` |
-| :vscode-arrow-swap: | `:vscode-arrow-swap:` |
-| :vscode-arrow-up: | `:vscode-arrow-up:` |
-| :vscode-ask: | `:vscode-ask:` |
-| :vscode-attach: | `:vscode-attach:` |
-| :vscode-azure: | `:vscode-azure:` |
-| :vscode-azure-devops: | `:vscode-azure-devops:` |
-| :vscode-beaker: | `:vscode-beaker:` |
-| :vscode-beaker-stop: | `:vscode-beaker-stop:` |
-| :vscode-bell: | `:vscode-bell:` |
-| :vscode-bell-dot: | `:vscode-bell-dot:` |
-| :vscode-bell-slash: | `:vscode-bell-slash:` |
-| :vscode-bell-slash-dot: | `:vscode-bell-slash-dot:` |
-| :vscode-blank: | `:vscode-blank:` |
-| :vscode-bold: | `:vscode-bold:` |
-| :vscode-book: | `:vscode-book:` |
-| :vscode-bookmark: | `:vscode-bookmark:` |
-| :vscode-bracket-dot: | `:vscode-bracket-dot:` |
-| :vscode-bracket-error: | `:vscode-bracket-error:` |
-| :vscode-briefcase: | `:vscode-briefcase:` |
-| :vscode-broadcast: | `:vscode-broadcast:` |
-| :vscode-browser: | `:vscode-browser:` |
-| :vscode-bug: | `:vscode-bug:` |
-| :vscode-build: | `:vscode-build:` |
-| :vscode-calendar: | `:vscode-calendar:` |
-| :vscode-call-incoming: | `:vscode-call-incoming:` |
-| :vscode-call-outgoing: | `:vscode-call-outgoing:` |
-| :vscode-case-sensitive: | `:vscode-case-sensitive:` |
-| :vscode-chat-export: | `:vscode-chat-export:` |
-| :vscode-chat-import: | `:vscode-chat-import:` |
-| :vscode-chat-sparkle: | `:vscode-chat-sparkle:` |
-| :vscode-chat-sparkle-error: | `:vscode-chat-sparkle-error:` |
-| :vscode-chat-sparkle-warning: | `:vscode-chat-sparkle-warning:` |
-| :vscode-check: | `:vscode-check:` |
-| :vscode-check-all: | `:vscode-check-all:` |
-| :vscode-checklist: | `:vscode-checklist:` |
-| :vscode-chevron-down: | `:vscode-chevron-down:` |
-| :vscode-chevron-left: | `:vscode-chevron-left:` |
-| :vscode-chevron-right: | `:vscode-chevron-right:` |
-| :vscode-chevron-up: | `:vscode-chevron-up:` |
-| :vscode-chip: | `:vscode-chip:` |
-| :vscode-chrome-close: | `:vscode-chrome-close:` |
-| :vscode-chrome-maximize: | `:vscode-chrome-maximize:` |
-| :vscode-chrome-minimize: | `:vscode-chrome-minimize:` |
-| :vscode-chrome-restore: | `:vscode-chrome-restore:` |
-| :vscode-circle: | `:vscode-circle:` |
-| :vscode-circle-filled: | `:vscode-circle-filled:` |
-| :vscode-circle-large: | `:vscode-circle-large:` |
-| :vscode-circle-large-filled: | `:vscode-circle-large-filled:` |
-| :vscode-circle-slash: | `:vscode-circle-slash:` |
-| :vscode-circle-small: | `:vscode-circle-small:` |
-| :vscode-circle-small-filled: | `:vscode-circle-small-filled:` |
-| :vscode-circuit-board: | `:vscode-circuit-board:` |
-| :vscode-claude: | `:vscode-claude:` |
-| :vscode-clear-all: | `:vscode-clear-all:` |
-| :vscode-clippy: | `:vscode-clippy:` |
-| :vscode-clockface: | `:vscode-clockface:` |
-| :vscode-close: | `:vscode-close:` |
-| :vscode-close-all: | `:vscode-close-all:` |
-| :vscode-cloud: | `:vscode-cloud:` |
-| :vscode-cloud-download: | `:vscode-cloud-download:` |
-| :vscode-cloud-small: | `:vscode-cloud-small:` |
-| :vscode-cloud-upload: | `:vscode-cloud-upload:` |
-| :vscode-code: | `:vscode-code:` |
-| :vscode-code-oss: | `:vscode-code-oss:` |
-| :vscode-code-review: | `:vscode-code-review:` |
-| :vscode-coffee: | `:vscode-coffee:` |
-| :vscode-collapse-all: | `:vscode-collapse-all:` |
-| :vscode-collection: | `:vscode-collection:` |
-| :vscode-collection-small: | `:vscode-collection-small:` |
-| :vscode-color-mode: | `:vscode-color-mode:` |
-| :vscode-combine: | `:vscode-combine:` |
-| :vscode-comment: | `:vscode-comment:` |
-| :vscode-comment-discussion: | `:vscode-comment-discussion:` |
-| :vscode-comment-discussion-quote: | `:vscode-comment-discussion-quote:` |
-| :vscode-comment-discussion-sparkle: | `:vscode-comment-discussion-sparkle:` |
-| :vscode-comment-draft: | `:vscode-comment-draft:` |
-| :vscode-comment-unresolved: | `:vscode-comment-unresolved:` |
-| :vscode-compass: | `:vscode-compass:` |
-| :vscode-compass-active: | `:vscode-compass-active:` |
-| :vscode-compass-dot: | `:vscode-compass-dot:` |
-| :vscode-copilot: | `:vscode-copilot:` |
-| :vscode-copilot-blocked: | `:vscode-copilot-blocked:` |
-| :vscode-copilot-error: | `:vscode-copilot-error:` |
-| :vscode-copilot-in-progress: | `:vscode-copilot-in-progress:` |
-| :vscode-copilot-large: | `:vscode-copilot-large:` |
-| :vscode-copilot-not-connected: | `:vscode-copilot-not-connected:` |
-| :vscode-copilot-snooze: | `:vscode-copilot-snooze:` |
-| :vscode-copilot-success: | `:vscode-copilot-success:` |
-| :vscode-copilot-unavailable: | `:vscode-copilot-unavailable:` |
-| :vscode-copilot-warning: | `:vscode-copilot-warning:` |
-| :vscode-copilot-warning-large: | `:vscode-copilot-warning-large:` |
-| :vscode-copy: | `:vscode-copy:` |
-| :vscode-coverage: | `:vscode-coverage:` |
-| :vscode-credit-card: | `:vscode-credit-card:` |
-| :vscode-cursor: | `:vscode-cursor:` |
-| :vscode-dash: | `:vscode-dash:` |
-| :vscode-dashboard: | `:vscode-dashboard:` |
-| :vscode-database: | `:vscode-database:` |
-| :vscode-debug: | `:vscode-debug:` |
-| :vscode-debug-all: | `:vscode-debug-all:` |
-| :vscode-debug-alt: | `:vscode-debug-alt:` |
-| :vscode-debug-alt-small: | `:vscode-debug-alt-small:` |
-| :vscode-debug-breakpoint-conditional: | `:vscode-debug-breakpoint-conditional:` |
-| :vscode-debug-breakpoint-conditional-unverified: | `:vscode-debug-breakpoint-conditional-unverified:` |
-| :vscode-debug-breakpoint-data: | `:vscode-debug-breakpoint-data:` |
-| :vscode-debug-breakpoint-data-unverified: | `:vscode-debug-breakpoint-data-unverified:` |
-| :vscode-debug-breakpoint-function: | `:vscode-debug-breakpoint-function:` |
-| :vscode-debug-breakpoint-function-unverified: | `:vscode-debug-breakpoint-function-unverified:` |
-| :vscode-debug-breakpoint-log: | `:vscode-debug-breakpoint-log:` |
-| :vscode-debug-breakpoint-log-unverified: | `:vscode-debug-breakpoint-log-unverified:` |
-| :vscode-debug-breakpoint-unsupported: | `:vscode-debug-breakpoint-unsupported:` |
-| :vscode-debug-connected: | `:vscode-debug-connected:` |
-| :vscode-debug-console: | `:vscode-debug-console:` |
-| :vscode-debug-continue: | `:vscode-debug-continue:` |
-| :vscode-debug-continue-small: | `:vscode-debug-continue-small:` |
-| :vscode-debug-coverage: | `:vscode-debug-coverage:` |
-| :vscode-debug-disconnect: | `:vscode-debug-disconnect:` |
-| :vscode-debug-line-by-line: | `:vscode-debug-line-by-line:` |
-| :vscode-debug-pause: | `:vscode-debug-pause:` |
-| :vscode-debug-rerun: | `:vscode-debug-rerun:` |
-| :vscode-debug-restart: | `:vscode-debug-restart:` |
-| :vscode-debug-restart-frame: | `:vscode-debug-restart-frame:` |
-| :vscode-debug-reverse-continue: | `:vscode-debug-reverse-continue:` |
-| :vscode-debug-stackframe: | `:vscode-debug-stackframe:` |
-| :vscode-debug-stackframe-active: | `:vscode-debug-stackframe-active:` |
-| :vscode-debug-start: | `:vscode-debug-start:` |
-| :vscode-debug-step-back: | `:vscode-debug-step-back:` |
-| :vscode-debug-step-into: | `:vscode-debug-step-into:` |
-| :vscode-debug-step-out: | `:vscode-debug-step-out:` |
-| :vscode-debug-step-over: | `:vscode-debug-step-over:` |
-| :vscode-debug-stop: | `:vscode-debug-stop:` |
-| :vscode-desktop-download: | `:vscode-desktop-download:` |
-| :vscode-device-camera: | `:vscode-device-camera:` |
-| :vscode-device-camera-video: | `:vscode-device-camera-video:` |
-| :vscode-device-mobile: | `:vscode-device-mobile:` |
-| :vscode-diff: | `:vscode-diff:` |
-| :vscode-diff-added: | `:vscode-diff-added:` |
-| :vscode-diff-ignored: | `:vscode-diff-ignored:` |
-| :vscode-diff-modified: | `:vscode-diff-modified:` |
-| :vscode-diff-multiple: | `:vscode-diff-multiple:` |
-| :vscode-diff-removed: | `:vscode-diff-removed:` |
-| :vscode-diff-renamed: | `:vscode-diff-renamed:` |
-| :vscode-diff-single: | `:vscode-diff-single:` |
-| :vscode-discard: | `:vscode-discard:` |
-| :vscode-download: | `:vscode-download:` |
-| :vscode-edit: | `:vscode-edit:` |
-| :vscode-edit-code: | `:vscode-edit-code:` |
-| :vscode-edit-session: | `:vscode-edit-session:` |
-| :vscode-edit-sparkle: | `:vscode-edit-sparkle:` |
-| :vscode-editor-layout: | `:vscode-editor-layout:` |
-| :vscode-ellipsis: | `:vscode-ellipsis:` |
-| :vscode-empty-window: | `:vscode-empty-window:` |
-| :vscode-eraser: | `:vscode-eraser:` |
-| :vscode-error: | `:vscode-error:` |
-| :vscode-error-small: | `:vscode-error-small:` |
-| :vscode-exclude: | `:vscode-exclude:` |
-| :vscode-expand-all: | `:vscode-expand-all:` |
-| :vscode-export: | `:vscode-export:` |
-| :vscode-extensions: | `:vscode-extensions:` |
-| :vscode-extensions-large: | `:vscode-extensions-large:` |
-| :vscode-eye: | `:vscode-eye:` |
-| :vscode-eye-closed: | `:vscode-eye-closed:` |
-| :vscode-feedback: | `:vscode-feedback:` |
-| :vscode-file: | `:vscode-file:` |
-| :vscode-file-binary: | `:vscode-file-binary:` |
-| :vscode-file-code: | `:vscode-file-code:` |
-| :vscode-file-media: | `:vscode-file-media:` |
-| :vscode-file-pdf: | `:vscode-file-pdf:` |
-| :vscode-file-submodule: | `:vscode-file-submodule:` |
-| :vscode-file-symlink-directory: | `:vscode-file-symlink-directory:` |
-| :vscode-file-symlink-file: | `:vscode-file-symlink-file:` |
-| :vscode-file-text: | `:vscode-file-text:` |
-| :vscode-file-zip: | `:vscode-file-zip:` |
-| :vscode-files: | `:vscode-files:` |
-| :vscode-filter: | `:vscode-filter:` |
-| :vscode-filter-filled: | `:vscode-filter-filled:` |
-| :vscode-flag: | `:vscode-flag:` |
-| :vscode-flame: | `:vscode-flame:` |
-| :vscode-fold: | `:vscode-fold:` |
-| :vscode-fold-down: | `:vscode-fold-down:` |
-| :vscode-fold-up: | `:vscode-fold-up:` |
-| :vscode-folder: | `:vscode-folder:` |
-| :vscode-folder-active: | `:vscode-folder-active:` |
-| :vscode-folder-library: | `:vscode-folder-library:` |
-| :vscode-folder-opened: | `:vscode-folder-opened:` |
-| :vscode-forward: | `:vscode-forward:` |
-| :vscode-game: | `:vscode-game:` |
-| :vscode-gear: | `:vscode-gear:` |
-| :vscode-gift: | `:vscode-gift:` |
-| :vscode-gist: | `:vscode-gist:` |
-| :vscode-gist-secret: | `:vscode-gist-secret:` |
-| :vscode-git-branch: | `:vscode-git-branch:` |
-| :vscode-git-branch-changes: | `:vscode-git-branch-changes:` |
-| :vscode-git-branch-conflicts: | `:vscode-git-branch-conflicts:` |
-| :vscode-git-branch-staged-changes: | `:vscode-git-branch-staged-changes:` |
-| :vscode-git-commit: | `:vscode-git-commit:` |
-| :vscode-git-compare: | `:vscode-git-compare:` |
-| :vscode-git-fetch: | `:vscode-git-fetch:` |
-| :vscode-git-merge: | `:vscode-git-merge:` |
-| :vscode-git-pull-request: | `:vscode-git-pull-request:` |
-| :vscode-git-pull-request-closed: | `:vscode-git-pull-request-closed:` |
-| :vscode-git-pull-request-create: | `:vscode-git-pull-request-create:` |
-| :vscode-git-pull-request-done: | `:vscode-git-pull-request-done:` |
-| :vscode-git-pull-request-draft: | `:vscode-git-pull-request-draft:` |
-| :vscode-git-pull-request-go-to-changes: | `:vscode-git-pull-request-go-to-changes:` |
-| :vscode-git-pull-request-new-changes: | `:vscode-git-pull-request-new-changes:` |
-| :vscode-git-stash: | `:vscode-git-stash:` |
-| :vscode-git-stash-apply: | `:vscode-git-stash-apply:` |
-| :vscode-git-stash-pop: | `:vscode-git-stash-pop:` |
-| :vscode-github: | `:vscode-github:` |
-| :vscode-github-action: | `:vscode-github-action:` |
-| :vscode-github-alt: | `:vscode-github-alt:` |
-| :vscode-github-inverted: | `:vscode-github-inverted:` |
-| :vscode-github-project: | `:vscode-github-project:` |
-| :vscode-globe: | `:vscode-globe:` |
-| :vscode-go-to-editing-session: | `:vscode-go-to-editing-session:` |
-| :vscode-go-to-file: | `:vscode-go-to-file:` |
-| :vscode-go-to-search: | `:vscode-go-to-search:` |
-| :vscode-grabber: | `:vscode-grabber:` |
-| :vscode-graph: | `:vscode-graph:` |
-| :vscode-graph-left: | `:vscode-graph-left:` |
-| :vscode-graph-line: | `:vscode-graph-line:` |
-| :vscode-graph-scatter: | `:vscode-graph-scatter:` |
-| :vscode-gripper: | `:vscode-gripper:` |
-| :vscode-group-by-ref-type: | `:vscode-group-by-ref-type:` |
-| :vscode-heart: | `:vscode-heart:` |
-| :vscode-heart-filled: | `:vscode-heart-filled:` |
-| :vscode-history: | `:vscode-history:` |
-| :vscode-home: | `:vscode-home:` |
-| :vscode-horizontal-rule: | `:vscode-horizontal-rule:` |
-| :vscode-hubot: | `:vscode-hubot:` |
-| :vscode-inbox: | `:vscode-inbox:` |
-| :vscode-indent: | `:vscode-indent:` |
-| :vscode-index-zero: | `:vscode-index-zero:` |
-| :vscode-info: | `:vscode-info:` |
-| :vscode-insert: | `:vscode-insert:` |
-| :vscode-inspect: | `:vscode-inspect:` |
-| :vscode-issue-draft: | `:vscode-issue-draft:` |
-| :vscode-issue-reopened: | `:vscode-issue-reopened:` |
-| :vscode-issues: | `:vscode-issues:` |
-| :vscode-italic: | `:vscode-italic:` |
-| :vscode-jersey: | `:vscode-jersey:` |
-| :vscode-json: | `:vscode-json:` |
-| :vscode-kebab-vertical: | `:vscode-kebab-vertical:` |
-| :vscode-key: | `:vscode-key:` |
-| :vscode-keyboard-tab: | `:vscode-keyboard-tab:` |
-| :vscode-keyboard-tab-above: | `:vscode-keyboard-tab-above:` |
-| :vscode-keyboard-tab-below: | `:vscode-keyboard-tab-below:` |
-| :vscode-law: | `:vscode-law:` |
-| :vscode-layers: | `:vscode-layers:` |
-| :vscode-layers-active: | `:vscode-layers-active:` |
-| :vscode-layers-dot: | `:vscode-layers-dot:` |
-| :vscode-layout: | `:vscode-layout:` |
-| :vscode-layout-activitybar-left: | `:vscode-layout-activitybar-left:` |
-| :vscode-layout-activitybar-right: | `:vscode-layout-activitybar-right:` |
-| :vscode-layout-centered: | `:vscode-layout-centered:` |
-| :vscode-layout-menubar: | `:vscode-layout-menubar:` |
-| :vscode-layout-panel: | `:vscode-layout-panel:` |
-| :vscode-layout-panel-center: | `:vscode-layout-panel-center:` |
-| :vscode-layout-panel-dock: | `:vscode-layout-panel-dock:` |
-| :vscode-layout-panel-justify: | `:vscode-layout-panel-justify:` |
-| :vscode-layout-panel-left: | `:vscode-layout-panel-left:` |
-| :vscode-layout-panel-off: | `:vscode-layout-panel-off:` |
-| :vscode-layout-panel-right: | `:vscode-layout-panel-right:` |
-| :vscode-layout-sidebar-left: | `:vscode-layout-sidebar-left:` |
-| :vscode-layout-sidebar-left-dock: | `:vscode-layout-sidebar-left-dock:` |
-| :vscode-layout-sidebar-left-off: | `:vscode-layout-sidebar-left-off:` |
-| :vscode-layout-sidebar-right: | `:vscode-layout-sidebar-right:` |
-| :vscode-layout-sidebar-right-dock: | `:vscode-layout-sidebar-right-dock:` |
-| :vscode-layout-sidebar-right-off: | `:vscode-layout-sidebar-right-off:` |
-| :vscode-layout-statusbar: | `:vscode-layout-statusbar:` |
-| :vscode-library: | `:vscode-library:` |
-| :vscode-lightbulb: | `:vscode-lightbulb:` |
-| :vscode-lightbulb-autofix: | `:vscode-lightbulb-autofix:` |
-| :vscode-lightbulb-empty: | `:vscode-lightbulb-empty:` |
-| :vscode-lightbulb-sparkle: | `:vscode-lightbulb-sparkle:` |
-| :vscode-link: | `:vscode-link:` |
-| :vscode-link-external: | `:vscode-link-external:` |
-| :vscode-list-filter: | `:vscode-list-filter:` |
-| :vscode-list-flat: | `:vscode-list-flat:` |
-| :vscode-list-ordered: | `:vscode-list-ordered:` |
-| :vscode-list-selection: | `:vscode-list-selection:` |
-| :vscode-list-tree: | `:vscode-list-tree:` |
-| :vscode-list-unordered: | `:vscode-list-unordered:` |
-| :vscode-live-share: | `:vscode-live-share:` |
-| :vscode-loading: | `:vscode-loading:` |
-| :vscode-location: | `:vscode-location:` |
-| :vscode-lock: | `:vscode-lock:` |
-| :vscode-lock-small: | `:vscode-lock-small:` |
-| :vscode-magnet: | `:vscode-magnet:` |
-| :vscode-mail: | `:vscode-mail:` |
-| :vscode-mail-read: | `:vscode-mail-read:` |
-| :vscode-map: | `:vscode-map:` |
-| :vscode-map-filled: | `:vscode-map-filled:` |
-| :vscode-map-vertical: | `:vscode-map-vertical:` |
-| :vscode-map-vertical-filled: | `:vscode-map-vertical-filled:` |
-| :vscode-markdown: | `:vscode-markdown:` |
-| :vscode-mcp: | `:vscode-mcp:` |
-| :vscode-megaphone: | `:vscode-megaphone:` |
-| :vscode-mention: | `:vscode-mention:` |
-| :vscode-menu: | `:vscode-menu:` |
-| :vscode-merge: | `:vscode-merge:` |
-| :vscode-merge-into: | `:vscode-merge-into:` |
-| :vscode-mic: | `:vscode-mic:` |
-| :vscode-mic-filled: | `:vscode-mic-filled:` |
-| :vscode-milestone: | `:vscode-milestone:` |
-| :vscode-mirror: | `:vscode-mirror:` |
-| :vscode-mortar-board: | `:vscode-mortar-board:` |
-| :vscode-move: | `:vscode-move:` |
-| :vscode-multiple-windows: | `:vscode-multiple-windows:` |
-| :vscode-music: | `:vscode-music:` |
-| :vscode-mute: | `:vscode-mute:` |
-| :vscode-new-collection: | `:vscode-new-collection:` |
-| :vscode-new-file: | `:vscode-new-file:` |
-| :vscode-new-folder: | `:vscode-new-folder:` |
-| :vscode-new-session: | `:vscode-new-session:` |
-| :vscode-newline: | `:vscode-newline:` |
-| :vscode-no-newline: | `:vscode-no-newline:` |
-| :vscode-note: | `:vscode-note:` |
-| :vscode-notebook: | `:vscode-notebook:` |
-| :vscode-notebook-template: | `:vscode-notebook-template:` |
-| :vscode-octoface: | `:vscode-octoface:` |
-| :vscode-open-in-product: | `:vscode-open-in-product:` |
-| :vscode-open-in-window: | `:vscode-open-in-window:` |
-| :vscode-open-preview: | `:vscode-open-preview:` |
-| :vscode-openai: | `:vscode-openai:` |
-| :vscode-organization: | `:vscode-organization:` |
-| :vscode-output: | `:vscode-output:` |
-| :vscode-package: | `:vscode-package:` |
-| :vscode-paintcan: | `:vscode-paintcan:` |
-| :vscode-pass: | `:vscode-pass:` |
-| :vscode-pass-filled: | `:vscode-pass-filled:` |
-| :vscode-percentage: | `:vscode-percentage:` |
-| :vscode-person: | `:vscode-person:` |
-| :vscode-person-add: | `:vscode-person-add:` |
-| :vscode-piano: | `:vscode-piano:` |
-| :vscode-pie-chart: | `:vscode-pie-chart:` |
-| :vscode-pin: | `:vscode-pin:` |
-| :vscode-pinned: | `:vscode-pinned:` |
-| :vscode-pinned-dirty: | `:vscode-pinned-dirty:` |
-| :vscode-play: | `:vscode-play:` |
-| :vscode-play-circle: | `:vscode-play-circle:` |
-| :vscode-plug: | `:vscode-plug:` |
-| :vscode-preserve-case: | `:vscode-preserve-case:` |
-| :vscode-preview: | `:vscode-preview:` |
-| :vscode-primitive-square: | `:vscode-primitive-square:` |
-| :vscode-project: | `:vscode-project:` |
-| :vscode-pulse: | `:vscode-pulse:` |
-| :vscode-python: | `:vscode-python:` |
-| :vscode-question: | `:vscode-question:` |
-| :vscode-quote: | `:vscode-quote:` |
-| :vscode-quotes: | `:vscode-quotes:` |
-| :vscode-radio-tower: | `:vscode-radio-tower:` |
-| :vscode-reactions: | `:vscode-reactions:` |
-| :vscode-record: | `:vscode-record:` |
-| :vscode-record-keys: | `:vscode-record-keys:` |
-| :vscode-record-small: | `:vscode-record-small:` |
-| :vscode-redo: | `:vscode-redo:` |
-| :vscode-references: | `:vscode-references:` |
-| :vscode-refresh: | `:vscode-refresh:` |
-| :vscode-regex: | `:vscode-regex:` |
-| :vscode-remote: | `:vscode-remote:` |
-| :vscode-remote-explorer: | `:vscode-remote-explorer:` |
-| :vscode-remove: | `:vscode-remove:` |
-| :vscode-remove-small: | `:vscode-remove-small:` |
-| :vscode-rename: | `:vscode-rename:` |
-| :vscode-replace: | `:vscode-replace:` |
-| :vscode-replace-all: | `:vscode-replace-all:` |
-| :vscode-reply: | `:vscode-reply:` |
-| :vscode-repo: | `:vscode-repo:` |
-| :vscode-repo-clone: | `:vscode-repo-clone:` |
-| :vscode-repo-fetch: | `:vscode-repo-fetch:` |
-| :vscode-repo-force-push: | `:vscode-repo-force-push:` |
-| :vscode-repo-forked: | `:vscode-repo-forked:` |
-| :vscode-repo-pinned: | `:vscode-repo-pinned:` |
-| :vscode-repo-pull: | `:vscode-repo-pull:` |
-| :vscode-repo-push: | `:vscode-repo-push:` |
-| :vscode-repo-selected: | `:vscode-repo-selected:` |
-| :vscode-report: | `:vscode-report:` |
-| :vscode-request-changes: | `:vscode-request-changes:` |
-| :vscode-robot: | `:vscode-robot:` |
-| :vscode-rocket: | `:vscode-rocket:` |
-| :vscode-root-folder: | `:vscode-root-folder:` |
-| :vscode-root-folder-opened: | `:vscode-root-folder-opened:` |
-| :vscode-rss: | `:vscode-rss:` |
-| :vscode-ruby: | `:vscode-ruby:` |
-| :vscode-run-above: | `:vscode-run-above:` |
-| :vscode-run-all: | `:vscode-run-all:` |
-| :vscode-run-all-coverage: | `:vscode-run-all-coverage:` |
-| :vscode-run-below: | `:vscode-run-below:` |
-| :vscode-run-coverage: | `:vscode-run-coverage:` |
-| :vscode-run-errors: | `:vscode-run-errors:` |
-| :vscode-run-with-deps: | `:vscode-run-with-deps:` |
-| :vscode-save: | `:vscode-save:` |
-| :vscode-save-all: | `:vscode-save-all:` |
-| :vscode-save-as: | `:vscode-save-as:` |
-| :vscode-screen-cut: | `:vscode-screen-cut:` |
-| :vscode-screen-full: | `:vscode-screen-full:` |
-| :vscode-screen-normal: | `:vscode-screen-normal:` |
-| :vscode-search: | `:vscode-search:` |
-| :vscode-search-fuzzy: | `:vscode-search-fuzzy:` |
-| :vscode-search-large: | `:vscode-search-large:` |
-| :vscode-search-sparkle: | `:vscode-search-sparkle:` |
-| :vscode-search-stop: | `:vscode-search-stop:` |
-| :vscode-send: | `:vscode-send:` |
-| :vscode-send-to-remote-agent: | `:vscode-send-to-remote-agent:` |
-| :vscode-server: | `:vscode-server:` |
-| :vscode-server-environment: | `:vscode-server-environment:` |
-| :vscode-server-process: | `:vscode-server-process:` |
-| :vscode-session-in-progress: | `:vscode-session-in-progress:` |
-| :vscode-settings: | `:vscode-settings:` |
-| :vscode-settings-gear: | `:vscode-settings-gear:` |
-| :vscode-share: | `:vscode-share:` |
-| :vscode-share-window: | `:vscode-share-window:` |
-| :vscode-shield: | `:vscode-shield:` |
-| :vscode-sign-in: | `:vscode-sign-in:` |
-| :vscode-sign-out: | `:vscode-sign-out:` |
-| :vscode-skip: | `:vscode-skip:` |
-| :vscode-smiley: | `:vscode-smiley:` |
-| :vscode-snake: | `:vscode-snake:` |
-| :vscode-sort-precedence: | `:vscode-sort-precedence:` |
-| :vscode-source-control: | `:vscode-source-control:` |
-| :vscode-sparkle: | `:vscode-sparkle:` |
-| :vscode-sparkle-filled: | `:vscode-sparkle-filled:` |
-| :vscode-split-horizontal: | `:vscode-split-horizontal:` |
-| :vscode-split-vertical: | `:vscode-split-vertical:` |
-| :vscode-squirrel: | `:vscode-squirrel:` |
-| :vscode-star-empty: | `:vscode-star-empty:` |
-| :vscode-star-full: | `:vscode-star-full:` |
-| :vscode-star-half: | `:vscode-star-half:` |
-| :vscode-stop-circle: | `:vscode-stop-circle:` |
-| :vscode-strikethrough: | `:vscode-strikethrough:` |
-| :vscode-surround-with: | `:vscode-surround-with:` |
-| :vscode-symbol-array: | `:vscode-symbol-array:` |
-| :vscode-symbol-boolean: | `:vscode-symbol-boolean:` |
-| :vscode-symbol-class: | `:vscode-symbol-class:` |
-| :vscode-symbol-color: | `:vscode-symbol-color:` |
-| :vscode-symbol-constant: | `:vscode-symbol-constant:` |
-| :vscode-symbol-enum: | `:vscode-symbol-enum:` |
-| :vscode-symbol-enum-member: | `:vscode-symbol-enum-member:` |
-| :vscode-symbol-event: | `:vscode-symbol-event:` |
-| :vscode-symbol-field: | `:vscode-symbol-field:` |
-| :vscode-symbol-file: | `:vscode-symbol-file:` |
-| :vscode-symbol-interface: | `:vscode-symbol-interface:` |
-| :vscode-symbol-key: | `:vscode-symbol-key:` |
-| :vscode-symbol-keyword: | `:vscode-symbol-keyword:` |
-| :vscode-symbol-method: | `:vscode-symbol-method:` |
-| :vscode-symbol-method-arrow: | `:vscode-symbol-method-arrow:` |
-| :vscode-symbol-misc: | `:vscode-symbol-misc:` |
-| :vscode-symbol-namespace: | `:vscode-symbol-namespace:` |
-| :vscode-symbol-numeric: | `:vscode-symbol-numeric:` |
-| :vscode-symbol-operator: | `:vscode-symbol-operator:` |
-| :vscode-symbol-parameter: | `:vscode-symbol-parameter:` |
-| :vscode-symbol-property: | `:vscode-symbol-property:` |
-| :vscode-symbol-ruler: | `:vscode-symbol-ruler:` |
-| :vscode-symbol-snippet: | `:vscode-symbol-snippet:` |
-| :vscode-symbol-string: | `:vscode-symbol-string:` |
-| :vscode-symbol-structure: | `:vscode-symbol-structure:` |
-| :vscode-symbol-variable: | `:vscode-symbol-variable:` |
-| :vscode-sync: | `:vscode-sync:` |
-| :vscode-sync-ignored: | `:vscode-sync-ignored:` |
-| :vscode-table: | `:vscode-table:` |
-| :vscode-tag: | `:vscode-tag:` |
-| :vscode-target: | `:vscode-target:` |
-| :vscode-tasklist: | `:vscode-tasklist:` |
-| :vscode-telescope: | `:vscode-telescope:` |
-| :vscode-terminal: | `:vscode-terminal:` |
-| :vscode-terminal-bash: | `:vscode-terminal-bash:` |
-| :vscode-terminal-cmd: | `:vscode-terminal-cmd:` |
-| :vscode-terminal-debian: | `:vscode-terminal-debian:` |
-| :vscode-terminal-git-bash: | `:vscode-terminal-git-bash:` |
-| :vscode-terminal-linux: | `:vscode-terminal-linux:` |
-| :vscode-terminal-powershell: | `:vscode-terminal-powershell:` |
-| :vscode-terminal-secure: | `:vscode-terminal-secure:` |
-| :vscode-terminal-tmux: | `:vscode-terminal-tmux:` |
-| :vscode-terminal-ubuntu: | `:vscode-terminal-ubuntu:` |
-| :vscode-text-size: | `:vscode-text-size:` |
-| :vscode-thinking: | `:vscode-thinking:` |
-| :vscode-three-bars: | `:vscode-three-bars:` |
-| :vscode-thumbsdown: | `:vscode-thumbsdown:` |
-| :vscode-thumbsdown-filled: | `:vscode-thumbsdown-filled:` |
-| :vscode-thumbsup: | `:vscode-thumbsup:` |
-| :vscode-thumbsup-filled: | `:vscode-thumbsup-filled:` |
-| :vscode-tools: | `:vscode-tools:` |
-| :vscode-trash: | `:vscode-trash:` |
-| :vscode-triangle-down: | `:vscode-triangle-down:` |
-| :vscode-triangle-left: | `:vscode-triangle-left:` |
-| :vscode-triangle-right: | `:vscode-triangle-right:` |
-| :vscode-triangle-up: | `:vscode-triangle-up:` |
-| :vscode-twitter: | `:vscode-twitter:` |
-| :vscode-type-hierarchy: | `:vscode-type-hierarchy:` |
-| :vscode-type-hierarchy-sub: | `:vscode-type-hierarchy-sub:` |
-| :vscode-type-hierarchy-super: | `:vscode-type-hierarchy-super:` |
-| :vscode-unarchive: | `:vscode-unarchive:` |
-| :vscode-unfold: | `:vscode-unfold:` |
-| :vscode-ungroup-by-ref-type: | `:vscode-ungroup-by-ref-type:` |
-| :vscode-unlock: | `:vscode-unlock:` |
-| :vscode-unmute: | `:vscode-unmute:` |
-| :vscode-unverified: | `:vscode-unverified:` |
-| :vscode-variable-group: | `:vscode-variable-group:` |
-| :vscode-verified: | `:vscode-verified:` |
-| :vscode-verified-filled: | `:vscode-verified-filled:` |
-| :vscode-versions: | `:vscode-versions:` |
-| :vscode-vm: | `:vscode-vm:` |
-| :vscode-vm-active: | `:vscode-vm-active:` |
-| :vscode-vm-connect: | `:vscode-vm-connect:` |
-| :vscode-vm-outline: | `:vscode-vm-outline:` |
-| :vscode-vm-pending: | `:vscode-vm-pending:` |
-| :vscode-vm-running: | `:vscode-vm-running:` |
-| :vscode-vm-small: | `:vscode-vm-small:` |
-| :vscode-vr: | `:vscode-vr:` |
-| :vscode-vscode: | `:vscode-vscode:` |
-| :vscode-vscode-insiders: | `:vscode-vscode-insiders:` |
-| :vscode-wand: | `:vscode-wand:` |
-| :vscode-warning: | `:vscode-warning:` |
-| :vscode-watch: | `:vscode-watch:` |
-| :vscode-whitespace: | `:vscode-whitespace:` |
-| :vscode-whole-word: | `:vscode-whole-word:` |
-| :vscode-window: | `:vscode-window:` |
-| :vscode-window-active: | `:vscode-window-active:` |
-| :vscode-word-wrap: | `:vscode-word-wrap:` |
-| :vscode-workspace-trusted: | `:vscode-workspace-trusted:` |
-| :vscode-workspace-unknown: | `:vscode-workspace-unknown:` |
-| :vscode-workspace-untrusted: | `:vscode-workspace-untrusted:` |
-| :vscode-worktree: | `:vscode-worktree:` |
-| :vscode-worktree-small: | `:vscode-worktree-small:` |
-| :vscode-zoom-in: | `:vscode-zoom-in:` |
-| :vscode-zoom-out: | `:vscode-zoom-out:` |
+
+| Иконка | Код для вставки в текст | Код для вставки в frontmatter |
+| ------------------------------------------------ | -------------------------------------------------- | ------------------------------------------------ |
+| :vscode-account: | `:vscode-account:` | `vscode/account` |
+| :vscode-activate-breakpoints: | `:vscode-activate-breakpoints:` | `vscode/activate-breakpoints` |
+| :vscode-add: | `:vscode-add:` | `vscode/add` |
+| :vscode-add-small: | `:vscode-add-small:` | `vscode/add-small` |
+| :vscode-agent: | `:vscode-agent:` | `vscode/agent` |
+| :vscode-archive: | `:vscode-archive:` | `vscode/archive` |
+| :vscode-arrow-both: | `:vscode-arrow-both:` | `vscode/arrow-both` |
+| :vscode-arrow-circle-down: | `:vscode-arrow-circle-down:` | `vscode/arrow-circle-down` |
+| :vscode-arrow-circle-left: | `:vscode-arrow-circle-left:` | `vscode/arrow-circle-left` |
+| :vscode-arrow-circle-right: | `:vscode-arrow-circle-right:` | `vscode/arrow-circle-right` |
+| :vscode-arrow-circle-up: | `:vscode-arrow-circle-up:` | `vscode/arrow-circle-up` |
+| :vscode-arrow-down: | `:vscode-arrow-down:` | `vscode/arrow-down` |
+| :vscode-arrow-left: | `:vscode-arrow-left:` | `vscode/arrow-left` |
+| :vscode-arrow-right: | `:vscode-arrow-right:` | `vscode/arrow-right` |
+| :vscode-arrow-small-down: | `:vscode-arrow-small-down:` | `vscode/arrow-small-down` |
+| :vscode-arrow-small-left: | `:vscode-arrow-small-left:` | `vscode/arrow-small-left` |
+| :vscode-arrow-small-right: | `:vscode-arrow-small-right:` | `vscode/arrow-small-right` |
+| :vscode-arrow-small-up: | `:vscode-arrow-small-up:` | `vscode/arrow-small-up` |
+| :vscode-arrow-swap: | `:vscode-arrow-swap:` | `vscode/arrow-swap` |
+| :vscode-arrow-up: | `:vscode-arrow-up:` | `vscode/arrow-up` |
+| :vscode-ask: | `:vscode-ask:` | `vscode/ask` |
+| :vscode-attach: | `:vscode-attach:` | `vscode/attach` |
+| :vscode-azure: | `:vscode-azure:` | `vscode/azure` |
+| :vscode-azure-devops: | `:vscode-azure-devops:` | `vscode/azure-devops` |
+| :vscode-beaker: | `:vscode-beaker:` | `vscode/beaker` |
+| :vscode-beaker-stop: | `:vscode-beaker-stop:` | `vscode/beaker-stop` |
+| :vscode-bell: | `:vscode-bell:` | `vscode/bell` |
+| :vscode-bell-dot: | `:vscode-bell-dot:` | `vscode/bell-dot` |
+| :vscode-bell-slash: | `:vscode-bell-slash:` | `vscode/bell-slash` |
+| :vscode-bell-slash-dot: | `:vscode-bell-slash-dot:` | `vscode/bell-slash-dot` |
+| :vscode-blank: | `:vscode-blank:` | `vscode/blank` |
+| :vscode-bold: | `:vscode-bold:` | `vscode/bold` |
+| :vscode-book: | `:vscode-book:` | `vscode/book` |
+| :vscode-bookmark: | `:vscode-bookmark:` | `vscode/bookmark` |
+| :vscode-bracket-dot: | `:vscode-bracket-dot:` | `vscode/bracket-dot` |
+| :vscode-bracket-error: | `:vscode-bracket-error:` | `vscode/bracket-error` |
+| :vscode-briefcase: | `:vscode-briefcase:` | `vscode/briefcase` |
+| :vscode-broadcast: | `:vscode-broadcast:` | `vscode/broadcast` |
+| :vscode-browser: | `:vscode-browser:` | `vscode/browser` |
+| :vscode-bug: | `:vscode-bug:` | `vscode/bug` |
+| :vscode-build: | `:vscode-build:` | `vscode/build` |
+| :vscode-calendar: | `:vscode-calendar:` | `vscode/calendar` |
+| :vscode-call-incoming: | `:vscode-call-incoming:` | `vscode/call-incoming` |
+| :vscode-call-outgoing: | `:vscode-call-outgoing:` | `vscode/call-outgoing` |
+| :vscode-case-sensitive: | `:vscode-case-sensitive:` | `vscode/case-sensitive` |
+| :vscode-chat-export: | `:vscode-chat-export:` | `vscode/chat-export` |
+| :vscode-chat-import: | `:vscode-chat-import:` | `vscode/chat-import` |
+| :vscode-chat-sparkle: | `:vscode-chat-sparkle:` | `vscode/chat-sparkle` |
+| :vscode-chat-sparkle-error: | `:vscode-chat-sparkle-error:` | `vscode/chat-sparkle-error` |
+| :vscode-chat-sparkle-warning: | `:vscode-chat-sparkle-warning:` | `vscode/chat-sparkle-warning` |
+| :vscode-check: | `:vscode-check:` | `vscode/check` |
+| :vscode-check-all: | `:vscode-check-all:` | `vscode/check-all` |
+| :vscode-checklist: | `:vscode-checklist:` | `vscode/checklist` |
+| :vscode-chevron-down: | `:vscode-chevron-down:` | `vscode/chevron-down` |
+| :vscode-chevron-left: | `:vscode-chevron-left:` | `vscode/chevron-left` |
+| :vscode-chevron-right: | `:vscode-chevron-right:` | `vscode/chevron-right` |
+| :vscode-chevron-up: | `:vscode-chevron-up:` | `vscode/chevron-up` |
+| :vscode-chip: | `:vscode-chip:` | `vscode/chip` |
+| :vscode-chrome-close: | `:vscode-chrome-close:` | `vscode/chrome-close` |
+| :vscode-chrome-maximize: | `:vscode-chrome-maximize:` | `vscode/chrome-maximize` |
+| :vscode-chrome-minimize: | `:vscode-chrome-minimize:` | `vscode/chrome-minimize` |
+| :vscode-chrome-restore: | `:vscode-chrome-restore:` | `vscode/chrome-restore` |
+| :vscode-circle: | `:vscode-circle:` | `vscode/circle` |
+| :vscode-circle-filled: | `:vscode-circle-filled:` | `vscode/circle-filled` |
+| :vscode-circle-large: | `:vscode-circle-large:` | `vscode/circle-large` |
+| :vscode-circle-large-filled: | `:vscode-circle-large-filled:` | `vscode/circle-large-filled` |
+| :vscode-circle-slash: | `:vscode-circle-slash:` | `vscode/circle-slash` |
+| :vscode-circle-small: | `:vscode-circle-small:` | `vscode/circle-small` |
+| :vscode-circle-small-filled: | `:vscode-circle-small-filled:` | `vscode/circle-small-filled` |
+| :vscode-circuit-board: | `:vscode-circuit-board:` | `vscode/circuit-board` |
+| :vscode-claude: | `:vscode-claude:` | `vscode/claude` |
+| :vscode-clear-all: | `:vscode-clear-all:` | `vscode/clear-all` |
+| :vscode-clippy: | `:vscode-clippy:` | `vscode/clippy` |
+| :vscode-clockface: | `:vscode-clockface:` | `vscode/clockface` |
+| :vscode-close: | `:vscode-close:` | `vscode/close` |
+| :vscode-close-all: | `:vscode-close-all:` | `vscode/close-all` |
+| :vscode-cloud: | `:vscode-cloud:` | `vscode/cloud` |
+| :vscode-cloud-download: | `:vscode-cloud-download:` | `vscode/cloud-download` |
+| :vscode-cloud-small: | `:vscode-cloud-small:` | `vscode/cloud-small` |
+| :vscode-cloud-upload: | `:vscode-cloud-upload:` | `vscode/cloud-upload` |
+| :vscode-code: | `:vscode-code:` | `vscode/code` |
+| :vscode-code-oss: | `:vscode-code-oss:` | `vscode/code-oss` |
+| :vscode-code-review: | `:vscode-code-review:` | `vscode/code-review` |
+| :vscode-coffee: | `:vscode-coffee:` | `vscode/coffee` |
+| :vscode-collapse-all: | `:vscode-collapse-all:` | `vscode/collapse-all` |
+| :vscode-collection: | `:vscode-collection:` | `vscode/collection` |
+| :vscode-collection-small: | `:vscode-collection-small:` | `vscode/collection-small` |
+| :vscode-color-mode: | `:vscode-color-mode:` | `vscode/color-mode` |
+| :vscode-combine: | `:vscode-combine:` | `vscode/combine` |
+| :vscode-comment: | `:vscode-comment:` | `vscode/comment` |
+| :vscode-comment-discussion: | `:vscode-comment-discussion:` | `vscode/comment-discussion` |
+| :vscode-comment-discussion-quote: | `:vscode-comment-discussion-quote:` | `vscode/comment-discussion-quote` |
+| :vscode-comment-discussion-sparkle: | `:vscode-comment-discussion-sparkle:` | `vscode/comment-discussion-sparkle` |
+| :vscode-comment-draft: | `:vscode-comment-draft:` | `vscode/comment-draft` |
+| :vscode-comment-unresolved: | `:vscode-comment-unresolved:` | `vscode/comment-unresolved` |
+| :vscode-compass: | `:vscode-compass:` | `vscode/compass` |
+| :vscode-compass-active: | `:vscode-compass-active:` | `vscode/compass-active` |
+| :vscode-compass-dot: | `:vscode-compass-dot:` | `vscode/compass-dot` |
+| :vscode-copilot: | `:vscode-copilot:` | `vscode/copilot` |
+| :vscode-copilot-blocked: | `:vscode-copilot-blocked:` | `vscode/copilot-blocked` |
+| :vscode-copilot-error: | `:vscode-copilot-error:` | `vscode/copilot-error` |
+| :vscode-copilot-in-progress: | `:vscode-copilot-in-progress:` | `vscode/copilot-in-progress` |
+| :vscode-copilot-large: | `:vscode-copilot-large:` | `vscode/copilot-large` |
+| :vscode-copilot-not-connected: | `:vscode-copilot-not-connected:` | `vscode/copilot-not-connected` |
+| :vscode-copilot-snooze: | `:vscode-copilot-snooze:` | `vscode/copilot-snooze` |
+| :vscode-copilot-success: | `:vscode-copilot-success:` | `vscode/copilot-success` |
+| :vscode-copilot-unavailable: | `:vscode-copilot-unavailable:` | `vscode/copilot-unavailable` |
+| :vscode-copilot-warning: | `:vscode-copilot-warning:` | `vscode/copilot-warning` |
+| :vscode-copilot-warning-large: | `:vscode-copilot-warning-large:` | `vscode/copilot-warning-large` |
+| :vscode-copy: | `:vscode-copy:` | `vscode/copy` |
+| :vscode-coverage: | `:vscode-coverage:` | `vscode/coverage` |
+| :vscode-credit-card: | `:vscode-credit-card:` | `vscode/credit-card` |
+| :vscode-cursor: | `:vscode-cursor:` | `vscode/cursor` |
+| :vscode-dash: | `:vscode-dash:` | `vscode/dash` |
+| :vscode-dashboard: | `:vscode-dashboard:` | `vscode/dashboard` |
+| :vscode-database: | `:vscode-database:` | `vscode/database` |
+| :vscode-debug: | `:vscode-debug:` | `vscode/debug` |
+| :vscode-debug-all: | `:vscode-debug-all:` | `vscode/debug-all` |
+| :vscode-debug-alt: | `:vscode-debug-alt:` | `vscode/debug-alt` |
+| :vscode-debug-alt-small: | `:vscode-debug-alt-small:` | `vscode/debug-alt-small` |
+| :vscode-debug-breakpoint-conditional: | `:vscode-debug-breakpoint-conditional:` | `vscode/debug-breakpoint-conditional` |
+| :vscode-debug-breakpoint-conditional-unverified: | `:vscode-debug-breakpoint-conditional-unverified:` | `vscode/debug-breakpoint-conditional-unverified` |
+| :vscode-debug-breakpoint-data: | `:vscode-debug-breakpoint-data:` | `vscode/debug-breakpoint-data` |
+| :vscode-debug-breakpoint-data-unverified: | `:vscode-debug-breakpoint-data-unverified:` | `vscode/debug-breakpoint-data-unverified` |
+| :vscode-debug-breakpoint-function: | `:vscode-debug-breakpoint-function:` | `vscode/debug-breakpoint-function` |
+| :vscode-debug-breakpoint-function-unverified: | `:vscode-debug-breakpoint-function-unverified:` | `vscode/debug-breakpoint-function-unverified` |
+| :vscode-debug-breakpoint-log: | `:vscode-debug-breakpoint-log:` | `vscode/debug-breakpoint-log` |
+| :vscode-debug-breakpoint-log-unverified: | `:vscode-debug-breakpoint-log-unverified:` | `vscode/debug-breakpoint-log-unverified` |
+| :vscode-debug-breakpoint-unsupported: | `:vscode-debug-breakpoint-unsupported:` | `vscode/debug-breakpoint-unsupported` |
+| :vscode-debug-connected: | `:vscode-debug-connected:` | `vscode/debug-connected` |
+| :vscode-debug-console: | `:vscode-debug-console:` | `vscode/debug-console` |
+| :vscode-debug-continue: | `:vscode-debug-continue:` | `vscode/debug-continue` |
+| :vscode-debug-continue-small: | `:vscode-debug-continue-small:` | `vscode/debug-continue-small` |
+| :vscode-debug-coverage: | `:vscode-debug-coverage:` | `vscode/debug-coverage` |
+| :vscode-debug-disconnect: | `:vscode-debug-disconnect:` | `vscode/debug-disconnect` |
+| :vscode-debug-line-by-line: | `:vscode-debug-line-by-line:` | `vscode/debug-line-by-line` |
+| :vscode-debug-pause: | `:vscode-debug-pause:` | `vscode/debug-pause` |
+| :vscode-debug-rerun: | `:vscode-debug-rerun:` | `vscode/debug-rerun` |
+| :vscode-debug-restart: | `:vscode-debug-restart:` | `vscode/debug-restart` |
+| :vscode-debug-restart-frame: | `:vscode-debug-restart-frame:` | `vscode/debug-restart-frame` |
+| :vscode-debug-reverse-continue: | `:vscode-debug-reverse-continue:` | `vscode/debug-reverse-continue` |
+| :vscode-debug-stackframe: | `:vscode-debug-stackframe:` | `vscode/debug-stackframe` |
+| :vscode-debug-stackframe-active: | `:vscode-debug-stackframe-active:` | `vscode/debug-stackframe-active` |
+| :vscode-debug-start: | `:vscode-debug-start:` | `vscode/debug-start` |
+| :vscode-debug-step-back: | `:vscode-debug-step-back:` | `vscode/debug-step-back` |
+| :vscode-debug-step-into: | `:vscode-debug-step-into:` | `vscode/debug-step-into` |
+| :vscode-debug-step-out: | `:vscode-debug-step-out:` | `vscode/debug-step-out` |
+| :vscode-debug-step-over: | `:vscode-debug-step-over:` | `vscode/debug-step-over` |
+| :vscode-debug-stop: | `:vscode-debug-stop:` | `vscode/debug-stop` |
+| :vscode-desktop-download: | `:vscode-desktop-download:` | `vscode/desktop-download` |
+| :vscode-device-camera: | `:vscode-device-camera:` | `vscode/device-camera` |
+| :vscode-device-camera-video: | `:vscode-device-camera-video:` | `vscode/device-camera-video` |
+| :vscode-device-mobile: | `:vscode-device-mobile:` | `vscode/device-mobile` |
+| :vscode-diff: | `:vscode-diff:` | `vscode/diff` |
+| :vscode-diff-added: | `:vscode-diff-added:` | `vscode/diff-added` |
+| :vscode-diff-ignored: | `:vscode-diff-ignored:` | `vscode/diff-ignored` |
+| :vscode-diff-modified: | `:vscode-diff-modified:` | `vscode/diff-modified` |
+| :vscode-diff-multiple: | `:vscode-diff-multiple:` | `vscode/diff-multiple` |
+| :vscode-diff-removed: | `:vscode-diff-removed:` | `vscode/diff-removed` |
+| :vscode-diff-renamed: | `:vscode-diff-renamed:` | `vscode/diff-renamed` |
+| :vscode-diff-single: | `:vscode-diff-single:` | `vscode/diff-single` |
+| :vscode-discard: | `:vscode-discard:` | `vscode/discard` |
+| :vscode-download: | `:vscode-download:` | `vscode/download` |
+| :vscode-edit: | `:vscode-edit:` | `vscode/edit` |
+| :vscode-edit-code: | `:vscode-edit-code:` | `vscode/edit-code` |
+| :vscode-edit-session: | `:vscode-edit-session:` | `vscode/edit-session` |
+| :vscode-edit-sparkle: | `:vscode-edit-sparkle:` | `vscode/edit-sparkle` |
+| :vscode-editor-layout: | `:vscode-editor-layout:` | `vscode/editor-layout` |
+| :vscode-ellipsis: | `:vscode-ellipsis:` | `vscode/ellipsis` |
+| :vscode-empty-window: | `:vscode-empty-window:` | `vscode/empty-window` |
+| :vscode-eraser: | `:vscode-eraser:` | `vscode/eraser` |
+| :vscode-error: | `:vscode-error:` | `vscode/error` |
+| :vscode-error-small: | `:vscode-error-small:` | `vscode/error-small` |
+| :vscode-exclude: | `:vscode-exclude:` | `vscode/exclude` |
+| :vscode-expand-all: | `:vscode-expand-all:` | `vscode/expand-all` |
+| :vscode-export: | `:vscode-export:` | `vscode/export` |
+| :vscode-extensions: | `:vscode-extensions:` | `vscode/extensions` |
+| :vscode-extensions-large: | `:vscode-extensions-large:` | `vscode/extensions-large` |
+| :vscode-eye: | `:vscode-eye:` | `vscode/eye` |
+| :vscode-eye-closed: | `:vscode-eye-closed:` | `vscode/eye-closed` |
+| :vscode-feedback: | `:vscode-feedback:` | `vscode/feedback` |
+| :vscode-file: | `:vscode-file:` | `vscode/file` |
+| :vscode-file-binary: | `:vscode-file-binary:` | `vscode/file-binary` |
+| :vscode-file-code: | `:vscode-file-code:` | `vscode/file-code` |
+| :vscode-file-media: | `:vscode-file-media:` | `vscode/file-media` |
+| :vscode-file-pdf: | `:vscode-file-pdf:` | `vscode/file-pdf` |
+| :vscode-file-submodule: | `:vscode-file-submodule:` | `vscode/file-submodule` |
+| :vscode-file-symlink-directory: | `:vscode-file-symlink-directory:` | `vscode/file-symlink-directory` |
+| :vscode-file-symlink-file: | `:vscode-file-symlink-file:` | `vscode/file-symlink-file` |
+| :vscode-file-text: | `:vscode-file-text:` | `vscode/file-text` |
+| :vscode-file-zip: | `:vscode-file-zip:` | `vscode/file-zip` |
+| :vscode-files: | `:vscode-files:` | `vscode/files` |
+| :vscode-filter: | `:vscode-filter:` | `vscode/filter` |
+| :vscode-filter-filled: | `:vscode-filter-filled:` | `vscode/filter-filled` |
+| :vscode-flag: | `:vscode-flag:` | `vscode/flag` |
+| :vscode-flame: | `:vscode-flame:` | `vscode/flame` |
+| :vscode-fold: | `:vscode-fold:` | `vscode/fold` |
+| :vscode-fold-down: | `:vscode-fold-down:` | `vscode/fold-down` |
+| :vscode-fold-up: | `:vscode-fold-up:` | `vscode/fold-up` |
+| :vscode-folder: | `:vscode-folder:` | `vscode/folder` |
+| :vscode-folder-active: | `:vscode-folder-active:` | `vscode/folder-active` |
+| :vscode-folder-library: | `:vscode-folder-library:` | `vscode/folder-library` |
+| :vscode-folder-opened: | `:vscode-folder-opened:` | `vscode/folder-opened` |
+| :vscode-forward: | `:vscode-forward:` | `vscode/forward` |
+| :vscode-game: | `:vscode-game:` | `vscode/game` |
+| :vscode-gear: | `:vscode-gear:` | `vscode/gear` |
+| :vscode-gift: | `:vscode-gift:` | `vscode/gift` |
+| :vscode-gist: | `:vscode-gist:` | `vscode/gist` |
+| :vscode-gist-secret: | `:vscode-gist-secret:` | `vscode/gist-secret` |
+| :vscode-git-branch: | `:vscode-git-branch:` | `vscode/git-branch` |
+| :vscode-git-branch-changes: | `:vscode-git-branch-changes:` | `vscode/git-branch-changes` |
+| :vscode-git-branch-conflicts: | `:vscode-git-branch-conflicts:` | `vscode/git-branch-conflicts` |
+| :vscode-git-branch-staged-changes: | `:vscode-git-branch-staged-changes:` | `vscode/git-branch-staged-changes` |
+| :vscode-git-commit: | `:vscode-git-commit:` | `vscode/git-commit` |
+| :vscode-git-compare: | `:vscode-git-compare:` | `vscode/git-compare` |
+| :vscode-git-fetch: | `:vscode-git-fetch:` | `vscode/git-fetch` |
+| :vscode-git-merge: | `:vscode-git-merge:` | `vscode/git-merge` |
+| :vscode-git-pull-request: | `:vscode-git-pull-request:` | `vscode/git-pull-request` |
+| :vscode-git-pull-request-closed: | `:vscode-git-pull-request-closed:` | `vscode/git-pull-request-closed` |
+| :vscode-git-pull-request-create: | `:vscode-git-pull-request-create:` | `vscode/git-pull-request-create` |
+| :vscode-git-pull-request-done: | `:vscode-git-pull-request-done:` | `vscode/git-pull-request-done` |
+| :vscode-git-pull-request-draft: | `:vscode-git-pull-request-draft:` | `vscode/git-pull-request-draft` |
+| :vscode-git-pull-request-go-to-changes: | `:vscode-git-pull-request-go-to-changes:` | `vscode/git-pull-request-go-to-changes` |
+| :vscode-git-pull-request-new-changes: | `:vscode-git-pull-request-new-changes:` | `vscode/git-pull-request-new-changes` |
+| :vscode-git-stash: | `:vscode-git-stash:` | `vscode/git-stash` |
+| :vscode-git-stash-apply: | `:vscode-git-stash-apply:` | `vscode/git-stash-apply` |
+| :vscode-git-stash-pop: | `:vscode-git-stash-pop:` | `vscode/git-stash-pop` |
+| :vscode-github: | `:vscode-github:` | `vscode/github` |
+| :vscode-github-action: | `:vscode-github-action:` | `vscode/github-action` |
+| :vscode-github-alt: | `:vscode-github-alt:` | `vscode/github-alt` |
+| :vscode-github-inverted: | `:vscode-github-inverted:` | `vscode/github-inverted` |
+| :vscode-github-project: | `:vscode-github-project:` | `vscode/github-project` |
+| :vscode-globe: | `:vscode-globe:` | `vscode/globe` |
+| :vscode-go-to-editing-session: | `:vscode-go-to-editing-session:` | `vscode/go-to-editing-session` |
+| :vscode-go-to-file: | `:vscode-go-to-file:` | `vscode/go-to-file` |
+| :vscode-go-to-search: | `:vscode-go-to-search:` | `vscode/go-to-search` |
+| :vscode-grabber: | `:vscode-grabber:` | `vscode/grabber` |
+| :vscode-graph: | `:vscode-graph:` | `vscode/graph` |
+| :vscode-graph-left: | `:vscode-graph-left:` | `vscode/graph-left` |
+| :vscode-graph-line: | `:vscode-graph-line:` | `vscode/graph-line` |
+| :vscode-graph-scatter: | `:vscode-graph-scatter:` | `vscode/graph-scatter` |
+| :vscode-gripper: | `:vscode-gripper:` | `vscode/gripper` |
+| :vscode-group-by-ref-type: | `:vscode-group-by-ref-type:` | `vscode/group-by-ref-type` |
+| :vscode-heart: | `:vscode-heart:` | `vscode/heart` |
+| :vscode-heart-filled: | `:vscode-heart-filled:` | `vscode/heart-filled` |
+| :vscode-history: | `:vscode-history:` | `vscode/history` |
+| :vscode-home: | `:vscode-home:` | `vscode/home` |
+| :vscode-horizontal-rule: | `:vscode-horizontal-rule:` | `vscode/horizontal-rule` |
+| :vscode-hubot: | `:vscode-hubot:` | `vscode/hubot` |
+| :vscode-inbox: | `:vscode-inbox:` | `vscode/inbox` |
+| :vscode-indent: | `:vscode-indent:` | `vscode/indent` |
+| :vscode-index-zero: | `:vscode-index-zero:` | `vscode/index-zero` |
+| :vscode-info: | `:vscode-info:` | `vscode/info` |
+| :vscode-insert: | `:vscode-insert:` | `vscode/insert` |
+| :vscode-inspect: | `:vscode-inspect:` | `vscode/inspect` |
+| :vscode-issue-draft: | `:vscode-issue-draft:` | `vscode/issue-draft` |
+| :vscode-issue-reopened: | `:vscode-issue-reopened:` | `vscode/issue-reopened` |
+| :vscode-issues: | `:vscode-issues:` | `vscode/issues` |
+| :vscode-italic: | `:vscode-italic:` | `vscode/italic` |
+| :vscode-jersey: | `:vscode-jersey:` | `vscode/jersey` |
+| :vscode-json: | `:vscode-json:` | `vscode/json` |
+| :vscode-kebab-vertical: | `:vscode-kebab-vertical:` | `vscode/kebab-vertical` |
+| :vscode-key: | `:vscode-key:` | `vscode/key` |
+| :vscode-keyboard-tab: | `:vscode-keyboard-tab:` | `vscode/keyboard-tab` |
+| :vscode-keyboard-tab-above: | `:vscode-keyboard-tab-above:` | `vscode/keyboard-tab-above` |
+| :vscode-keyboard-tab-below: | `:vscode-keyboard-tab-below:` | `vscode/keyboard-tab-below` |
+| :vscode-law: | `:vscode-law:` | `vscode/law` |
+| :vscode-layers: | `:vscode-layers:` | `vscode/layers` |
+| :vscode-layers-active: | `:vscode-layers-active:` | `vscode/layers-active` |
+| :vscode-layers-dot: | `:vscode-layers-dot:` | `vscode/layers-dot` |
+| :vscode-layout: | `:vscode-layout:` | `vscode/layout` |
+| :vscode-layout-activitybar-left: | `:vscode-layout-activitybar-left:` | `vscode/layout-activitybar-left` |
+| :vscode-layout-activitybar-right: | `:vscode-layout-activitybar-right:` | `vscode/layout-activitybar-right` |
+| :vscode-layout-centered: | `:vscode-layout-centered:` | `vscode/layout-centered` |
+| :vscode-layout-menubar: | `:vscode-layout-menubar:` | `vscode/layout-menubar` |
+| :vscode-layout-panel: | `:vscode-layout-panel:` | `vscode/layout-panel` |
+| :vscode-layout-panel-center: | `:vscode-layout-panel-center:` | `vscode/layout-panel-center` |
+| :vscode-layout-panel-dock: | `:vscode-layout-panel-dock:` | `vscode/layout-panel-dock` |
+| :vscode-layout-panel-justify: | `:vscode-layout-panel-justify:` | `vscode/layout-panel-justify` |
+| :vscode-layout-panel-left: | `:vscode-layout-panel-left:` | `vscode/layout-panel-left` |
+| :vscode-layout-panel-off: | `:vscode-layout-panel-off:` | `vscode/layout-panel-off` |
+| :vscode-layout-panel-right: | `:vscode-layout-panel-right:` | `vscode/layout-panel-right` |
+| :vscode-layout-sidebar-left: | `:vscode-layout-sidebar-left:` | `vscode/layout-sidebar-left` |
+| :vscode-layout-sidebar-left-dock: | `:vscode-layout-sidebar-left-dock:` | `vscode/layout-sidebar-left-dock` |
+| :vscode-layout-sidebar-left-off: | `:vscode-layout-sidebar-left-off:` | `vscode/layout-sidebar-left-off` |
+| :vscode-layout-sidebar-right: | `:vscode-layout-sidebar-right:` | `vscode/layout-sidebar-right` |
+| :vscode-layout-sidebar-right-dock: | `:vscode-layout-sidebar-right-dock:` | `vscode/layout-sidebar-right-dock` |
+| :vscode-layout-sidebar-right-off: | `:vscode-layout-sidebar-right-off:` | `vscode/layout-sidebar-right-off` |
+| :vscode-layout-statusbar: | `:vscode-layout-statusbar:` | `vscode/layout-statusbar` |
+| :vscode-library: | `:vscode-library:` | `vscode/library` |
+| :vscode-lightbulb: | `:vscode-lightbulb:` | `vscode/lightbulb` |
+| :vscode-lightbulb-autofix: | `:vscode-lightbulb-autofix:` | `vscode/lightbulb-autofix` |
+| :vscode-lightbulb-empty: | `:vscode-lightbulb-empty:` | `vscode/lightbulb-empty` |
+| :vscode-lightbulb-sparkle: | `:vscode-lightbulb-sparkle:` | `vscode/lightbulb-sparkle` |
+| :vscode-link: | `:vscode-link:` | `vscode/link` |
+| :vscode-link-external: | `:vscode-link-external:` | `vscode/link-external` |
+| :vscode-list-filter: | `:vscode-list-filter:` | `vscode/list-filter` |
+| :vscode-list-flat: | `:vscode-list-flat:` | `vscode/list-flat` |
+| :vscode-list-ordered: | `:vscode-list-ordered:` | `vscode/list-ordered` |
+| :vscode-list-selection: | `:vscode-list-selection:` | `vscode/list-selection` |
+| :vscode-list-tree: | `:vscode-list-tree:` | `vscode/list-tree` |
+| :vscode-list-unordered: | `:vscode-list-unordered:` | `vscode/list-unordered` |
+| :vscode-live-share: | `:vscode-live-share:` | `vscode/live-share` |
+| :vscode-loading: | `:vscode-loading:` | `vscode/loading` |
+| :vscode-location: | `:vscode-location:` | `vscode/location` |
+| :vscode-lock: | `:vscode-lock:` | `vscode/lock` |
+| :vscode-lock-small: | `:vscode-lock-small:` | `vscode/lock-small` |
+| :vscode-magnet: | `:vscode-magnet:` | `vscode/magnet` |
+| :vscode-mail: | `:vscode-mail:` | `vscode/mail` |
+| :vscode-mail-read: | `:vscode-mail-read:` | `vscode/mail-read` |
+| :vscode-map: | `:vscode-map:` | `vscode/map` |
+| :vscode-map-filled: | `:vscode-map-filled:` | `vscode/map-filled` |
+| :vscode-map-vertical: | `:vscode-map-vertical:` | `vscode/map-vertical` |
+| :vscode-map-vertical-filled: | `:vscode-map-vertical-filled:` | `vscode/map-vertical-filled` |
+| :vscode-markdown: | `:vscode-markdown:` | `vscode/markdown` |
+| :vscode-mcp: | `:vscode-mcp:` | `vscode/mcp` |
+| :vscode-megaphone: | `:vscode-megaphone:` | `vscode/megaphone` |
+| :vscode-mention: | `:vscode-mention:` | `vscode/mention` |
+| :vscode-menu: | `:vscode-menu:` | `vscode/menu` |
+| :vscode-merge: | `:vscode-merge:` | `vscode/merge` |
+| :vscode-merge-into: | `:vscode-merge-into:` | `vscode/merge-into` |
+| :vscode-mic: | `:vscode-mic:` | `vscode/mic` |
+| :vscode-mic-filled: | `:vscode-mic-filled:` | `vscode/mic-filled` |
+| :vscode-milestone: | `:vscode-milestone:` | `vscode/milestone` |
+| :vscode-mirror: | `:vscode-mirror:` | `vscode/mirror` |
+| :vscode-mortar-board: | `:vscode-mortar-board:` | `vscode/mortar-board` |
+| :vscode-move: | `:vscode-move:` | `vscode/move` |
+| :vscode-multiple-windows: | `:vscode-multiple-windows:` | `vscode/multiple-windows` |
+| :vscode-music: | `:vscode-music:` | `vscode/music` |
+| :vscode-mute: | `:vscode-mute:` | `vscode/mute` |
+| :vscode-new-collection: | `:vscode-new-collection:` | `vscode/new-collection` |
+| :vscode-new-file: | `:vscode-new-file:` | `vscode/new-file` |
+| :vscode-new-folder: | `:vscode-new-folder:` | `vscode/new-folder` |
+| :vscode-new-session: | `:vscode-new-session:` | `vscode/new-session` |
+| :vscode-newline: | `:vscode-newline:` | `vscode/newline` |
+| :vscode-no-newline: | `:vscode-no-newline:` | `vscode/no-newline` |
+| :vscode-note: | `:vscode-note:` | `vscode/note` |
+| :vscode-notebook: | `:vscode-notebook:` | `vscode/notebook` |
+| :vscode-notebook-template: | `:vscode-notebook-template:` | `vscode/notebook-template` |
+| :vscode-octoface: | `:vscode-octoface:` | `vscode/octoface` |
+| :vscode-open-in-product: | `:vscode-open-in-product:` | `vscode/open-in-product` |
+| :vscode-open-in-window: | `:vscode-open-in-window:` | `vscode/open-in-window` |
+| :vscode-open-preview: | `:vscode-open-preview:` | `vscode/open-preview` |
+| :vscode-openai: | `:vscode-openai:` | `vscode/openai` |
+| :vscode-organization: | `:vscode-organization:` | `vscode/organization` |
+| :vscode-output: | `:vscode-output:` | `vscode/output` |
+| :vscode-package: | `:vscode-package:` | `vscode/package` |
+| :vscode-paintcan: | `:vscode-paintcan:` | `vscode/paintcan` |
+| :vscode-pass: | `:vscode-pass:` | `vscode/pass` |
+| :vscode-pass-filled: | `:vscode-pass-filled:` | `vscode/pass-filled` |
+| :vscode-percentage: | `:vscode-percentage:` | `vscode/percentage` |
+| :vscode-person: | `:vscode-person:` | `vscode/person` |
+| :vscode-person-add: | `:vscode-person-add:` | `vscode/person-add` |
+| :vscode-piano: | `:vscode-piano:` | `vscode/piano` |
+| :vscode-pie-chart: | `:vscode-pie-chart:` | `vscode/pie-chart` |
+| :vscode-pin: | `:vscode-pin:` | `vscode/pin` |
+| :vscode-pinned: | `:vscode-pinned:` | `vscode/pinned` |
+| :vscode-pinned-dirty: | `:vscode-pinned-dirty:` | `vscode/pinned-dirty` |
+| :vscode-play: | `:vscode-play:` | `vscode/play` |
+| :vscode-play-circle: | `:vscode-play-circle:` | `vscode/play-circle` |
+| :vscode-plug: | `:vscode-plug:` | `vscode/plug` |
+| :vscode-preserve-case: | `:vscode-preserve-case:` | `vscode/preserve-case` |
+| :vscode-preview: | `:vscode-preview:` | `vscode/preview` |
+| :vscode-primitive-square: | `:vscode-primitive-square:` | `vscode/primitive-square` |
+| :vscode-project: | `:vscode-project:` | `vscode/project` |
+| :vscode-pulse: | `:vscode-pulse:` | `vscode/pulse` |
+| :vscode-python: | `:vscode-python:` | `vscode/python` |
+| :vscode-question: | `:vscode-question:` | `vscode/question` |
+| :vscode-quote: | `:vscode-quote:` | `vscode/quote` |
+| :vscode-quotes: | `:vscode-quotes:` | `vscode/quotes` |
+| :vscode-radio-tower: | `:vscode-radio-tower:` | `vscode/radio-tower` |
+| :vscode-reactions: | `:vscode-reactions:` | `vscode/reactions` |
+| :vscode-record: | `:vscode-record:` | `vscode/record` |
+| :vscode-record-keys: | `:vscode-record-keys:` | `vscode/record-keys` |
+| :vscode-record-small: | `:vscode-record-small:` | `vscode/record-small` |
+| :vscode-redo: | `:vscode-redo:` | `vscode/redo` |
+| :vscode-references: | `:vscode-references:` | `vscode/references` |
+| :vscode-refresh: | `:vscode-refresh:` | `vscode/refresh` |
+| :vscode-regex: | `:vscode-regex:` | `vscode/regex` |
+| :vscode-remote: | `:vscode-remote:` | `vscode/remote` |
+| :vscode-remote-explorer: | `:vscode-remote-explorer:` | `vscode/remote-explorer` |
+| :vscode-remove: | `:vscode-remove:` | `vscode/remove` |
+| :vscode-remove-small: | `:vscode-remove-small:` | `vscode/remove-small` |
+| :vscode-rename: | `:vscode-rename:` | `vscode/rename` |
+| :vscode-replace: | `:vscode-replace:` | `vscode/replace` |
+| :vscode-replace-all: | `:vscode-replace-all:` | `vscode/replace-all` |
+| :vscode-reply: | `:vscode-reply:` | `vscode/reply` |
+| :vscode-repo: | `:vscode-repo:` | `vscode/repo` |
+| :vscode-repo-clone: | `:vscode-repo-clone:` | `vscode/repo-clone` |
+| :vscode-repo-fetch: | `:vscode-repo-fetch:` | `vscode/repo-fetch` |
+| :vscode-repo-force-push: | `:vscode-repo-force-push:` | `vscode/repo-force-push` |
+| :vscode-repo-forked: | `:vscode-repo-forked:` | `vscode/repo-forked` |
+| :vscode-repo-pinned: | `:vscode-repo-pinned:` | `vscode/repo-pinned` |
+| :vscode-repo-pull: | `:vscode-repo-pull:` | `vscode/repo-pull` |
+| :vscode-repo-push: | `:vscode-repo-push:` | `vscode/repo-push` |
+| :vscode-repo-selected: | `:vscode-repo-selected:` | `vscode/repo-selected` |
+| :vscode-report: | `:vscode-report:` | `vscode/report` |
+| :vscode-request-changes: | `:vscode-request-changes:` | `vscode/request-changes` |
+| :vscode-robot: | `:vscode-robot:` | `vscode/robot` |
+| :vscode-rocket: | `:vscode-rocket:` | `vscode/rocket` |
+| :vscode-root-folder: | `:vscode-root-folder:` | `vscode/root-folder` |
+| :vscode-root-folder-opened: | `:vscode-root-folder-opened:` | `vscode/root-folder-opened` |
+| :vscode-rss: | `:vscode-rss:` | `vscode/rss` |
+| :vscode-ruby: | `:vscode-ruby:` | `vscode/ruby` |
+| :vscode-run-above: | `:vscode-run-above:` | `vscode/run-above` |
+| :vscode-run-all: | `:vscode-run-all:` | `vscode/run-all` |
+| :vscode-run-all-coverage: | `:vscode-run-all-coverage:` | `vscode/run-all-coverage` |
+| :vscode-run-below: | `:vscode-run-below:` | `vscode/run-below` |
+| :vscode-run-coverage: | `:vscode-run-coverage:` | `vscode/run-coverage` |
+| :vscode-run-errors: | `:vscode-run-errors:` | `vscode/run-errors` |
+| :vscode-run-with-deps: | `:vscode-run-with-deps:` | `vscode/run-with-deps` |
+| :vscode-save: | `:vscode-save:` | `vscode/save` |
+| :vscode-save-all: | `:vscode-save-all:` | `vscode/save-all` |
+| :vscode-save-as: | `:vscode-save-as:` | `vscode/save-as` |
+| :vscode-screen-cut: | `:vscode-screen-cut:` | `vscode/screen-cut` |
+| :vscode-screen-full: | `:vscode-screen-full:` | `vscode/screen-full` |
+| :vscode-screen-normal: | `:vscode-screen-normal:` | `vscode/screen-normal` |
+| :vscode-search: | `:vscode-search:` | `vscode/search` |
+| :vscode-search-fuzzy: | `:vscode-search-fuzzy:` | `vscode/search-fuzzy` |
+| :vscode-search-large: | `:vscode-search-large:` | `vscode/search-large` |
+| :vscode-search-sparkle: | `:vscode-search-sparkle:` | `vscode/search-sparkle` |
+| :vscode-search-stop: | `:vscode-search-stop:` | `vscode/search-stop` |
+| :vscode-send: | `:vscode-send:` | `vscode/send` |
+| :vscode-send-to-remote-agent: | `:vscode-send-to-remote-agent:` | `vscode/send-to-remote-agent` |
+| :vscode-server: | `:vscode-server:` | `vscode/server` |
+| :vscode-server-environment: | `:vscode-server-environment:` | `vscode/server-environment` |
+| :vscode-server-process: | `:vscode-server-process:` | `vscode/server-process` |
+| :vscode-session-in-progress: | `:vscode-session-in-progress:` | `vscode/session-in-progress` |
+| :vscode-settings: | `:vscode-settings:` | `vscode/settings` |
+| :vscode-settings-gear: | `:vscode-settings-gear:` | `vscode/settings-gear` |
+| :vscode-share: | `:vscode-share:` | `vscode/share` |
+| :vscode-share-window: | `:vscode-share-window:` | `vscode/share-window` |
+| :vscode-shield: | `:vscode-shield:` | `vscode/shield` |
+| :vscode-sign-in: | `:vscode-sign-in:` | `vscode/sign-in` |
+| :vscode-sign-out: | `:vscode-sign-out:` | `vscode/sign-out` |
+| :vscode-skip: | `:vscode-skip:` | `vscode/skip` |
+| :vscode-smiley: | `:vscode-smiley:` | `vscode/smiley` |
+| :vscode-snake: | `:vscode-snake:` | `vscode/snake` |
+| :vscode-sort-precedence: | `:vscode-sort-precedence:` | `vscode/sort-precedence` |
+| :vscode-source-control: | `:vscode-source-control:` | `vscode/source-control` |
+| :vscode-sparkle: | `:vscode-sparkle:` | `vscode/sparkle` |
+| :vscode-sparkle-filled: | `:vscode-sparkle-filled:` | `vscode/sparkle-filled` |
+| :vscode-split-horizontal: | `:vscode-split-horizontal:` | `vscode/split-horizontal` |
+| :vscode-split-vertical: | `:vscode-split-vertical:` | `vscode/split-vertical` |
+| :vscode-squirrel: | `:vscode-squirrel:` | `vscode/squirrel` |
+| :vscode-star-empty: | `:vscode-star-empty:` | `vscode/star-empty` |
+| :vscode-star-full: | `:vscode-star-full:` | `vscode/star-full` |
+| :vscode-star-half: | `:vscode-star-half:` | `vscode/star-half` |
+| :vscode-stop-circle: | `:vscode-stop-circle:` | `vscode/stop-circle` |
+| :vscode-strikethrough: | `:vscode-strikethrough:` | `vscode/strikethrough` |
+| :vscode-surround-with: | `:vscode-surround-with:` | `vscode/surround-with` |
+| :vscode-symbol-array: | `:vscode-symbol-array:` | `vscode/symbol-array` |
+| :vscode-symbol-boolean: | `:vscode-symbol-boolean:` | `vscode/symbol-boolean` |
+| :vscode-symbol-class: | `:vscode-symbol-class:` | `vscode/symbol-class` |
+| :vscode-symbol-color: | `:vscode-symbol-color:` | `vscode/symbol-color` |
+| :vscode-symbol-constant: | `:vscode-symbol-constant:` | `vscode/symbol-constant` |
+| :vscode-symbol-enum: | `:vscode-symbol-enum:` | `vscode/symbol-enum` |
+| :vscode-symbol-enum-member: | `:vscode-symbol-enum-member:` | `vscode/symbol-enum-member` |
+| :vscode-symbol-event: | `:vscode-symbol-event:` | `vscode/symbol-event` |
+| :vscode-symbol-field: | `:vscode-symbol-field:` | `vscode/symbol-field` |
+| :vscode-symbol-file: | `:vscode-symbol-file:` | `vscode/symbol-file` |
+| :vscode-symbol-interface: | `:vscode-symbol-interface:` | `vscode/symbol-interface` |
+| :vscode-symbol-key: | `:vscode-symbol-key:` | `vscode/symbol-key` |
+| :vscode-symbol-keyword: | `:vscode-symbol-keyword:` | `vscode/symbol-keyword` |
+| :vscode-symbol-method: | `:vscode-symbol-method:` | `vscode/symbol-method` |
+| :vscode-symbol-method-arrow: | `:vscode-symbol-method-arrow:` | `vscode/symbol-method-arrow` |
+| :vscode-symbol-misc: | `:vscode-symbol-misc:` | `vscode/symbol-misc` |
+| :vscode-symbol-namespace: | `:vscode-symbol-namespace:` | `vscode/symbol-namespace` |
+| :vscode-symbol-numeric: | `:vscode-symbol-numeric:` | `vscode/symbol-numeric` |
+| :vscode-symbol-operator: | `:vscode-symbol-operator:` | `vscode/symbol-operator` |
+| :vscode-symbol-parameter: | `:vscode-symbol-parameter:` | `vscode/symbol-parameter` |
+| :vscode-symbol-property: | `:vscode-symbol-property:` | `vscode/symbol-property` |
+| :vscode-symbol-ruler: | `:vscode-symbol-ruler:` | `vscode/symbol-ruler` |
+| :vscode-symbol-snippet: | `:vscode-symbol-snippet:` | `vscode/symbol-snippet` |
+| :vscode-symbol-string: | `:vscode-symbol-string:` | `vscode/symbol-string` |
+| :vscode-symbol-structure: | `:vscode-symbol-structure:` | `vscode/symbol-structure` |
+| :vscode-symbol-variable: | `:vscode-symbol-variable:` | `vscode/symbol-variable` |
+| :vscode-sync: | `:vscode-sync:` | `vscode/sync` |
+| :vscode-sync-ignored: | `:vscode-sync-ignored:` | `vscode/sync-ignored` |
+| :vscode-table: | `:vscode-table:` | `vscode/table` |
+| :vscode-tag: | `:vscode-tag:` | `vscode/tag` |
+| :vscode-target: | `:vscode-target:` | `vscode/target` |
+| :vscode-tasklist: | `:vscode-tasklist:` | `vscode/tasklist` |
+| :vscode-telescope: | `:vscode-telescope:` | `vscode/telescope` |
+| :vscode-terminal: | `:vscode-terminal:` | `vscode/terminal` |
+| :vscode-terminal-bash: | `:vscode-terminal-bash:` | `vscode/terminal-bash` |
+| :vscode-terminal-cmd: | `:vscode-terminal-cmd:` | `vscode/terminal-cmd` |
+| :vscode-terminal-debian: | `:vscode-terminal-debian:` | `vscode/terminal-debian` |
+| :vscode-terminal-git-bash: | `:vscode-terminal-git-bash:` | `vscode/terminal-git-bash` |
+| :vscode-terminal-linux: | `:vscode-terminal-linux:` | `vscode/terminal-linux` |
+| :vscode-terminal-powershell: | `:vscode-terminal-powershell:` | `vscode/terminal-powershell` |
+| :vscode-terminal-secure: | `:vscode-terminal-secure:` | `vscode/terminal-secure` |
+| :vscode-terminal-tmux: | `:vscode-terminal-tmux:` | `vscode/terminal-tmux` |
+| :vscode-terminal-ubuntu: | `:vscode-terminal-ubuntu:` | `vscode/terminal-ubuntu` |
+| :vscode-text-size: | `:vscode-text-size:` | `vscode/text-size` |
+| :vscode-thinking: | `:vscode-thinking:` | `vscode/thinking` |
+| :vscode-three-bars: | `:vscode-three-bars:` | `vscode/three-bars` |
+| :vscode-thumbsdown: | `:vscode-thumbsdown:` | `vscode/thumbsdown` |
+| :vscode-thumbsdown-filled: | `:vscode-thumbsdown-filled:` | `vscode/thumbsdown-filled` |
+| :vscode-thumbsup: | `:vscode-thumbsup:` | `vscode/thumbsup` |
+| :vscode-thumbsup-filled: | `:vscode-thumbsup-filled:` | `vscode/thumbsup-filled` |
+| :vscode-tools: | `:vscode-tools:` | `vscode/tools` |
+| :vscode-trash: | `:vscode-trash:` | `vscode/trash` |
+| :vscode-triangle-down: | `:vscode-triangle-down:` | `vscode/triangle-down` |
+| :vscode-triangle-left: | `:vscode-triangle-left:` | `vscode/triangle-left` |
+| :vscode-triangle-right: | `:vscode-triangle-right:` | `vscode/triangle-right` |
+| :vscode-triangle-up: | `:vscode-triangle-up:` | `vscode/triangle-up` |
+| :vscode-twitter: | `:vscode-twitter:` | `vscode/twitter` |
+| :vscode-type-hierarchy: | `:vscode-type-hierarchy:` | `vscode/type-hierarchy` |
+| :vscode-type-hierarchy-sub: | `:vscode-type-hierarchy-sub:` | `vscode/type-hierarchy-sub` |
+| :vscode-type-hierarchy-super: | `:vscode-type-hierarchy-super:` | `vscode/type-hierarchy-super` |
+| :vscode-unarchive: | `:vscode-unarchive:` | `vscode/unarchive` |
+| :vscode-unfold: | `:vscode-unfold:` | `vscode/unfold` |
+| :vscode-ungroup-by-ref-type: | `:vscode-ungroup-by-ref-type:` | `vscode/ungroup-by-ref-type` |
+| :vscode-unlock: | `:vscode-unlock:` | `vscode/unlock` |
+| :vscode-unmute: | `:vscode-unmute:` | `vscode/unmute` |
+| :vscode-unverified: | `:vscode-unverified:` | `vscode/unverified` |
+| :vscode-variable-group: | `:vscode-variable-group:` | `vscode/variable-group` |
+| :vscode-verified: | `:vscode-verified:` | `vscode/verified` |
+| :vscode-verified-filled: | `:vscode-verified-filled:` | `vscode/verified-filled` |
+| :vscode-versions: | `:vscode-versions:` | `vscode/versions` |
+| :vscode-vm: | `:vscode-vm:` | `vscode/vm` |
+| :vscode-vm-active: | `:vscode-vm-active:` | `vscode/vm-active` |
+| :vscode-vm-connect: | `:vscode-vm-connect:` | `vscode/vm-connect` |
+| :vscode-vm-outline: | `:vscode-vm-outline:` | `vscode/vm-outline` |
+| :vscode-vm-pending: | `:vscode-vm-pending:` | `vscode/vm-pending` |
+| :vscode-vm-running: | `:vscode-vm-running:` | `vscode/vm-running` |
+| :vscode-vm-small: | `:vscode-vm-small:` | `vscode/vm-small` |
+| :vscode-vr: | `:vscode-vr:` | `vscode/vr` |
+| :vscode-vscode: | `:vscode-vscode:` | `vscode/vscode` |
+| :vscode-vscode-insiders: | `:vscode-vscode-insiders:` | `vscode/vscode-insiders` |
+| :vscode-wand: | `:vscode-wand:` | `vscode/wand` |
+| :vscode-warning: | `:vscode-warning:` | `vscode/warning` |
+| :vscode-watch: | `:vscode-watch:` | `vscode/watch` |
+| :vscode-whitespace: | `:vscode-whitespace:` | `vscode/whitespace` |
+| :vscode-whole-word: | `:vscode-whole-word:` | `vscode/whole-word` |
+| :vscode-window: | `:vscode-window:` | `vscode/window` |
+| :vscode-window-active: | `:vscode-window-active:` | `vscode/window-active` |
+| :vscode-word-wrap: | `:vscode-word-wrap:` | `vscode/word-wrap` |
+| :vscode-workspace-trusted: | `:vscode-workspace-trusted:` | `vscode/workspace-trusted` |
+| :vscode-workspace-unknown: | `:vscode-workspace-unknown:` | `vscode/workspace-unknown` |
+| :vscode-workspace-untrusted: | `:vscode-workspace-untrusted:` | `vscode/workspace-untrusted` |
+| :vscode-worktree: | `:vscode-worktree:` | `vscode/worktree` |
+| :vscode-worktree-small: | `:vscode-worktree-small:` | `vscode/worktree-small` |
+| :vscode-zoom-in: | `:vscode-zoom-in:` | `vscode/zoom-in` |
+| :vscode-zoom-out: | `:vscode-zoom-out:` | `vscode/zoom-out` |
diff --git a/inline_badges.py b/inline_badges.py
new file mode 100644
index 0000000..99ca33e
--- /dev/null
+++ b/inline_badges.py
@@ -0,0 +1,49 @@
+from __future__ import annotations
+
+import re
+from html import escape
+
+from markdown.extensions import Extension
+from markdown.preprocessors import Preprocessor
+
+SHORTCODE_RE = re.compile(r"", re.I)
+
+class BadgePreprocessor(Preprocessor):
+ def run(self, lines: list[str]) -> list[str]:
+ return [SHORTCODE_RE.sub(self._replace, line) for line in lines]
+
+ def _replace(self, match: re.Match[str]) -> str:
+ kind, args = match.groups()
+ args = args.strip()
+
+ if kind == "version":
+ return _badge(":material-tag-outline:", escape(args))
+
+ if kind == "default":
+ value = escape(args or "none")
+ return _badge(":material-water:", f"{value}")
+
+ if kind == "flag" and args == "experimental":
+ return _badge(":material-test-tube:")
+
+ return match.group(0)
+
+
+# Формирует HTML-разметку бейджа. Иконки остаются Zensical-шорткодами
+# и рендерятся штатным `pymdownx.emoji` на следующем этапе обработки Markdown.
+def _badge(icon: str, text: str = "") -> str:
+ return "".join([
+ '',
+ f'{icon}',
+ *([f'{text}'] if text else []),
+ '',
+ ])
+
+
+class InlineBadgeExtension(Extension):
+ def extendMarkdown(self, md):
+ md.preprocessors.register(BadgePreprocessor(md), "inline_badges", 175)
+
+
+def makeExtension(**kwargs):
+ return InlineBadgeExtension(**kwargs)
diff --git a/mkdocs.yml b/mkdocs.yml
deleted file mode 100644
index 4f0a8e6..0000000
--- a/mkdocs.yml
+++ /dev/null
@@ -1,142 +0,0 @@
-site_name: Документация
-site_description: Описание проекта и его компонентов
-site_author: Иван Иванов
-copyright: Иван Иванов © 2026, MIT License
-
-repo_name: Репозиторий
-repo_url: https://git.axenov.dev/anthony/mkdocs-boilerplate
-edit_uri: src/branch/master/content/
-remote_branch: master
-
-docs_dir: ./content
-use_directory_urls: false
-watch:
- - content
- - snippets
-extra_css:
- - css/custom.css
-# extra_javascript:
-# - https://unpkg.com/ionicons@7.1.0/dist/ionicons/ionicons.js
-
-extra:
- homepage: /docs
- logo: assets/img/favicon/logo.png
- favicon: assets/img/favicon/logo.png
- social:
- - name: Telegram
- icon: simple/telegram
- link: https://t.me/
- - name: YouTube
- icon: simple/youtube
- link: https://www.youtube.com/
- alternate:
- - name: Русский
- link: /
- lang: ru
- - name: English
- link: /en/
- lang: en
-
-theme:
- name: 'material'
- language: ru
- custom_dir: overrides
- features:
- - content.action.edit
- - content.tabs.link
- - navigation.footer
- - navigation.indexes
- - navigation.path
- - navigation.sections
- # - navigation.expand
- - navigation.tabs
- - navigation.top
- - navigation.tracking
- - search.suggest
- - toc.follow
- icon:
- repo: simple/github
- edit: material/pencil
- view: material/eye
- annotation: material/chevron-right-circle
- palette:
- # Автотема
- - media: "(prefers-color-scheme)"
- toggle:
- icon: material/brightness-auto
- name: Включить тёмную тему
- # Тёмная тема
- - scheme: slate
- media: "(prefers-color-scheme: light)"
- accent: teal
- primary: black
- toggle:
- name: Включить светлую тему
- icon: material/weather-sunny
- # Светлая тема
- - scheme: default
- media: "(prefers-color-scheme: dark)"
- accent: teal
- primary: teal
- toggle:
- name: Предпочесть системную тему
- icon: material/weather-night
-
-plugins:
- - minify:
- minify_html: true
- - tags:
- listings: true
- tags_hierarchy: true
- tags_hierarchy_separator: /
- tags_name_property: keywords
- # shadow: true
- export: true
- listings_toc: true
- - social:
- cards_layout_options:
- background_color: teal
- background_image: null
- - search:
- separator: '[\s\-\.]+'
- # indexing: 'full'
-
-validation:
- omitted_files: warn
- absolute_links: warn
- unrecognized_links: warn
- anchors: warn
-
-markdown_extensions:
- - admonition
- - attr_list
- - md_in_html
- - footnotes
- - pymdownx.details
- - pymdownx.superfences
- - pymdownx.tasklist:
- clickable_checkbox: false
- - pymdownx.snippets:
- base_path: snippets
- # auto_append:
- # - abbr.md
- - toc:
- permalink: true
- - pymdownx.tabbed:
- alternate_style: true
- - pymdownx.emoji:
- emoji_index: !!python/name:material.extensions.emoji.twemoji
- emoji_generator: !!python/name:material.extensions.emoji.to_svg
- options:
- custom_icons:
- - overrides/.icons
-
-nav:
- - index.md
- - "Раздел 1":
- - part1/page1.md
- - part1/page2.md
- - "Доп. сведения":
- - vscode-icons.md # debug
- - glossary.md
- - tags.md
diff --git a/snippets/config_file_path.md b/snippets/config_file_path.md
index 32282ff..cec4078 100644
--- a/snippets/config_file_path.md
+++ b/snippets/config_file_path.md
@@ -1,4 +1,4 @@
Расположение файла конфигурации:
-- :fontawesome-brands-windows: Windows: `%USERPROFILE%/.koda/config.yaml`
-- :simple-linux: Linux / :simple-apple: MacOS: `$HOME/.koda/config.yaml`
+- :fontawesome-brands-windows: Windows: `%USERPROFILE%/.example/config.yaml`
+- :simple-linux: Linux / :simple-apple: MacOS: `$HOME/.example/config.yaml`
diff --git a/zensical.toml b/zensical.toml
new file mode 100644
index 0000000..d5123a4
--- /dev/null
+++ b/zensical.toml
@@ -0,0 +1,211 @@
+# https://zensical.org/docs/setup/basics
+
+[project]
+site_name = "Документация"
+site_url = "https://example.com"
+site_description = "Описание проекта и его компонентов"
+site_author = "Иван Иванов"
+copyright = "Иван Иванов © 2026, MIT License"
+# copyright = "Иван Иванов © 2026, MIT License | Настройки cookie"
+# repo_url = "https://git.axenov.dev/anthony/zensical-boilerplate"
+# repo_name = "anthony/zensical-boilerplate"
+# edit_uri = "src/branch/master/content/"
+
+docs_dir = "./content"
+site_dir = "./site"
+use_directory_urls = false
+dev_addr = "localhost:8000"
+watch = ["content", "snippets"]
+extra_css = ["_css/extra.css"]
+# extra_javascript = [
+# "_js/extra.js",
+# "https://unpkg.com/ionicons@7.1.0/dist/ionicons/ionicons.js",
+# ]
+
+nav = [
+ "index.md",
+ {"Раздел 1" = [
+ "part1/page1.md",
+ "part1/page2.md",
+ ]},
+ # {"Debug" = [
+ # "vscode-icons.md",
+ # "sandbox.md",
+ # ]},
+]
+
+[project.validation] # валидация контента при сборке
+invalid_links = true # битые ссылки
+invalid_link_anchors = true # битые якоря
+
+[project.extra]
+homepage = "/index.html" # ссылка на логотипе
+generator = false # убрать из футера ссылку на Zensical
+
+# [project.extra.consent] # предупреждение о куках
+# title = "Уведомление о сookies"
+# description = """
+# Мы используем cookie-файлы для улучшения пользовательского опыта и сбора статистики.
+# Для получения дополнительной информации вы можете ознакомиться с нашей Политикой использования cookie-файлов.
+# """
+# actions = [
+# "accept",
+# # "reject,
+# ]
+
+# [project.extra.analytics.feedback]
+# title = "Полезна ли эта страница?"
+
+# [[project.extra.analytics.feedback.ratings]]
+# icon = "material/emoticon-happy-outline"
+# name = "Да, всё понятно"
+# data = 1
+# note = "Спасибо за отзыв!"
+
+# [[project.extra.analytics.feedback.ratings]]
+# icon = "material/emoticon-sad-outline"
+# name = "Нет, нужны уточнения"
+# data = 0
+# note = "Спасибо за отзыв!"
+
+[[project.extra.social]] # соц. кнопка в футере
+name = "Новостной канал в Telegram"
+icon = "simple/telegram"
+link = "https://t.me/"
+
+[[project.extra.social]] # соц. кнопка в футере
+name = "Сообщество в Telegram"
+icon = "simple/telegram"
+link = "https://t.me/"
+
+[[project.extra.social]] # соц. кнопка в футере
+name = "YouTube"
+icon = "simple/youtube"
+link = "https://www.youtube.com/"
+
+[[project.extra.social]] # соц. кнопка в футере
+name = "GitHub"
+icon = "fontawesome/brands/git"
+link = "https://git.axenov.dev/anthony/zensical-boilerplate"
+
+[project.extra.status]
+beta = "Нестабильный функционал"
+
+[project.theme] # общие настройки темы
+custom_dir = "./overrides"
+language = "ru"
+logo = "/_assets/logo-mid.png" # относительно docs_dir
+# favicon = "/_assets/favicon-32x32.png" # относительно docs_dir
+features = [
+ # "header.autohide", # скрывать заголовок при скролле
+ "content.code.annotate",
+ "content.code.copy",
+ "content.code.select",
+ "content.footnote.tooltips",
+ "content.tabs.link",
+ "content.tooltips",
+
+ # "navigation.instant",
+ # "navigation.instant.prefetch",
+ # "navigation.instant.progress",
+ "navigation.tabs", # 1 уровень навигации превращаются в табы в шапке
+ # "navigation.tabs.sticky", # не скрывать табы под заголовком при скролле
+ "navigation.sections", # заголовки секций меню сворачиваются или статичны
+ "navigation.tracking", # подстановка якорей страницы в урлу при скролле
+ # "navigation.expand", # развёрнутые подменю по умолчанию
+ "navigation.path", # хлебные крошки над H1 страницы
+ "navigation.indexes", # если есть index.md, то пункт меню разворачиваблен и открывает свой index.md
+ "navigation.footer", # прошлый/следующий документ в футере
+ "navigation.top", # кнопка возврата наверх
+
+ "toc.follow", # подсветка загловков содержания при скролле
+ "search.highlight", # подсвечивать поисковый запрос на странице при переходе из поиска
+
+ # "content.action.edit", # редактирование страницы в repo_url
+ # "content.action.view", # исходник страницы в repo_url
+]
+
+[project.theme.font]
+text = "Inter"
+code = "Jetbrains Mono"
+
+[[project.theme.palette]] # Светлая тема
+media = "(prefers-color-scheme: light)"
+scheme = "default"
+# primary = "white"
+accent = "teal"
+toggle.icon = "lucide/moon"
+toggle.name = "Включить тёмную тему"
+
+[[project.theme.palette]] # Тёмная тема
+media = "(prefers-color-scheme: dark)"
+scheme = "slate"
+# primary = "black"
+accent = "teal"
+toggle.icon = "lucide/sun"
+toggle.name = "Включить светлую тему"
+
+[project.theme.icon]
+repo = "fontawesome/brands/github"
+edit = "material/pencil"
+view = "material/eye"
+
+[project.theme.icon.tag]
+default = "lucide/hash"
+html = "fontawesome/brands/html5"
+js = "fontawesome/brands/js"
+css = "fontawesome/brands/css3"
+vscode = "material/microsoft-visual-studio-code"
+intellij = "simple/jetbrains"
+jetbrains = "simple/jetbrains"
+cli = "material/console"
+brain = "material/brain"
+
+[project.extra.tags]
+HTML5 = "html"
+JavaScript = "js"
+CSS = "css"
+VSCode = "vscode"
+"VS Code" = "vscode"
+IntelliJ = "intellij"
+JetBrains = "jetbrains"
+CLI = "cli"
+"модель" = "brain"
+"модели" = "brain"
+"ии" = "brain"
+AI = "brain"
+LLM = "brain"
+
+[project.markdown_extensions.pymdownx.highlight]
+anchor_linenums = true
+pygments_lang_class = true
+
+[project.markdown_extensions.pymdownx.emoji]
+emoji_index = "zensical.extensions.emoji.twemoji"
+emoji_generator = "zensical.extensions.emoji.to_svg"
+options.custom_icons = ["./overrides/.icons"]
+
+[project.markdown_extensions.pymdownx.snippets]
+base_path = "./snippets"
+
+[project.markdown_extensions.pymdownx.tabbed]
+alternate_style = true
+
+[project.markdown_extensions.toc]
+permalink = true
+# title = "На этой странице:"
+
+[project.markdown_extensions.abbr]
+[project.markdown_extensions.admonition]
+[project.markdown_extensions.attr_list]
+[project.markdown_extensions.def_list]
+[project.markdown_extensions.footnotes]
+[project.markdown_extensions.md_in_html]
+[project.markdown_extensions.inline_badges]
+[project.markdown_extensions.pymdownx.inlinehilite]
+[project.markdown_extensions.pymdownx.superfences]
+# [project.markdown_extensions.pymdownx.keys]
+[project.markdown_extensions.pymdownx.details]
+[project.markdown_extensions.pymdownx.caret]
+[project.markdown_extensions.pymdownx.mark]
+[project.markdown_extensions.pymdownx.tilde]