
Logseq Publish SPA
https://github.com/logseq/publish-spa- Category
- Productivity
- Rank
- No. 1399Tools index
- Pricing
- Open Source
- Type
- TOOL
- Builder
- logseq
- GitHub
- 313 stars
- Latest release
- v0.3.1
- Date
About
Publish your Logseq knowledge graph as a single-page web app via a GitHub Action or CLI.
What it does
It reads a file-based Logseq graph, builds Logseq’s publishing database, and exports a browser-ready site. Publication settings control the visible pages, while light or dark themes and selectable accent colors shape the result.
Why it's ranked here
This is a focused bridge between Logseq’s own parser, publishing code, and automated hosting workflows. It validates required directories, pins or accepts a chosen frontend revision, and tests the action against a sample graph. The narrow file-graph scope is the main qualification.
What's good
The action accepts graph and output locations, a specific Logseq tag or commit, theme mode, and accent color. Build caching reduces repeated frontend and dependency work. Invalid theme choices fall back to light, invalid accent colors fall back to blue, and publishing errors stop the process.
Tradeoffs
Database-backed graphs are unsupported, with preliminary support placed on indefinite hold. Local use requires Babashka, Clojure, Node package installation, a separate Logseq checkout, and a one-time frontend build. Opening exported files directly can break assets and slides, so local inspection needs an HTTP server.
How to use it well
Choose it for a file-based Logseq graph already kept in Git and published after pushes, especially through GitHub Pages. Pin the action and Logseq frontend revisions when stability matters, then configure Logseq’s publication rules carefully. It does not cover database-backed graphs or replace the separate deployment step.
Technical notes+
package.json exposes the logseq-publish-spa binary through publish_spa.mjs and declares @logseq/nbb-logseq, fs-extra, and mldoc dependencies. publish_spa.mjs loads src/logseq/publish_spa.cljs, whose -main parses CLI options, validates logseq/config.edn and the static asset directory, parses the graph through Logseq’s graph parser, reads repository configuration as EDN, and calls publishing/export. action.yml implements a composite action on Node 20 with Clojure and Babashka setup, cached Logseq static assets and NBB dependencies, then invokes the same Node entry point. .github/workflows/test.yml runs the action against test/publish-test-graph, while .github/workflows/ci.yml performs lint and dependency checks.
Observed
- License
- ISC declared in package metadata; LICENSE.md provides a permissive grant with warranty disclaimer.
- Primary implementation language
- ClojureScript, loaded and executed through NBB from a small JavaScript entry point.
- Install surface
- npm or Yarn global installation exposes a command-line binary.
- Interfaces
- Composite GitHub Action and local CLI.
- Graph support
- File-based Logseq graphs only; database-backed graphs are not supported.
- Automation platform
- GitHub Actions workflow designed for Ubuntu runners, with a documented GitHub Pages deployment workflow.
- Verification structure
- Separate CI lint workflow and pull-request workflow that runs the action on a test graph.
Read from README.md, package.json, publish_spa.mjs, bb.edn, nbb.edn, deps.edn, LICENSE.md, action.yml, CHANGELOG.md, .github/workflows/ci.yml, .github/workflows/test.yml, src/logseq/publish_spa.cljs, .github/workflows/publish.yml, .github/ISSUE_TEMPLATE/config.yml, .github/ISSUE_TEMPLATE/bug_report.yaml.
What it can do
Publish Logseq knowledge graph as web application
Logseq knowledge graph files → Single-page web application
Deploy knowledge graph via GitHub Action
Logseq files in GitHub repository → Hosted web application
Generate web app via command line interface
Logseq files and CLI commands → Static web application files
Convert private notes to public website
Local Logseq knowledge base → Publicly accessible web interface
Transform block-based notes into navigable web pages
Logseq blocks and pages → Interactive web pages with navigation
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.