mcndt / obsidian-quickshare

📝 An Obsidian plugin for sharing encrypted Markdown notes on the web. Zero configuration required.
MIT License
249 stars 9 forks source link

[Feature] Render Dataview queries before encryption #3

Open mcndt opened 2 years ago

kometenstaub commented 2 years ago

That would be pretty cool!

For inspiration, here’s how Mara does it for her GitHub publisher: https://github.com/ObsidianPublisher/obsidian-github-publisher/blob/824ac410ef5c0cc349fe7bfd61353ba0c0c2dcc4/plugin/contents_conversion/convertText.ts#L21-L53

kometenstaub commented 2 years ago

That would work at least for code blocks. Although I think only for DQL and not Dvjs.

For dvjs:

https://github.com/blacksmithgu/obsidian-dataview/blob/03d0c5de51e992a650de0c1c769093bedb1c7817/src/api/plugin-api.ts#L436

Normal Inline queries probably need a combo of evaluate and renderValue. (Not sure about that, evaluate is a bit different to what I used in the example at the bottom)

https://github.com/blacksmithgu/obsidian-dataview/blob/03d0c5de51e992a650de0c1c769093bedb1c7817/src/api/inline-api.ts#L177

https://github.com/blacksmithgu/obsidian-dataview/blob/master/src/api/plugin-api.ts#L519

For inline js queries the eval functions combined with renderValue.

https://github.com/blacksmithgu/obsidian-dataview/blob/03d0c5de51e992a650de0c1c769093bedb1c7817/src/api/inline-api.ts#L422


Contained example for rendering inline queries: https://github.com/blacksmithgu/obsidian-dataview/blob/03d0c5de51e992a650de0c1c769093bedb1c7817/src/ui/lp-render.ts#L178-L245