Solve

by Liam Riddell
5
4
3
2
1
Score: 68/100

Description

Category: Productivity Tools

The Solve plugin enhances Obsidian by enabling real-time equation processing and pattern recognition. It supports a range of functionalities such as arithmetic calculations, date manipulation, and percentage calculations. Users can seamlessly calculate dates (e.g., adding or subtracting days), perform basic arithmetic, and convert units of measurement, all within their notes. The plugin also integrates with the Obsidian Style Settings Plugin for custom theming. With more features like advanced mathematical functions and community collaboration support, Solve transforms note-taking by adding precision and dynamic functionality to your workflows.

Reviews

No reviews yet.

Stats

128
stars
28,485
downloads
4
forks
1,094
days
1
days
7
days
23
total PRs
1
open PRs
0
closed PRs
22
merged PRs
65
total issues
4
open issues
61
closed issues
4
commits

Latest Version

7 days ago

Changelog

Solve 2.0.1

A small fix, brought in from a solve-engine patch release.

Fixed

Markdown list markers were being read as arithmetic. A line starting with -, * or + followed by a number, such as - 100 + 20 in a bulleted list, was evaluated as an expression instead of being left alone as a list item. The three markers did not even agree with each other about the same kind of line, which is what made it a bug rather than an edge case: - answered -80, * produced an error, and + happened to answer 120 by coincidence rather than by rule.

The engine now recognises a list marker for what it is and evaluates the text after it, so - 100 + 20 reads as a bulleted line containing the expression 100 + 20, not as -100 + 20.

Full detail in solve-engine's 1.0.2 release.

README file from

Github

A calculator built into your notes.

Type an expression on any line and the answer appears next to it as you type. Dates, units, percentages, currency and plain arithmetic all work in the same note you are already writing in.

GitHub release (latest SemVer) License

Syntax reference  •  solve-engine

Solve 2.0 is here. The engine has been rewritten from scratch. The old Ohm.js grammar is gone, replaced by a lexer, a parser and a bytecode virtual machine, published separately as solve-engine. Results are faster and more consistent, and there is now a proper syntax reference in place of the old wiki. See the release notes for the full list of changes.

Going forward, new syntax and engine features ship through solve-engine. This repository consumes it as a dependency and updates automatically when a new version is released. Engine feature requests and syntax questions belong there. This repository is for the Obsidian integration itself: settings, rendering and editor behaviour.

Solve embeds solve-engine, a standalone natural language expression engine, in Obsidian's editor. Every line is evaluated as you type, and the result appears next to it without leaving the note.

10 + 20 / 200 * 4              // = 10.40
days since 01/01/2023          // = 233 days
01/01/2023 + 20 days           // = Sat Jan 21 2023
15% of 2400                    // = 360
100cm + 2m                     // = 300.00 cm
$100 + $250                    // = $350.00

The syntax reference is the full list of what the engine understands: arithmetic, dates, percentages, units, currency, dice, conditionals and more. Everything on that page works the same way inside a note.

Install

From Obsidian

Open Settings, go to Community plugins, then Browse. Search for "Solve" and click Install, then Enable.

Manually

Copy main.js, styles.css and manifest.json into VaultFolder/.obsidian/plugins/solve/. Reload Obsidian and enable the plugin from Community plugins.

How it works

Each line is evaluated independently as you type. A result that resolves immediately, such as arithmetic, dates or units, renders inline right away. A result that depends on an async source, such as currency conversion or live weather, shows a pending state until it resolves. Click a result to commit it into the line as text.

Evaluation, caching and formatting all come from solve-engine. This repository wires that engine into Obsidian's editor (CodeMirror 6) and exposes the parts of it that make sense as user-facing settings: safety limits, result formatting and inline solve commit behaviour. See solve-engine for the engine itself, including its architecture and design notes.

License

MIT. See LICENSE.md.

If it is useful to you, sponsorship or a coffee is welcome and never expected.