Repository navigation
Releases
Releases · jrayas/obsidian-rubric
0.7.1
Full Changelog: 0.7.0...0.7.1
0.7.0: the body module
The body module, plus the Android file-write fix from 0.5.1. Version 0.6.0 was never released; its body.entry key is replaced by the module.
0.7.0
Added
- The body module. The body of a note can now be described in YAML, the way properties are. A module file (
modules/body.yaml, added to the registry and pulled in withuses: [..., body]) listssectionsby heading and adefault, and each can give rules for Enter, Tab and Shift-Tab:insert(text to write),newline,pass. A type's ownbody:block can change them. Rules are merged inusesorder, then the type's own. - Placeholders and formulas in rules. Any
insertorstartertext can contain{{ }}: template variables from Obsidian's core Templates plugin ({{time:HH:mm}},{{date:FORMAT}},{{title}}) or Bases-style formulas ({{ now().format('ddd HH:mm') }},{{ if(mood >= 4, ':)', '') }},{{ file.basename }}, note properties, text, list and date methods,if,min,max,number,date). A formula engine written for Rubric runs them; it never runs JavaScript. A placeholder that does not parse is abody-formulaschema error naming the file and line. - Rules per heading. A section's rule for a key applies under that heading; a key it does not mention falls back to
default;pass: trueturns a key off there. - Starter sections for new notes. The sections of a body module (in order, with their
startertext) become the body of a new note, in Create note from schema and when Rubric completes a new note whose body is empty. A note that already has a body is never changed. - Enter ends a list on a line that has only what the rule wrote (recognised by the format of its date and time placeholders), and leaves blank lines, sub-bullets, tasks, numbered items, quotes and table rows to Obsidian.
Changed
- Replaces the
body.entrykey of 0.6.0, which was never released: usedefault: { keys: { Enter: { insert: "- {{time:HH:mm}} " } } }in a body module.body-unknown-keyandbody-shapecover the new keys;body-formulais new. REFERENCE.mdhas a new section, The body module, with the full list of placeholders, formula parts and cases.
Not verified
- A real phone keyboard: the Android emulator tests used hardware Enter and Tab key events.
- Windows, Obsidian 1.13.7.
0.5.1 (included)
Fixed
- Schema files could be left empty on Android. Obsidian's file adapter on Android now and then finishes a write without an error and leaves the file empty (about 1 in 300 writes in an Android 15 emulator; the file stays empty). One empty schema file stops the whole schema loading ("A module file must be a map"). Rubric now reads each schema, registry, vocabulary and preset file back after writing it and writes again if it does not match (up to four tries, then a clear message naming the file). This applies to the starter pack install, the generated
preview/files, folder mappings, vocabulary terms and presets. - Install starter schema pack now says which file could not be saved and how to create the rest, instead of stopping silently.
Checked
- In an Android 15 emulator with Obsidian 1.14.4 (real Android WebView, not desktop emulation): Rubric 0.5.0 enables and loads, the starter pack installs, the schema loads with no problems, choose schema, the confirm dialog (scrolls to its buttons) and Check vault open. Eight reinstalls (592 plugin writes) left no empty file.
Not verified
- A real phone or tablet. Vaults that still hold Rubric 0.2.0 (
isDesktopOnly: true) cannot enable it on mobile at all: update the plugin files in the vault.
0.5.0: mobile-lite
Added
- Mobile-lite: Rubric now loads on iOS and Android (
isDesktopOnlyis false). Works: schema loading and checking, matching, IDs,modified, Check vault, retired IDs, presets, zip export and Source-mode suggestions. The Properties-area features (hold key, ▾ button, autocomplete in the field) are never installed on mobile, and their settings are replaced by a note. The saved "Commands only" setting is left alone because it syncs to the desktop. - Choose a property to edit: pick a property of the open note from a list (with its current value), then its value. It needs no focused property and no keyboard, so it works on a phone; on desktop, Show all options for this property now opens it when no property is focused (it used to say "Click into a property first").
npm run e2e:mobile: eight real-app checks in Obsidian's mobile emulation.
Changed
- On mobile Rubric does not read every note at start-up. A note's
modifiedbaseline is taken when it is opened, so an edit made there is stamped; a change that arrives through sync is not stamped on the phone. - The picker window does not focus its filter field on mobile (no keyboard pop-up).
- Open schema folder no longer calls Electron. On desktop it uses Obsidian's own show-in-folder when it exists; otherwise (and on mobile) it shows the folder name.
- Found by the mobile checks: two settings groups with the same heading collided, so the settings page logged a warning; the phone note now has its own heading.
Not verified
- A real phone or tablet: layout at phone widths, touch, large vaults, a hidden
.schemafolder, handing the zip to another app.docs/release-checklist.mdhas the manual steps. - Windows, Obsidian 1.13.7.
Rubric 0.2.0
Added
- A master switch. Rubric is off on a fresh install, so you can write your schema before anything acts on a note. While it is off nothing changes a note and nothing asks about one; loading the schema, Check vault (read only), option lists and the previews still work. Turn it on from the status bar, the settings page or the command Toggle automation on or off. Installs that already had saved settings stay on.
- Domain overrides. A note's
domainselects extra files that adjust the schema without forking it:override,addandremove(andsectionsfor a module), in a folder next to the default file (types/kb/maths.yaml), plus extra terms for vocabularies. Core properties cannot be removed, types cannot change, section and track values keep the domain prefix. - Domains are registered like types in the optional
registry/domains.yaml: a prefix, a folder and a description for each, and a default.domainandunique_idare their own module; modules can sayrequires. Packs without a registry work as before. unique_id, a readable ID within a domain (KB-MA-2026-0001) beside the globalid. It is issued again, with a preview, when the domain or type changes; the old one is kept inarchived_fields. A domain without a prefix gets none.- A note's domain from its folder.
Knowledge/maths/is the maths domain when a note is filled or created; Create note from schema offers the domain folders. Check vault warns when the folder and the property disagree. - Property previews are now also written per domain (
preview/<type>/<domain>.yaml). - Vault check: missing, mismatched, malformed and duplicate unique IDs; a section or track of another domain; a property a domain removed; a note in another domain's folder.
_schema/REFERENCE.mdrewritten as a complete quick reference (every file, attribute, domain rule, error code and recipe), kept in step with the pack by tests.- Clearer schema errors: an empty module is reported by name, and override files found while no domains exist are one error instead of one per file.
Changed
- The starter pack is rebuilt: 11 types (note, kb, resource, project, task, exercise, scenario, example, journal, person, workout), 8 modules, 2 vocabularies and five example domains (general, maths, physics, pcb, embedded).
kbcarries the curriculum;exerciseis now the learning question and the fitness type isworkout; there is no breadcrumb property. The pack needs plugin 0.2.0. - Check 8 and the schema 1 to 2 migration no longer treat a
domainproperty that the schema defines as a leftover.
Upgrading
- Install starter schema pack still creates only files that are missing and never overwrites, so a vault that already has a schema must merge
registry/types.yamlby hand to adopt the new pack. - Not tested: Windows, Obsidian 1.13.7, the real breadcrumb plugin and real sync between devices.
Install: copy main.js, manifest.json and styles.css into <vault>/.obsidian/plugins/rubric/. The starter schema pack is in the repository (schema-pack/) and is also created by the command Install starter schema pack.