unxok / dataedit

Dataview tables but editable!
MIT License
70 stars 1 forks source link

✨[Feature Request] Add support for dataviewjs syntax #8

Open soumendrak opened 3 months ago

soumendrak commented 3 months ago

Thanks for this awesome budding plugin. If dataviewjs syntax also can be supported it will be further useful. A sample dataviewjs script for notes created/modified today:

// default dateformat in case it’s forgotten in front matter
var dateformat = "YYYY-MM-DD";
if (dv.current().dateformat) { dateformat = dv.current().dateformat; }

dv.table(["File", "LastModifiedOn", "CreatedOn"],
  dv.pages()
  .where(p => p.file.mday.equals(dv.current().file.day) || p.file.cday.equals(dv.current().file.day))
  .sort(p => p.file.mtime, 'asc')
  .map(p => [
    p.file.link,
    moment(p.file.mtime.toString()).format(dateformat),
    moment(p.file.ctime.toString()).format(dateformat),
  ])
);
unxok commented 3 months ago

Dataviewjs is supported

Instead of doing dv.table(headers, values) just return an object with keys for headers and values

Let me know if the following doesn't work :) Note I am unsure about the dateformat being respected as I hadn't considered that.

// default dateformat in case it’s forgotten in front matter
var dateformat = "YYYY-MM-DD";
if (dv.current().dateformat) { dateformat = dv.current().dateformat; }

return{
  headers: ["File", "LastModifiedOn", "CreatedOn"],
  values:
  dv.pages()
  .where(p => p.file.mday.equals(dv.current().file.day) || p.file.cday.equals(dv.current().file.day))
  .sort(p => p.file.mtime, 'asc')
  .map(p => [
    p.file.link,
    moment(p.file.mtime.toString()).format(dateformat),
    moment(p.file.ctime.toString()).format(dateformat),
  ])
};