[GH-ISSUE #2813] [FR] embedded scripting language and query language #1217

Open
opened 2026-03-23 20:46:35 +00:00 by mirror · 1 comment
Owner

Originally created by @hgkamath on GitHub (Jun 15, 2023).
Original GitHub issue: https://github.com/AppFlowy-IO/AppFlowy/issues/2813

Description

I did not see mention of a embedded scripting language and query language in the roadmap

Filing this bug to collect thoughts on

  • embedded scripting language
  • and data query language.

Impact

Allows a user to make custom scripts and custom automated/manually triggered actions and data views within the markdown.
One does not have to make a full formal plugin, for small inline scripts.

Additional Context

It will probably, also require exposing some sort an internal api and internal schema, so that the scripts have some resources to act on.

Suggestion 1

As logseq is a closely related tool. It helps when productivity tools have such languages in common to reduce learning. Using the same embedded scripting language and query language as logseq will reduce the cognitive load on a user.

Logseq uses

Originally created by @hgkamath on GitHub (Jun 15, 2023). Original GitHub issue: https://github.com/AppFlowy-IO/AppFlowy/issues/2813 ### Description I did not see mention of a embedded scripting language and query language in the [roadmap](https://github.com/AppFlowy-IO/AppFlowy/blob/main/ROADMAP.md) Filing this bug to collect thoughts on - embedded scripting language - and data query language. ### Impact Allows a user to make custom scripts and custom automated/manually triggered actions and data views within the markdown. One does not have to make a full formal plugin, for small inline scripts. ### Additional Context It will probably, also require exposing some sort an internal api and internal schema, so that the scripts have some resources to act on. ### Suggestion 1 As logseq is a closely related tool. It helps when productivity tools have such languages in common to reduce learning. Using the same embedded scripting language and query language as logseq will reduce the cognitive load on a user. Logseq uses - sci for embedded Clojure, which should be compile to various targets including native/javascript - sci stands for 'Small Clojure Interpreter' - 20210414 - Michiel Borkent - Babashka a native clojure interpreter for scripting [PDF-link](https://assets.ctfassets.net/oxjq45e8ilak/79IJAyFJIJqHMbLw0ATdc4/c2879d29eab158db4120003a8ba4a386/Michiel_Borkent_Babashka_A_native_Clojure_interpreter_for_scripting__2021_04_13_12_00_33.pdf) - logseq help: - clojure-script eval in a block https://docs.logseq.com/#/page/clojurescript%20eval%20in%20a%20block - https://github.com/logseq/logseq/pull/7287 - implementations: - https://github.com/babashka/sci - https://github.com/borkdude/sci - Datalog for query language - https://en.wikipedia.org/wiki/Datalog - logseq help: - Datalog https://docs.logseq.com/#/page/datalog - Advanced queries https://hub.logseq.com/features/av5LyiLi5xS7EFQXy4h4K8/getting-started-with-advanced-queries/8xwSRJNVKFJhGSvJUxs5B2 - implementations: - typescript: https://github.com/vilterp/datalog-ts - dart: https://github.com/algobardo/dart-datalog - lightweight datalog engine in rust: https://github.com/rust-lang/datafrog
Author
Owner

@rileyhawk1417 commented on GitHub (Jan 25, 2025):

With the API being released on Zapier maybe the API design might help construct the internal query language or at least give an idea on how to handle scripting within AppFlowy itself and not via an API like Zapier.

With the Obsidian plugin dataview you can write inline scripts in the markdown.

For example the following syntax selects properties from a markdown file and displays them:

``dataview
id, title, item from "fun_facts"
``

Although this would need design and planning but DataView in Obsidian is one example of a query language that uses your documents as sources.

<!-- gh-comment-id:2613962842 --> @rileyhawk1417 commented on GitHub (Jan 25, 2025): With the API being released on Zapier maybe the API design might help construct the internal query language or at least give an idea on how to handle scripting within AppFlowy itself and not via an API like Zapier. With the Obsidian plugin [dataview](https://github.com/blacksmithgu/obsidian-dataview) you can write inline scripts in the markdown. For example the following syntax selects properties from a markdown file and displays them: ``` ``dataview id, title, item from "fun_facts" `` ``` Although this would need design and planning but DataView in Obsidian is one example of a query language that uses your documents as sources.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
AppFlowy-IO/AppFlowy#1217
No description provided.