gtg922r57k downloadsTurn any code block into an advanced calculator. Evaluate math expressions on each line of a code block, including units, currency, and optional TeX rendering.
Numerals gives you the power of an advanced calculator inside a math code block, complete with currencies, units, variables, and math functions! Now you can perform calculations inline with your notes, and see both the input and the evaluated result. Numerals works with Live Preview as well as Reader view, and offers TeX-style rendering or Syntax Highlighting as well as auto-completion suggestions. Comments or explanations can be added with #, and important results can be indicated with => after the calculation.

To get started, simply install and enable the plugin. Add a math code block with your desired calculations:
```math
20 mi / 4 hr to m/s
```
1ft + 12in → 2ft20 mi / 4 hr to m/s → 2.235 m / s100 km/hr in mi/hr → 62.137 mi / hr9.81 m/s^2 * 100 kg * 40 m → 39.24 kJ$1,000 * 2 → 2,000 USD£10 + £0.75 → 10.75 GBP$100/hr * 3days → 7,200 USD₿sqrt, sin, cos, abs, log, etc (see mathjs for full list)0xff + 0b100 → 259hex(0xff + 0b100) → "0x103"e, i, pi, speedOfLight, gravitationConstant, vacuumImpedance, avogadro@total or @sum special operator@total or @sum it inserts the sum of all previous lines up until the last blank line or comment@prevμ = 3 m/s:, e.g. :mu in a math block will offer μ as an auto-complete suggestion$ symbol will be made available to all math blocks on a pagefraction(1/3) + fraction(1/4) → 7/12# at the end of a line will be ignored, but rendered in faint text as a comment# will be ignored by the math engine, but will be bolded when rendered=> at the end of a line (but before a comment) will tell Numerals that a result should be highlighted. Any line in that code block without a => annotation will be rendered faintly (or hidden depending on settings).@[...] syntax (for example: @[profit]), Numerals will insert the results of a calculation into the raw text of your note, following ::@[profit] will be modified to say @[profit::10 USD]numerals: property. Setting numerals to all, will make all properties in a note available to Numeralsnumerals: [apples, pears] will makes both the apples and pears property available to Numerals$ automatically becomes a note-global variable (or function) accessible in every math block on the page$f(x): x+2[[note name]].property, including nested values like [[config]].rates.hourlyNumerals utilizes the mathjs library for all calculations. Numerals implements a preprocessor to allow more human-friendly syntax, such as currency symbols and thousands separators. For all available functions and capabilities (which includes matrices, vectors, symbolic algebra and calculus, etc), see the mathjs documentation
Numerals has been tested with the default theme and most other top themes. It uses default values such that it should play nice with any other theme. There are also several configurable settings to modify how Numerals renders math blocks
Numerals supports rendering inputs/ouputs as either:
One of these options can either be chosen as a default from Numerals settings, or then can be applied on a per-block basis by using math-plain, math-tex, or math-highlight rather than a math code block.




Choose between a consistent code block background color (left), or alternating rows to help track from input to result (right).

By default, Numerals will provide auto-completion suggestions for variables that have been defined in a particular math codeblock. Turning on Include Functions and Constants in Suggestions will also provide suggestions for all functions, math constants, and physical constants supported in Numerals.

Numerals allows the user to specify the format of rendered results.
100000.1)1.000001e5)100.0001e3)100,000.1100.000,1100 000,11,00,000.1Numerals can be found in the Obsidian community plugin list.
To try the latest features of Numerals before they are released, and provide helpful feedback and testing, try Numerals by using the Obsidian BRAT plugin. All new Numerals features will be pushed to beta testers first.
Obsidian42 - BRAT: Add a beta plugin for testing gtg922r/obsidian-numerals$ and ¥ can be mapped to different currencies in settings Feel free to suggest additional features by creating an issue!
Numerals uses a three-stage development workflow: Version → Build → Release
Update the version number in package.json:
npm run version:patch # 1.5.1 → 1.5.2
npm run version:minor # 1.5.1 → 1.6.0
npm run version:major # 1.5.1 → 2.0.0
npm run version # defaults to patch
These commands only update the version in package.json and do not sync to manifests or create releases.
Compile the TypeScript and bundle the plugin:
npm run build # Build for production
npm run dev # Build for development with watch mode
The build command compiles TypeScript and creates the main.js file that Obsidian loads.
Auto-complete suggestions for mathjs functions and constants are kept as a static list in src/mathjsUtilities.ts. When upgrading mathjs, run npm run symbols:check to compare that list against the installed mathjs documentation metadata.
If the check finds intentional changes, run npm run symbols:update, review the generated diff, and adjust the explicit exclusions in scripts/mathjs-symbols.ts for any documented symbols that should not appear in Numerals suggestions.
Create tagged releases that trigger automated GitHub Actions:
npm run release:beta
1.5.1-beta.2024-01-15T10-30-00)manifest-beta.json with the beta versionnpm run release:production # Full command
npm run release # Shortcut for production
package.jsonmanifest.json and versions.jsonnpm run devnpm run version:patch (or minor/major)npm run release:beta npm run releaseThe release scripts handle all manifest syncing, building, tagging, and triggering GitHub Actions for automated release publishing.
There are a number of other plugins that address math and calculation use cases in Obsidian.
There are also a number of "calculator as notes" apps that acted as the inspiration for Numerals. If you are looking for a purpose-built app outside of Obsidian, consider: