summarum/README.ru.md

11 KiB
Raw Blame History

Summarum

English

Калькулятор, который работает как блокнот. Пишешь что думаешь — каждая строка сразу даёт ответ в правой колонке. Никаких кнопок, никакого синтаксиса формул, просто текст.

# Поездка в Лиссабон
билеты $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
1000 USD в EUR на 2024-01-01   → € 917.30
? * 1.2 = 1000                 → 833.33
AAPL в USD                     → $213.55
дней до 2027-01-01             → 183 day
график                         → ▂▄▇█▆

Работает на английском и русском одновременно: 5 метров в см, 20$ в евро, сумма — переключать язык не нужно.

Установка

Скачай последний Summarum_*_x64-setup.exe (или arm64-setup.exe для Windows on ARM) из Releases, запусти — готово. Весь установщик около 2 МБ. Дальше обновления проверяются сами.

Требования:

  • Windows 10 (1803+) или Windows 11, 64-бит.
  • WebView2 Runtime — уже встроен в Windows 11 и большинство обновлённых Windows 10; если отсутствует, установщик скачает его автоматически.
  • Интернет нужен только для живых курсов и рыночных данных — всё остальное работает офлайн (курсы берутся из кэша или встроенного снимка).

Что понимает

Обычная математика — 2 + 2, 8 / (45 - 20%), скобки, ^, sqrt, sin, факториалы, случайное(), случайное(1; 6). Точная десятичная арифметика: 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 рублей в долларах.

Живые рыночные данные — котировки акций и сырья обновляются каждые 15 минут: 100 AAPL в USD, 2 GC=F в USD (фьючерс на золото), MSFT + GOOGL.

Исторические курсы — 1000 USD в EUR на 2024-01-01 запрашивает курс ЕЦБ за этот день (через frankfurter.app) и кэширует его навсегда.

Проценты по-человечески — 20% от 80, скидка 20% от 1500, 5 это сколько % от 25, 20% от какого числа равно 30.

Даты и время — сегодня + 2 недели, завтра - сегодня, время в Нью-Йорке, сейчас в unix, 1750000000 как дата. ISO-даты: 2024-01-01 + 30 дней, дней до 2027-01-01, дней с 2020-03-15.

Поиск неизвестного — поставь ? на место неизвестного и = с нужным результатом: ? * 1.2 = 1000 → 833.33, 100 - ? = 30 → 70. Работает для любых выражений, решаемых линейным методом или бисекцией.

Для программистов — 0xFF & 0x0F, 1 << 4, 255 в hex, в binary, плюс в дроби (0.75 → 3/4) и в roman (2026 → MMXXVI).

Листы с переменными — переменные (аренда = $500), нарастающие итоги (сумма, avg, prev, количество, минимум, максимум, произведение), заголовки #, комментарии //. Строка статуса всегда показывает итог листа; выдели несколько строк — увидишь их сумму. Добавь график в конце блока чтобы нарисовать спарклайн.

Удобные мелочи

  • Ctrl+Alt+N (настраивается — поле в настройках записывает нажатые клавиши) показывает/скрывает окно из любого места. Закрытие прячет в трей.
  • Ctrl+W закрывает текущий лист (спрашивает подтверждение если есть содержимое).
  • Ctrl+F (или кнопка 🔍) ищет сразу по всем листам — по тексту или по значению результата: >1000, <50, =100, ~100 (±1%). Клик по результату — переходишь туда.
  • Клик по результату копирует его. Копирование строки копирует её вместе с ответом (аренда * 3 = $1,500). Ctrl+Shift+C копирует весь лист с ответами.
  • Экспорт картинкой — меню ⤓ содержит «Скопировать картинкой»: рендерит лист в PNG и кладёт в буфер обмена (при ошибке предлагает сохранить файл).
  • Потяни разделитель чтобы изменить ширину колонки результатов.
  • Брось файл .numi, .sum, .txt или .md в окно — откроется как лист.
  • Закрепление и порядок листов — нажми значок булавки на любом листе в сайдбаре чтобы закрепить его вверху; кнопки ↑↓ меняют порядок.
  • Резервные копии автоматические: ежедневный снимок всех листов (хранятся 14 дней), удалённые листы лежат в корзине 14 дней (настраивается) — верни перетащив обратно. Настройки → Backups откроет папку.
  • Папка данных настраивается — укажи OneDrive/Dropbox и листы синхронизируются между машинами.
  • Поверх всех окон (в настройках) закрепляет окно над остальными.
  • Приложение само проверяет обновления при запуске и предлагает установить — вручную скачивать и переустанавливать не нужно.
  • Светлая/тёмная тема, интерфейс en/ru, настраиваемая точность и разделители.

Расширения

Внимание: расширения запускаются как доверенные локальные скрипты с доступом к вашим файлам. Загружайте только код, который вы написали сами или полностью доверяете.

Брось .js-файл в папку расширений (Настройки → Extensions folder) и перезапусти. API совместим с расширениями Numi:

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. Строка того что написал и что ожидал увидеть — достаточно.

Для разработчиков

Устройство движка, структура проекта и как добавлять единицы/валюты: см. ARCHITECTURE.ru.md.

npm install
npm test               # тесты движка (113 кейсов)
npm run tauri dev      # запустить приложение
npm run tauri build    # собрать установщик

Для сборки нужны:

Стек: Tauri 2 + TypeScript + CodeMirror 6.

Благодарность

Вдохновлён Numi от Дмитрия Николаева — если ты на macOS, купи его. Summarum — независимый проект, написанный с нуля для Windows.

Лицензия

PolyForm Noncommercial 1.0.0 — бесплатно для личного, образовательного и другого некоммерческого использования. Коммерческое использование (включая перепродажу или репакинг) запрещено.