summarum/README.ru.md

140 lines
8.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Summarum
[English](README.md)
**Калькулятор, который работает как блокнот.** Пишешь что думаешь — каждая строка сразу даёт ответ в правой колонке. Никаких кнопок, никакого синтаксиса формул, просто текст.
```
# Поездка в Лиссабон
билеты $420
отель $95 * 4 ночи
еда 30€ в день * 4 дня и музеи 25€
итого → $1,066.97
5 дюймов в см → 12.7 cm
100 км/ч в миль/ч → 62.14 mph
$2000 в рублях → 144,060 ₽
скидка 20% от 1500 → 1,200
сегодня + 6 недель → 22 Июля 2026
время в Токио → 14:25
```
Работает на **английском и русском одновременно**: `5 метров в см`, `20$ в евро`, `сумма` — переключать язык не нужно.
## Установка
Скачай последний `Summarum_*_x64-setup.exe` (или `arm64-setup.exe` для Windows on ARM) из [Releases](../../releases), запусти — готово. Весь установщик около 2 МБ. Дальше обновления проверяются сами.
Требования:
- **Windows 10 (1803+) или Windows 11**, 64-бит.
- **[WebView2 Runtime](https://developer.microsoft.com/en-us/microsoft-edge/webview2/)** —
уже встроен в Windows 11 и большинство обновлённых Windows 10; если отсутствует,
установщик скачает его автоматически.
- Интернет нужен только для живых курсов валют — всё остальное работает офлайн
(курсы берутся из кэша или встроенного снимка).
## Что понимает
**Обычная математика** — `2 + 2`, `8 / (45 - 20%)`, скобки, `^`, `sqrt`, `sin`,
факториалы. Точная десятичная арифметика: `0.1 + 0.2` это `0.3`, а не `0.30000000000000004`.
**Слова как операторы** — `12 плюс 4`, `20 делить на 4`, `5 и 3`. Текст вокруг
математики игнорируется: `потратил 20 на пиццу и 5 на кофе` даст 25.
**Единицы** — длина, масса, объём, площадь, температура, время, углы, данные
(`1 ГиБ в МБ`), CSS px/em, скорость, давление, энергия, мощность, частота, расход топлива:
```
6 футов в метрах 1 атм в мм рт.ст. 8 л/100км в mpg
2 часа 30 мин в мин 150 л.с. в кВт 32 px в em
```
**Деньги** — ~150 валют и топ-20 криптовалют с живыми курсами
(обновляются раз в час, кэшируются для офлайна). `$100 + 20%`, `5 eth в USD`,
`9800 рублей в долларах`.
**Проценты по-человечески** — `20% от 80`, `скидка 20% от 1500`, `5 это сколько % от 25`,
`20% от какого числа равно 30`.
**Даты и время** — `сегодня + 2 недели`, `завтра - сегодня`, `время в Нью-Йорке`,
`сейчас в unix`, `1750000000 как дата`.
**Для программистов** — `0xFF & 0x0F`, `1 << 4`, `255 в hex`, `в binary`,
плюс `в дроби` (0.75 → 3/4) и `в roman` (2026 → MMXXVI).
**Листы с переменными** — переменные (`аренда = $500`), нарастающие итоги
(`сумма`, `avg`, `prev`), заголовки `#`, комментарии `//`. Строка статуса всегда
показывает итог листа; выдели несколько строк — увидишь их сумму.
## Удобные мелочи
- **Ctrl+Alt+N** (настраивается — поле в настройках записывает нажатые клавиши)
показывает/скрывает окно из любого места. Закрытие прячет в трей.
- **Ctrl+F** (или кнопка 🔍) ищет сразу по всем листам, а не только по текущему —
клик по результату переносит прямо на нужную строку.
- **Клик по результату** копирует его. Копирование строки копирует её *вместе с ответом*
(`аренда * 3 = $1,500`). **Ctrl+Shift+C** копирует весь лист с ответами.
- **Потяни разделитель** чтобы изменить ширину колонки результатов.
- **Брось файл `.numi`, `.sum`, `.txt` или `.md`** в окно — откроется как лист.
- **Резервные копии автоматические**: ежедневный снимок всех листов (хранятся 14 дней),
удалённые листы лежат в корзине 14 дней (настраивается) — верни перетащив обратно.
Настройки → Backups откроет папку.
- **Папка данных настраивается** — укажи OneDrive/Dropbox и листы синхронизируются
между машинами.
- **Поверх всех окон** (в настройках) закрепляет окно над остальными.
- Приложение само проверяет обновления при запуске и предлагает установить —
вручную скачивать и переустанавливать не нужно.
- Светлая/тёмная тема, интерфейс en/ru, настраиваемая точность и разделители.
## Расширения
> **Внимание:** расширения запускаются как доверенные локальные скрипты с доступом к вашим файлам. Загружайте только код, который вы написали сами или полностью доверяете.
Брось `.js`-файл в папку расширений (Настройки → Extensions folder) и перезапусти.
API совместим с расширениями Numi:
```js
numi.setVariable("ндс", { double: 20 });
numi.addUnit({ id: "этаж", phrases: "этаж,этажей", baseUnitId: "meter",
format: "эт", ratio: 3 });
numi.addFunction({ id: "гипот", phrases: "гипот" },
(v) => ({ double: Math.hypot(v[0].double, v[1].double) }));
```
Тогда `5 этажей в метрах` → `15 m` и `гипот(3; 4)` → `5`.
## Баги и идеи
Открой [issue](../../issues). Строка того что написал и что ожидал увидеть — достаточно.
## Для разработчиков
Устройство движка, структура проекта и как добавлять единицы/валюты:
см. [ARCHITECTURE.ru.md](ARCHITECTURE.ru.md).
```bash
npm install
npm test # тесты движка
npm run tauri dev # запустить приложение
npm run tauri build # собрать установщик
```
Для сборки нужны:
- [Node.js](https://nodejs.org/) 22.6 или новее
- [Rust](https://rustup.rs/) (stable, MSVC toolchain)
- [Visual Studio Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/)
с компонентом «Desktop development with C++» (нужен линковщик MSVC)
- Если что-то не собирается — см. [Tauri prerequisites](https://tauri.app/start/prerequisites/)
Стек: [Tauri 2](https://tauri.app) + TypeScript + CodeMirror 6.
## Благодарность
Вдохновлён [Numi](https://numi.app) от Дмитрия Николаева —
если ты на macOS, купи его. Summarum — независимый проект, написанный с нуля для Windows.
## Лицензия
[PolyForm Noncommercial 1.0.0](LICENSE) — бесплатно для личного, образовательного и другого некоммерческого использования. Коммерческое использование (включая перепродажу или репакинг) запрещено.