Releases: SVM0N/datadeck
Release list
DataDeck 1.8.2
Internal
- Releases are now built and attested in CI:
main.js,manifest.json, andstyles.csscarry a signed artifact attestation proving they were built from this repo, addressing the Obsidian plugin scorecard's provenance check. Verify withgh attestation verify <file> -R SVM0N/datadeck. No functional changes to the plugin.
Install
Download main.js, manifest.json, and styles.css below into <vault>/.obsidian/plugins/datadeck/, then reload Obsidian.
DataDeck 1.8.1
Fixed
- Manifest description trimmed to fit Obsidian's 250-character plugin listing limit (was 259).
Install
Download main.js, manifest.json, and styles.css below into <vault>/.obsidian/plugins/datadeck/, then reload Obsidian.
DataDeck 1.8.0
Added
- Timeline view: a Gantt-lite horizontal chart for any file with a distinct Start and End/Due date pair — one bar per row, sorted earliest-first, with adaptive axis tick rollup (day/week/month/year depending on span) and a manual granularity override.
- Tasks view: a done/open filter to narrow the board to just what's outstanding or just what's finished.
- Table view: each cell now carries its column name as a
data-colattribute, so custom CSS snippets can target specific columns. - Anki export settings: the 🎴 Anki button now opens a settings dialog before syncing — choose the destination deck (optionally nested as a subdeck), the Anki note type, and which column fills each of that note type's fields. Note types and fields are pulled live from AnkiConnect, with a manual fallback if Anki isn't running. Existing per-file setups keep working unchanged (no saved config = the previous Basic Front/Back behavior).
Install
Download main.js, manifest.json, and styles.css below into <vault>/.obsidian/plugins/datadeck/, then reload Obsidian.
DataDeck 1.7.1
Compliance/bugfix release ahead of the community-plugin submission — no user-facing feature changes.
Fixed
- Resolved the automated review's
!importantwarnings by rewriting selectors for higher specificity instead (mobile toolbar search, the ⚙ Config column table, a checkbox-column header/cell pairing, a couple of Kanban/select text-decoration rules). A handful of!importantuses are kept deliberately — they override Obsidian's own core.modalchrome, which loads after the plugin and isn't ours to control via specificity alone. - Replaced a
:has()selector (flagged for perf) with a JS-toggled class on the root element. - Rewrote two duplicate-property vh/dvh fallback chains using
@supportsinstead, so mobile modal sizing degrades the same way on older browsers without tripping the "duplicate declaration" check. TFilecasts now go through a realinstanceof TFilecheck first; the duck-typed fallback (needed for cross-bundle identity in the smoke tests) is unchanged but no longer flagged.
Internal
- Bumped the
obsidiandevDependency to pick up current API types.
DataDeck 1.7.0
New: Budget view
A tenth view mode. Items grouped by category with per-category subtotals and a grand total, tracked against a spending limit you set inline in the view — the total reads blue while under it, red once over.
- Appears in the toolbar dropdown when a file has a
Price/Cost/Amount/Total/Spend/Valuecolumn (or one assigned manually via ⚙ Config → Column functions → Price). - New "Create budget file" command in the palette scaffolds a
Date / Item / Type / Price / Notesstarter file, pinned straight into Budget mode. - Prices parse currency symbols and thousands separators (
$1,200.50). - Tapping an item opens the same full entry view as Tasks/Kanban; editing the price or the spending limit opens a small prompt instead of an inline field, matching how Search already avoids a mobile-keyboard rendering issue in the main view.
Fixed
- A picker's "existing values" list (category/type dropdowns, filters) could show the same value twice when rows differed only by trailing whitespace — the grouped views already trimmed and merged these, the pickers didn't. Now consistent everywhere.
- Assorted mobile polish surfaced while building the above: row alignment in grouped tables, a column-name collision that misrouted a single-pick field into a multi-value tag picker, and category rollups going stale after an inline edit.
Internal
eslint-plugin-obsidianmdnow runs in CI-equivalent form locally (npm run lint) before every release.
DataDeck 1.6.1
Compliance/bugfix release ahead of the community-plugin submission — no user-facing feature changes.
Fixed
- Travel map now works on Community Plugins installs. The world map was previously read from a separate
world-map.svgfile placed in the plugin's vault folder — but Obsidian's installer only ever downloadsmain.js,styles.css, andmanifest.jsonfrom a release, so the map silently failed to load for anyone who didn't manually copy the extra file. It's now bundled directly intomain.js. Manual/BRAT installs only need the three standard files —world-map.svgis no longer required. - Delete confirmation in the note expander no longer uses a native
confirm()dialog (unreliable on mobile); it's the same two-click "Confirm?" pattern used elsewhere in the plugin. - A handful of internal fixes flagged by Obsidian's plugin review: inline style mutations moved to CSS classes, unsafe
innerHTMLwrites replaced with safe DOM APIs, and a few async callbacks that could silently swallow errors are now handled properly.
Internal
- Added
eslint-plugin-obsidianmdas a dev dependency (npm run lint) so these checks run locally before every release.
DataDeck 1.6.0
First tagged release — BRAT-installable (SVM0N/datadeck).
Highlights
- Chart view +
csv-chartblocks: scatter/line, color-by (hue), size-by, per-series fits with R², formula overlays, smoothing, bucketing, bar aggregates, PNG export. csv-taskscross-file board: merge task rows from many CSVs into one editable board; edits write back to each source file.- Sync-safe saves: a file changed on disk mid-edit is stashed to
Archive/instead of silently overwritten. - Travel map fixed: all 176 countries now keyed (55 were previously uncolorable).
- Nine view modes, five embed blocks, no plugin dependencies, 114 automated tests.
world-map.svg is loaded at runtime for the travel view.