Releases: blacksmithgu/obsidian-dataview
0.4.4
0.4.4
Feature release with some bugfixes for flatten
and group by
.
Lambdas
Adds basic lambda support to the dataview query language along with some functions which accept it. Lambdas have the
form (arg1, arg2, ...) => expression
; for example:
(x) => x + 2
(tag) => contains(tag, "yes")
(a, b) => a + b
The following methods have been updated to support lambdas:
any(list, lambda)
: Returns true if the lambda returns true for any value in the list.all(list, lambda)
: Returns true if the lambda returns true for all values in the list.none(list, lambda)
: Returns true if the lambda returns true for no values in the list.map(list, lambda)
: Returns a new list where the lambda has been applied to each element.filter(list, lambda)
: Returns a new list consisting only of elements that the lambda returned true for.
Primitive Lists & Objects
You can write lists using a primitive JavaScript-like syntax: [1, 2, 3]
; you can additionally write objects using a
primitive JavaScript-like syntax: { key1: value1, key2: value2 }
. These are mostly useful for complicated sort and
equality checks, though will be more useful in the future as subqueries and complex FROM statements are added.
Bugs
0.4.3
This is a bugfix release which also includes a few highly requested QOL features.
Timezone Date Support
Dataview now supports dates with milliseconds (HH:MM:ss.mmm
), as well as dates with
timezones (HH:MM:ssZ
or HH:MM:ss+6:30
).
Fixed CSV Support
Several performance issues and bugs related to csv support have been fixed; you can query from a csv file via
TABLE WITHOUT ID field1, field2, ... FROM csv("path/to/file.csv")
Removing the 'File' field
You can remove the default 'File' or 'GROUP' fields now using the 'WITHOUT ID' qualifier in a table query:
TABLE WITHOUT ID ... FROM
...
Custom Date Formats
You can now specify the default date format that dataview should use everywhere in the settings. You can also
use custom formatting inside of the query language with the new dateformat(date, "...format...")
function.
Index Fixes
Several issues with files not properly reloading due to renames or deletions have been fixed.
0.4.2
Adds support for simple queries from CSV, as well as custom dataviews, and a few bugfixes.
CSV Queries
You can query data from CSV files using the csv()
modifier:
TABLE file.name, field, field2 FROM csv("file.csv")
Which will select "field" and "field2" from CSV. You can select from multiple CSVs:
TABLE file.name, field, field2 FROM csv("file.csv") or csv("file2.csv")
Custom Dataviews
You can now create custom dataviews for usage in DataviewJS (available through dv.view()
). The function can be used as
such: dv.view("path/to/view", input)
. A custom view is a folder containing view.js
, which should be JS code that
will be loaded and provided with the dv
object and your input
argument. For example, a trivial view which renders
whatever 'input' is:
test-view/view.js
:
console.log("hi!");
dv.paragraph(input);
You could then execute this view using dv.view("test-view", 16);
in another dataview. Views can also include CSS files
in the same folder (like test-view/view.css
), which will be applied when the view is rendered.
Automatic Build/Testing on GitHub
Mostly useful for development, but all commits and pull request are now checked that they properly build and commit.
Bugfixes
0.4.1
0.4.0
Major internal refactor, but which includes several nice new bugfixes!
- Much better refreshing logic, so views should properly refresh when dataview starts up.
- Indexing has been moved to several background worker threads, improving performance and preventing dataview from
causing frontend freezes. - Dataview Inline JS! Use
$= <js>
to evaluate an inline JS expression. You have access todv
, like in DataviewJS.
0.3.13
0.3.12
0.3.11
0.3.10
0.3.9
Fix a random debugging console.log that snuck it's way into the last release.