---
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.

### File Scope & Filtering
-	**File ignore Rules (.gitignore style)**
	- This setting allows you to define which files and folders Checkbox Sync should process. If the list of patterns is empty, the plugin will operate on all markdown files in your vault.
	- The filtering uses **.gitignore syntax** and is powered by the [`ignore`](https://github.com/kaelzhang/node-ignore) library.


### 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. Это поведение по умолчанию для минимизации потенциального влияния на производительность.

### File Scope & Filtering
-   **Правила игнорирования файлов (стиль .gitignore)**   
    - Этот параметр позволяет определить, какие файлы и папки должен обрабатывать Checkbox Sync. Если список шаблонов пуст, плагин будет обрабатывать все файлы Markdown в вашем хранилище.
    - Фильтрация использует **синтаксис .gitignore** и работает на основе библиотеки [`ignore`](https://github.com/kaelzhang/node-ignore). 


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

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

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

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