CLI и шпаргалка

Last updated: 2026-10-14Конвертация в JSON, заморозка активного конфига и весь синтаксис на одном экране.

CLI и шпаргалка

Перенесено из репозитория формата — docs/spec/SPECIFICATION_RU.md, SYNX 3.7.4. Правки вносятся там.

Конвертация в JSON (опционально)

📎 Конвертация в JSON — это необязательная возможность. Она нужна только если вы хотите передать данные в систему, которая понимает исключительно JSON (сторонний API, legacy-код, и т.д.).

6.1 Через VS Code (расширение SYNX)

Если установлено расширение SYNX for VS Code:

  1. Откройте .synx файл
  2. Нажмите ПКМ (правой кнопкой мыши) по файлу
  3. Выберите «Конвертировать в JSON»
  4. Готовый .json файл появится рядом

6.2 Через терминал (CLI)

bash
# Конвертировать в JSON и вывести в консоль
synx to-json config.synx

# Конвертировать и сохранить в файл
synx to-json config.synx -o config.json

# Заморозить !active конфиг в статичный .synx (без функций)
synx freeze active_config.synx -o static_config.synx

6.3 Программно (если очень нужно)

python
import json
from synx import Synx

data = Synx.load('config.synx')
json_string = json.dumps(data, ensure_ascii=False, indent=2)
javascript
const Synx = require('@aperturesyndicate/synx-format');
const data = Synx.loadSync('config.synx');
const jsonString = JSON.stringify(data, null, 2);

Но ещё раз: это не нужно для работы. Ваш код читает .synx напрямую.

Краткая шпаргалка

КЛЮЧ ЗНАЧЕНИЕ                    → простая пара
ключ                             → пустой объект (группа)
  вложенный_ключ значение        → вложенность (2 пробела)
ключ |                           → многострочный текст
  строка 1                         (блок)
  строка 2
список                           → список
  - элемент 1
  - элемент 2
# комментарий                    → однострочный комментарий
// комментарий                   → однострочный комментарий

─── Директивы ──────────────────────────────────
!active                          → включить маркеры + ограничения
!lock                            → документ только для чтения
!include ./файл.synx             → включить на уровне корня
!tool                            → конверт вызова инструмента
!schema                          → экспорт JSON Schema
!llm                             → флаг метаданных LLM

─── Маркеры (требуют !active) ──────────────────
ключ:env VAR                     → переменная окружения
ключ:env:default:X VAR           → env с дефолтом
ключ:calc A * B                  → арифметика
ключ:alias другой_ключ           → ссылка на другой ключ
ключ:secret значение             → скрытое значение
ключ:default dark                → значение по умолчанию
ключ:random                      → случайный элемент
ключ:random 70 20 10             → взвешенный рандом
ключ:unique                      → дедупликация списка
ключ:include ./файл.synx         → подключить файл
ключ:import ./файл.synx          → псевдоним :include
ключ:template Привет, {имя}!     → интерполяция строк
ключ:split red, green, blue      → строка в массив
ключ:join:slash                  → массив в строку
ключ:geo                         → значение по региону
ключ:ref:calc:*2 база            → разрешить и цепочка
ключ:i18n                        → перевод по локали
ключ:clamp:0:100 150             → числовое ограничение
ключ:round:2 19.999              → числовое округление
ключ:format:%.2f 19.9            → форматирование printf
ключ:map:таблица_поиска          → таблица подстановок
ключ:once:uuid                   → сгенерировать, кэшировать
ключ:version:>=:1.0.0 ver        → сравнение версий
ключ:watch ./flags.synx          → чтение внешнего файла
ключ:fallback:./default.synx путь → резервный файл
ключ:spam:5:60 endpoint          → ограничение частоты
ключ:prompt:label поддерево      → метка для LLM
ключ:vision ./photo.png          → метаданные изображения
ключ:audio ./clip.mp3            → метаданные аудио
ключ:inherit родитель            → наследование объектов

─── Ограничения (требуют !active) ──────────────
ключ[min:N, max:N]               → ограничения длины/значения
ключ[type:int]                   → тип данных
ключ[required]                   → обязательное поле
ключ[enum:a|b|c]                 → допустимые значения
ключ[pattern:regex]              → regex-валидация
ключ[readonly]                   → только для чтения
CLI и шпаргалка | AS Docs