There's a new callback function for plugins to react to when plugin settings (data.json) get changed on disk. This callback can be used to reload settings when they are updated by an external application or when the settings get synced using a file syncing service like Obsidian Sync.
New Vault.getFileByPath and Vault.getFolderByPath utility functions
The getAbstractFileByPath has long been a point of confusion with plugin developers. More often than not,
you are looking for either a file or a folder. And you know which you want at call-time. Instead of using
getAbstractFileByPath then checking if the result is an instance of TFile or TFolder, now you can just
use getFileByPath or getFolderByPath to automatically do this check.
View.scope is now public
Finally scope is made public on the View class. This means you can assign hotkeys for when your view is
active and focused.
New getFrontMatterInfo utility
There is now a canonical way to find the offsets of where the frontmatter ends and where the content starts in a file.
FileManager.getAvailablePathForAttachment
If your plugin saves attachments to the vault, you should be using getAvailablePathForAttachment. It will generate a safe path for you to use that respects the user's settings for file attachments.
v1.4.4
We've exposed our helper function for setting tooltips on elements (setTooltip) as well as added a new progress bar component.
The FileManager.processFrontMatter function now also exposes the DataWriteOptions argument to be consistent with the other process and write functions.
v1.4.0
We've made some changes to CachedMetadata to support Properties. FrontMatterCache is now no longer a CacheItem—meaning that it doesn't have a position. Instead, is it a Reference.
Another big change in v.1.4 is that frontmatter now supports wikilinks. If a value in the frontmatter can be interpreted as a link, it will be cached inside CachedMetadata.frontmatterLinks.
v1.1.3
Updated the Canvas spec to indicate that colors can be stored in 1 or 2 formats:
as a hex string (i.e. "#FFFFFF")
as a number "1", "2", etc.
If it's a number, this refers to the palette position. It can be themed via CSS variables.
This release fixes a bug with the CSS nesting transform for older browsers where the generated CSS could be incorrect if a selector list contained a pseudo element followed by another selector. The bug was caused by incorrectly mutating the parent rule's selector list when filtering out pseudo elements for the child rules:
Constant folding for JavaScript inequality operators (#3645)
This release introduces constant folding for the < > <= >= operators. The minifier will now replace these operators with true or false when both sides are compile-time numeric or string constants:
// Original code
console.log(1 < 2, '🍕' > '🧀')
// Old output (with --minify)
console.log(1<2,"🍕">"🧀");
JavaScript object literal syntax contains a special case where a non-computed property with a key of __proto__ sets the prototype of the object. This does not apply to computed properties or to properties that use the shorthand property syntax introduced in ES6. Previously esbuild didn't correctly preserve the "sets the prototype" status of properties inside an object literal, meaning a property that sets the prototype could accidentally be transformed into one that doesn't and vice versa. This has now been fixed:
// Original code
function foo(__proto__) {
return { __proto__: __proto__ } // Note: sets the prototype
This release fixes a bug with the CSS nesting transform for older browsers where the generated CSS could be incorrect if a selector list contained a pseudo element followed by another selector. The bug was caused by incorrectly mutating the parent rule's selector list when filtering out pseudo elements for the child rules:
Constant folding for JavaScript inequality operators (#3645)
This release introduces constant folding for the < > <= >= operators. The minifier will now replace these operators with true or false when both sides are compile-time numeric or string constants:
// Original code
console.log(1 < 2, '🍕' > '🧀')
// Old output (with --minify)
console.log(1<2,"🍕">"🧀");
JavaScript object literal syntax contains a special case where a non-computed property with a key of __proto__ sets the prototype of the object. This does not apply to computed properties or to properties that use the shorthand property syntax introduced in ES6. Previously esbuild didn't correctly preserve the "sets the prototype" status of properties inside an object literal, meaning a property that sets the prototype could accidentally be transformed into one that doesn't and vice versa. This has now been fixed:
Bumps the dependencies group with 10 updates:
20.11.17
20.11.25
18.2.55
18.2.64
18.2.19
18.2.21
1.4.11
1.5.7
6.21.0
7.1.1
6.21.0
7.1.1
0.20.0
0.20.1
8.56.0
8.57.0
7.33.2
7.34.0
5.3.3
5.4.2
Updates
@types/node
from 20.11.17 to 20.11.25Commits
Updates
@types/react
from 18.2.55 to 18.2.64Commits
Updates
@types/react-dom
from 18.2.19 to 18.2.21Commits
Updates
obsidian
from 1.4.11 to 1.5.7Changelog
Sourced from obsidian's changelog.
... (truncated)
Commits
Updates
@typescript-eslint/eslint-plugin
from 6.21.0 to 7.1.1Release notes
Sourced from
@typescript-eslint/eslint-plugin
's releases.... (truncated)
Changelog
Sourced from
@typescript-eslint/eslint-plugin
's changelog.... (truncated)
Commits
88b7463
chore(release): publish 7.1.16954a4a
test(eslint-plugin): [no-unused-vars] add export import namespace testcase (#...4bc6944
chore(release): publish 7.1.01807d55
docs: add tabs in no-unsafe-unary-minus.md (#8542)f2f57de
test(eslint-plugin): [no-misused-promises] add test cases for spread args (#8...fa67955
chore: drop T from internal types (#8521)60c1cd3
fix(eslint-plugin): [no-use-before-define] fix false positive type reference ...1458920
fix(eslint-plugin): [no-misused-promises] improve check union types (#8534)c1441c8
fix(eslint-plugin): [prefer-optional-chan] allow typeof for avoiding referenc...e7ec6f0
docs: from option instead of source in prefer-readonly-parameter-types (#8461)Updates
@typescript-eslint/parser
from 6.21.0 to 7.1.1Release notes
Sourced from
@typescript-eslint/parser
's releases.... (truncated)
Changelog
Sourced from
@typescript-eslint/parser
's changelog.... (truncated)
Commits
88b7463
chore(release): publish 7.1.14bc6944
chore(release): publish 7.1.0677e7cc
chore(release): publish 7.0.24f3215f
chore(release): publish 7.0.1b27de99
chore(release): publish 7.0.01aa393c
chore(deps): update dependency prettier to v3.2.5 (#8401)8ef5f4b
feat: add support for flat configs (#7935)1200b4c
chore(deps): update nx to v17.3.0 (#8317)584db29
feat: bump ESLint, NodeJS, and TS minimum version requirements (#8377)Updates
esbuild
from 0.20.0 to 0.20.1Release notes
Sourced from esbuild's releases.
... (truncated)
Changelog
Sourced from esbuild's changelog.
... (truncated)
Commits
9f9e4f8
publish 0.20.1 to npmac36537
fix #3651: handle__proto__
edge cases better555db48
fix #3645: constant folding for\< > \<= >=
5650831
fix #3650: add a wrapper for float64 mathd086889
fix some lintsad3d8c6
fix #3648: copy selectors before checking childrena08f30d
fix #3634: crash if resolving with bad source dirUpdates
eslint
from 8.56.0 to 8.57.0Release notes
Sourced from eslint's releases.
Changelog
Sourced from eslint's changelog.
... (truncated)
Commits
abea3b6
8.57.01cd3f8c
Build: changelog update for 8.57.01813aec
chore: upgrade@eslint/js
@8
.57.0 (#18143)5c356bb
chore: package.json update for@eslint/js
release84922d0
docs: Show prerelease version in dropdown (#18139)1120b9b
feat: Add loadESLint() API method for v8 (#18098)5b8c363
docs: Switch to Ethical Ads (#18117)2196d97
fix: handle absolute file paths inFlatRuleTester
(#18064)f4a1fe2
test: add more tests for ignoring files and directories (#18068)69dd1d1
fix: Ensure config keys are printed for config errors (#18067)Updates
eslint-plugin-react
from 7.33.2 to 7.34.0Release notes
Sourced from eslint-plugin-react's releases.
... (truncated)
Changelog
Sourced from eslint-plugin-react's changelog.