Releases: ParkPavel/obs-projects-plus
Releases · ParkPavel/obs-projects-plus
Release list
3.7.0
Cards and gallery
- Gallery view options: layout (grid, masonry, list), card size (S, M, L or a width), cover proportions
(16:10, 4:3, 1:1, 3:4, 2:3 or no cover) and fill or fit. Old galleries look as before. - "Fields on the card" in the gallery settings lists the fields a card shows, in order: move, hide or add a
field; formulas and rollups are marked ƒ; field names can be hidden. Cards follow that order. The
project's declared rollups now appear in the settings (card fields, filters, sort, colors). - Resizable card frames: drag a card's lower right corner (or use the arrow keys on it). A size can be set
for one card or for the whole view ("Card height"), and "Reset all card frames" clears them. Saved in
the view settings, never in notes. - Board card thumbnails: a cover on top, a small square at the left (it grows with the card frame, up to
40% of the card) or none. A card without an image, or whose image fails to load, shows none. - Gallery and board cards share one card component.
Board
- Drag grips have their own place: a strip along the card's left edge and the first cell of a column
header. They no longer cover field labels or titles, are visible without hovering and get a finger-sized
target on touch screens. - A pinned or read-only column can no longer be dragged by its grip. A pinned column's header keeps its
title on touch screens. - Fixed: a board whose columns were frozen by an older version (saved as
freezeColumns) shows them
pinned again; the settings already showed it as frozen.
Filters and settings
- The filter row under the navigation bar is gone, which gives the views that height back. A view's filter
lives in its settings (gear → Filters), which show the number of active conditions, clear them all and
save the selection as a source ("Save as source"). - Picking a field from a field list in the settings is accepted at once, and typed names and numbers are
no longer reset while typing. - Filter conditions wrap inside a narrow settings panel.
Touch and small screens
- A finger scrolls the dashboard instead of dragging widgets; widgets move by their grip. A swipe inside
the plugin no longer opens Obsidian's side panels; a swipe from the screen edge still does. - Landscape phones get a slim header and a filter button; view tabs scroll when they do not fit; the
settings panel opens below the navigation bar; the last items of every view scroll above Obsidian's
floating bar. - Touch targets of at least 44 points; text fields at 16 so iOS does not zoom; essential labels on
phones (calendar days and events, the year overview, view tabs, chart axes) no smaller than 11 points;
reduced motion is honoured everywhere. - Board cards and calendar events can be moved by touch; calendar strips open their record on tap and
on click; a swipe right after a drag still pages the calendar. - The whole plugin is sized in relative units.
Themes
- The plugin's styles no longer reach Obsidian's own interface: the navigation bar's icon rule used to
change every icon in Obsidian once a Projects view had opened. - Hairlines follow Obsidian's border width, so themes that change it apply to the plugin. Shadows, dims
and colours come from the theme; quiet labels (counts, empty states, weekend names) reach WCAG AA
contrast in the default light and dark themes.
Upgrading
- Filters are edited in the view settings (gear → Filters); nothing about existing filters changes.
- Gallery cards show fields in the order saved in the view settings, which may reorder fields in views
whose saved order differed from the notes' order. - Plugin icon buttons outside the navigation bar look like Obsidian's own icons.
- After updating, restart Obsidian (or reload the window) so styles of the previous version are dropped.
Русская версия изменений · Requires Obsidian 1.8.7 or newer, desktop and mobile.
3.6.3
- The plugin is named Projects Plus (was «OBS Projects Plus»): the community directory does not accept
part of the Obsidian name in a plugin name. The plugin idobs-projects-plusis unchanged, so installed
copies, their settings and data stay as they are. README.mdis now the English overview, with Installation, Usage and Privacy sections; the Russian
one isREADME-RU.md.- Release assets carry GitHub build provenance attestations.
3.6.2
Ready for the community directory
- The code passes the Obsidian community directory's automated review set
(eslint-plugin-obsidianmdrecommended: type-checked TypeScript and the
Obsidian plugin rules) with no errors or warnings, and CI enforces it. - The interface language comes from Obsidian's own setting (
getLanguage())
rather than frommomentor local storage. - Fixed: a template whose
tagsis a single string, not a list, no longer
merges into a new note's tags letter by letter. - Fixed: a plain object value (in a join key, an exported cell, or front
matter of an unexpected shape) is written as its content rather than
[object Object]; as join keys, such values no longer all match each other.
3.6.1
Demo rebuilt
- The demo is three new projects, each larger than the single demo it replaces:
«Демо: Массажный кабинет» (a massage practice), «Демо: Трекер» (three clients' daily wellbeing log)
and «Демо: Личный бюджет» (a personal budget). The studio project is gone. - The new demo is created in the
Projects Plus - Демо 2folder. A 3.6.0 demo (folder
Projects Plus - Демо) is left as it is: the new one neither changes nor mixes with it, and
the old one can be deleted by hand. - Client cards compute visits, payments, debt, wellbeing, weight, training and sleep from the
practice's visits and from the tracker; services count their sessions and revenue. The
tracker and the budget chart series read from the practice, and the gallery shows offline
covers. - The starter profiles are removed. The welcome dialog offers the demo and «Create new
project»; closing it leaves an empty projects screen with the same two actions, and the
project menu gains «Create demo project», so the demo stays reachable after the first run.
3.6.0
3.6.0 — 2026-09-27
The first version published in the format of the Obsidian community catalogue. It brings
computation across tables and projects, charts over the computed values, three linked demo
projects, a clear read-only boundary for data that belongs to another project, and a pass
over everything a catalogue reviewer checks.
Computation across tables and projects
- Reverse rollups. A record can aggregate the records that link to it: a client counts
its visits, sums what they paid, or takes the latest wellbeing score, while its own note
stays unchanged. In the field dialog pick a source marked «(links here)». - First and last value rollups pick a value by an ordering field, usually a date. Pick it
from the list, or type any property of the source with «Another field…». - A declared rollup is a column even when no note carries its key. A view filter on a rollup
column is kept. - Rollups are read-only, shown by their mode (percent bar, chips, count), and a percent shows
the engine's 0–100 value. - Blocks that read another project see that project's rollup columns too. Changing a rollup
(for example sum → average) refreshes every block that reads it. - The calculation engine is checked against a real spreadsheet: an aggregate without a
group-by is one total, and every path agrees on what "checked" means.
Charts and statistics
- A chart or stats block can read another project («Data from»). While that project
loads, the block shows a state and never this project's numbers. A deleted source stays
selectable so it can be cleared. - A chart can hold several series, each with its own field, aggregation, project, x field
and axis. A right-hand axis is available; bars can go below zero, and a missing value is
a gap, not a zero. - Charts and stats follow the record picked in another block through a relation («Follow
selection in»). This also works for scatter charts. - Readability: the value axis of bar charts is labelled, legends show colour marks, isolated
points stay visible, smooth areas follow their line, and a chart's settings offer the
columns its pipeline made.
Demo
- «Create demo project» creates three linked projects: the studio, a massage room and
personal finances. The finances read the room's income and the studio's payments, and the
room's clients count their visits and payments through reverse rollups. - Running the command again restores what is missing and never duplicates notes, on any day.
Relations and the read-only boundary
- A block that reads another project is read-only as a whole. Its board, calendar and
gallery open no editor, and its row menu offers no duplicate or delete. The record panel
says which project the record belongs to. - Frames read from another project carry that project's declared relation types.
- Linked-block suggestion:
- it reads the right project through the right relation;
- it can also follow the master's side of a relation («Show the linked record of the row you
pick»); - on a filtered view it reads the project whole;
- accepting it dismisses it only once the block really works.
- Closing the record panel keeps an edit made within the autosave delay.
Platform and catalogue readiness
manifest.jsonmeets the catalogue rules; the minimum Obsidian version is 1.8.7.- Note writes use the platform APIs:
- bulk field changes go through
processFrontMatter; - read-modify-write goes through
Vault.processon the current contents; - the settings recovery note goes through
Vault.create; - template paths are normalised.
- bulk field changes go through
- The plugin releases everything it registered when it unloads.
- Static styles moved from scripts to CSS classes.
- The settings tab reads like Obsidian's own, and the inert «Link behavior» control is gone.
- The schema commands appear only where a dashboard handles them. The «Open formula editor»
command, which did nothing, is gone. - Onboarding text is parsed into nodes and never rendered as HTML.
- No false ENOENT warning on the first settings write in a fresh vault.
Languages and accessibility
- Ukrainian and Simplified Chinese are complete against Russian. The aggregation vocabulary,
stats wording, the record panel's field groups and every word in the markup come from the
locale layer. - Icon buttons work from the keyboard.
Updating from an earlier version
- Replace all three files (
main.js,manifest.json,styles.css) from the same release,
and keepdata.json. - Saved configurations stay valid. New keys are optional and only written when you use the
feature:config.dataProjectId,config.seriesandconfig.linkedSelectionon charts and stats;relationSideon a linked selection;backlinkandorderByon a rollup.
- The demo notes changed their names from dates to series numbers. A demo created by a
3.6.0 pre-release keeps its old notes; delete the demo folder and run the command again for
a clean copy.
Build and release
- Versions:
- a release is
x.y.zinpackage.json,manifest.jsonandversions.json, and its tag
is the same string without av; - the release workflow refuses a tag that does not match the manifest;
- pre-releases for BRAT use tags
x.y.z-beta.Nand are marked as pre-release on GitHub.
- a release is
- Release assets:
main.js,manifest.jsonandstyles.css.styles.cssmerges the
design tokens and the handwritten styles; the build checks both are present. main.jsis still tracked in Git and is rebuilt from the release commit.- Requirements: Obsidian 1.8.7 or newer, desktop and mobile. Dataview is optional; the
Dataview source reports when it is missing.
Изменения на русском — CHANGELOG-RU.md. Full history: CHANGELOG.md.
Install: download main.js, manifest.json and styles.css below into .obsidian/plugins/obs-projects-plus/. Requires Obsidian 1.8.7 or newer.
0.0.0-90
Merge remote-tracking branch 'origin/main'
0.0.0-89
Merge remote-tracking branch 'origin/main'
0.0.0-88
Merge remote-tracking branch 'origin/main'
0.0.0-87
Merge remote-tracking branch 'origin/main'
0.0.0-86
Merge remote-tracking branch 'origin/main'