# Finance Tracker for Obsidian Плагин для управления личными финансами прямо в Obsidian. Данные хранятся в обычной markdown-таблице, а плагин рендерит ниже неё **отдельные секции-карточки**: сколько потрачено за месяц, средний расход в день, сколько отложено в сбережения и bar-график трат по категориям. ## Возможности - 📝 **Таблица — просто markdown** — источник данных остаётся обычной md-таблицей, плагин её не трогает и не скрывает. - 💸 **Потрачено за месяц** и **средний расход в день** — расходы без сбережений. - 🐷 **Накопления в разных валютах** — карточка со списком накоплений из frontmatter `totalSavings` (например, `0.40 ETH`, `1500 USD`), а мелкой строкой — сколько отложено за месяц. - 📈 **Bar-график трат по категориям** — горизонтальные бары с процентами и стабильными цветами категорий. - 📊 **Расходы по дням** — минималистичный вертикальный bar-график трат по дням месяца: видно, когда и сколько было потрачено. - 🎨 **UI в стиле Obsidian** — использует CSS-переменные темы (тёмная и светлая). ## Как пользоваться 1. Установите плагин и включите его. 2. Нажмите на иконку кошелька в ленте слева или выполните команду **«Создать финансовую заметку»** — будет создана заметка `Финансы.md` с готовой таблицей. 3. Записывайте операции в таблицу. Карточки обновятся автоматически. ## Формат таблицы Таблица должна находиться в заметке с frontmatter `finance: true`. Колонки распознаются по заголовкам (рус./англ.): | Колонка | Заголовки (пример) | Описание | | --------- | ----------------------- | ------------------------------------- | | День | `День`, `Day` | День месяца (1–31) | | Тип | `Тип`, `Type` | `Доход` / `Расход` (приход/уход) | | Категория | `Категория`, `Category` | Например: Продукты, Сбережения | | Название | `Название`, `Name` | Что за операция | | Сумма | `Сумма`, `Amount` | Число; знак «−» = расход, «+» = доход | ```md --- finance: true currency: "₽" --- | День | Тип | Категория | Название | Сумма | | :--: | :----: | :--------- | :------------------- | ----: | | 01 | Доход | Зарплата | Зарплата за месяц | 50000 | | 03 | Расход | Продукты | Продукты за неделю | -1200 | | 08 | Расход | Сбережения | Перевод в сбережения | -2000 | ``` Порядок колонок может быть любым, «Сумма» обязательна. Если тип не указан, он определяется по знаку суммы. Валюта задаётся в frontmatter (`currency`). ### Сбережения Расходы в категориях-сбережениях не попадают в «Потрачено за месяц» и в bar-график — они суммируются в «отложено за месяц» и показываются мелкой строкой в карточке накоплений. По умолчанию распознаются категории, содержащие: _сбережен_, _накоплен_, _savings_, _сэйвинг_, _вклад_, _инвест_, _копилка_. Можно задать свою категорию в frontmatter: ```yaml --- finance: true currency: "₽" savingsCategory: "Сбережения" --- ``` Общие накопления на текущий момент задаются в frontmatter `totalSavings` — можно одной суммой в базовой валюте, а можно списком в разных валютах (каждая запись — `сумма ВАЛЮТА`): ```yaml --- finance: true currency: "₽" totalSavings: - 0.40 ETH - 1500 USD - 2500 BYN --- ``` Эти значения показываются крупно в карточке «Всего накоплено», а «отложено в сбережения за месяц» — мелким шрифтом под ними. Если `totalSavings` не задан, карточка просто показывает сумму, отложенную за месяц. ### Расходы по дням После bar-графика категорий выводится минималистичный график расходов по дням месяца (без категорий-сбережений, как и график категорий). Показываются дни с первого по последний день месяца, в котором была трата; у дней без трат столбика нет. Наведите курсор на столбик, чтобы увидеть точную сумму за день. ## Разработка ```bash npm install npm run dev # watch-сборка в out/main.js npm run build # production-сборка с проверкой типов ``` ## Лицензия MIT