---
title: Settings
nav_order: 2
---
# Settings

- [English](#english)
- [Русский](#русский)

## English

The plugin offers the following configuration options, accessible via Obsidian's settings panel.

### Checkbox Symbol Configuration (Advanced: JSON)

This section allows for fine-grained control over how different symbols within checkboxes `[ ]` are interpreted by the plugin. **Note:** These settings replace the previous, simpler "X-Only Mode".

**Warning:** The symbol lists require valid JSON array format. Use double quotes for strings within the array (e.g., `["x", " "]`). Invalid JSON may cause errors.

-   **Checked Symbols**
    -   **Description:** Define symbols that should be treated as "checked". Enter symbols as a JSON array of single-character strings.
    -   **Example:** `["x", "✓", "/"]`
    -   **Default:** `["x"]`
-   **Unchecked Symbols**
    -   **Description:** Define symbols that should be treated as "unchecked". Enter symbols as a JSON array of single-character strings.
    -   **Example:** `[" ", "?"]`
    -   **Default:** `[" "]`
-   **Ignore Symbols**
    -   **Description:** Define symbols that should be completely ignored by the plugin's synchronization logic. Checkboxes with these symbols will not be modified by parent/child updates, nor will they influence the parent's state. Enter symbols as a JSON array of single-character strings.
    -   **Example:** `["-", "~"]`
    -   **Default:** `[]`
-   **Unknown Symbol Policy**
    -   **Description:** Determines how to treat checkbox symbols that are not explicitly listed in the Checked, Unchecked, or Ignore lists.
    -   **Options:**
        -   `Treat as Checked`: Unknown symbols count as checked.
        -   `Treat as Unchecked`: Unknown symbols count as unchecked.
        -   `Ignore`: Unknown symbols are ignored (like those in the Ignore Symbols list).
    -   **Default:** `Treat as Unchecked`

### Synchronization Behavior

These settings control when and how the synchronization logic runs.

-   **Update parent checkbox state automatically**
    -   **Enabled (Default):** The state of a parent checkbox is automatically updated based on the state of its children (checked if all applicable children are checked, unchecked otherwise).
    -   **Disabled:** The parent checkbox state is not automatically changed when child states change. Manual changes to a parent *can* still affect children if the setting below is enabled.
-   **Update child checkbox state automatically**
    -   **Enabled (Default):** Manually changing the state of a parent checkbox automatically updates the state of all its direct and nested children (that are not ignored) to match.
    -   **Disabled:** Manually changing a parent checkbox does not affect its children's state.
-   **Enable automatic file synchronization**
    -   **Enabled:** Automatically synchronizes checkbox states when files are loaded/opened and immediately after plugin settings are applied. This ensures consistency but might have performance implications on very large vaults or files. *(Requires Obsidian restart or settings reload to take full effect)*.
    -   **Disabled (Default):** Synchronization only occurs when you *manually* change a checkbox's state within Obsidian. This is the default behavior to minimize potential performance impact.

### Dev

-   **Enable console log**
    -   **Description:** Toggles detailed logging to the developer console. When enabled, the plugin will output more information about its operations, which can be helpful for troubleshooting or understanding its behavior.
    -   **Enabled:** Debug logs are printed to the console.
    -   **Disabled (Default):** Debug logs are suppressed.

### Actions and Status

-   **Error Display:** An area below the settings displays any errors encountered, such as invalid JSON in the symbol configuration.
-   **Buttons:**
    -   `Apply Changes`: Saves and applies any modified settings. Enabled only when changes are detected.
    -   `Reset changes`: Reverts any modifications back to the last applied settings state.
    -   `Reset to defaults`: Resets all settings to their default values and applies them immediately.

---

## Русский

Плагин предлагает следующие параметры конфигурации, доступные через панель настроек Obsidian.

### Конфигурация Символов Чекбоксов (Продвинутый: JSON)

Этот раздел позволяет детально настроить, как плагин интерпретирует различные символы внутри чекбоксов `[ ]`. **Примечание:** Эти настройки заменяют предыдущий, более простой режим "X-Only".

**Предупреждение:** Списки символов требуют валидного формата JSON-массива. Используйте двойные кавычки для строк внутри массива (например, `["x", " "]`). Невалидный JSON может вызвать ошибки.

-   **Символы "Отмечено" (Checked Symbols)**
    -   **Описание:** Определите символы, которые должны считаться "отмеченными". Введите символы как JSON-массив строк из одного символа.
    -   **Пример:** `["x", "✓", "/"]`
    -   **По умолчанию:** `["x"]`
-   **Символы "Не отмечено" (Unchecked Symbols)**
    -   **Описание:** Определите символы, которые должны считаться "не отмеченными". Введите символы как JSON-массив строк из одного символа.
    -   **Пример:** `[" ", "?"]`
    -   **По умолчанию:** `[" "]`
-   **Игнорируемые Символы (Ignore Symbols)**
    -   **Описание:** Определите символы, которые должны полностью игнорироваться логикой синхронизации плагина. Чекбоксы с этими символами не будут изменяться при обновлении родителя/детей и не будут влиять на состояние родителя. Введите символы как JSON-массив строк из одного символа.
    -   **Пример:** `["-", "~"]`
    -   **По умолчанию:** `[]`
-   **Политика для Неизвестных Символов (Unknown Symbol Policy)**
    -   **Описание:** Определяет, как обрабатывать символы в чекбоксах, которые явно не указаны в списках "Отмечено", "Не отмечено" или "Игнорируемые".
    -   **Опции:**
        -   `Treat as Checked` (Считать отмеченным): Неизвестные символы считаются отмеченными.
        -   `Treat as Unchecked` (Считать не отмеченным): Неизвестные символы считаются не отмеченными.
        -   `Ignore` (Игнорировать): Неизвестные символы игнорируются (как те, что в списке "Игнорируемые Символы").
    -   **По умолчанию:** `Treat as Unchecked`

### Поведение Синхронизации

Эти настройки управляют тем, когда и как запускается логика синхронизации.

-   **Автоматически обновлять состояние родительского чекбокса**
    -   **Включено (По умолчанию):** Состояние родительского чекбокса автоматически обновляется на основе состояния дочерних (отмечен, если все применимые дочерние отмечены, не отмечен в противном случае).
    -   **Отключено:** Состояние родительского чекбокса не изменяется автоматически при изменении состояния дочерних. Ручные изменения родителя *могут* влиять на дочерние, если включена настройка ниже.
-   **Автоматически обновлять состояние дочерних чекбоксов**
    -   **Включено (По умолчанию):** Ручное изменение состояния родительского чекбокса автоматически обновляет состояние всех его прямых и вложенных дочерних элементов (которые не игнорируются).
    -   **Отключено:** Ручное изменение родительского чекбокса не влияет на состояние его дочерних элементов.
-   **Включить автоматическую синхронизацию файлов**
    -   **Включено:** Автоматически синхронизирует состояния чекбоксов при загрузке/открытии файлов и сразу после применения настроек плагина. Это обеспечивает консистентность, но может влиять на производительность в очень больших хранилищах или файлах. *(Требует перезапуска Obsidian или перезагрузки настроек для полного вступления в силу)*.
    -   **Отключено (По умолчанию):** Синхронизация происходит только тогда, когда вы *вручную* изменяете состояние чекбокса в Obsidian. Это поведение по умолчанию для минимизации потенциального влияния на производительность.

### Разработка / Отладка

-   **Включить Отладочное Логирование (Enable console log)**
    -   **Описание:** Переключает вывод подробных логов в консоль разработчика. Когда включено, плагин будет выводить больше информации о своих операциях, что может быть полезно для устранения неполадок или понимания его поведения.
    -   **Включено:** Отладочные логи выводятся в консоль.
    -   **Отключено (По умолчанию):** Отладочные логи не выводятся.

### Действия и Статус

-   **Отображение Ошибок:** Область под настройками отображает любые возникшие ошибки, например, невалидный JSON в конфигурации символов.
-   **Кнопки:**
    -   `Apply Changes` (Применить изменения): Сохраняет и применяет измененные настройки. Активна только при наличии изменений.
    -   `Reset changes` (Отменить изменения): Возвращает несохраненные изменения к последнему примененному состоянию настроек.
    -   `Reset to defaults` (Сбросить по умолчанию): Сбрасывает все настройки к значениям по умолчанию и немедленно применяет их.
