logseq/deps/publishing
Tienson Qin 60d4fca0ba wip: remove :block/name uniqueness for db based graphs
This PR also remove supports for:
1. merge pages when renaming a page to existing page
2. namespaces such as a/b/c
3. nested page such as [[a [[nested page]]]]

Pages merge might be added back depends on RTC, but it should be
decoupled from renaming, otherwise it's too complex.

Namespaces and nested pages have been contributed some critical bugs
that lead data-loss, they're so complex together with page alias,
it's just impossible to have a good test coverage and ensure the app
is stable, especially when page rename and RTC.
2024-04-04 15:57:48 +08:00
..
.carve Add docs and workflow for dep 2023-04-09 23:13:33 +08:00
.clj-kondo Add docs and workflow for dep 2023-04-09 23:13:33 +08:00
src/logseq fix: schema && built-in properties 2024-03-25 10:59:09 +08:00
test/logseq/publishing wip: remove :block/name uniqueness for db based graphs 2024-04-04 15:57:48 +08:00
.gitignore Add docs and workflow for dep 2023-04-09 23:13:33 +08:00
README.md Add docs and workflow for dep 2023-04-09 23:13:33 +08:00
bb.edn Update clj-kondo and bb-tasks for deps projects 2023-06-13 14:48:50 +08:00
deps.edn Update clj-kondo and bb-tasks for deps projects 2023-06-13 14:48:50 +08:00
nbb.edn Fix nbb.edn paths with latest nbb-logseq 2023-04-12 11:02:43 +08:00
package.json Update nbb-logseq to latest datascript 2024-04-02 09:36:28 -04:00
yarn.lock Update nbb-logseq to latest datascript 2024-04-02 09:36:28 -04:00

README.md

Description

This library handles exporting the frontend.publishing single page application. 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.publishing. This library provides two namespaces for node/CLI contexts, logseq.publishing and logseq.publishing.export and two namespaces for the frontend, logseq.publishing.html and logseq.publishing.db.

Usage

See logseq.tasks.dev.publishing for a CLI example. See the frontend for cljs usage.

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 yarn dependencies once:

yarn install

This step is not needed if you're just running the frontend application.

Testing

Testing is done with nbb-logseq and nbb-test-runner. Some basic usage:

# Run all tests
$ yarn test
# List available options
$ yarn test -H
# Run tests with :focus metadata flag
$ yarn test -i focus

Managing dependencies

See standard nbb/cljs library advice in graph-parser.