Add markdown mirror generation for DB graphs, including page and journal paths, regeneration, debounced write handling, and settings UI. Serialize page and block property values into mirrored Markdown by resolving property-value entities to their display content. Persist mirror files through the node worker platform and make browser worker mirror storage fail fast as unsupported. Fix Electron userAppCfgs writes to avoid returning unserializable Electron state over IPC. Add ADR and targeted tests for mirror generation, worker wiring, platform storage, and graph path handling.
Description
This library provides common util namespaces and resources to share between the frontend and other non-frontend contexts. This library is not supposed to depend on other logseq libraries. This library is compatible with ClojureScript and with node/nbb-logseq to respectively provide frontend and Electron/commandline functionality.
API
This library is under the parent namespace logseq.common.
Dev
This follows the practices that the Logseq frontend follows. Most of the same linters are used, with configurations that are specific to this library. See this library's CI file for linting examples.
Setup
To run linters and tests, you'll want to install pnpm dependencies once:
pnpm install
Testing
To run nbb-logseq tests:
# Run all tests
$ pnpm test
# List available options
$ pnpm test -H
# Run tests with :focus metadata flag
$ pnpm test -i focus
To run ClojureScript tests:
clojure -M:test
To auto-run ClojureScript tests while writing tests:
clojure -M:test -w src