Notes Publishing Flow

Current flow

Write notes in Logseq, indicating pages I want to publish with page property public:: true

if a page is private, I can still publish a block on the page by adding public:: true as a block property

Periodically export json using logseq-query and jet’s edn -> json conversion

Logseq’s own json export doesn’t have enough information, so I have to essentially copy the whole edn database and convert that to json

put exported json in notes repo

extract the public pages and blocks from the json file

convert the public blocks and the associated assets into a set of files and folders that work with hugo sections formatting

this gets put in the Notes Interface repo

interface repo runs hugo on push

published with Github Pages on https://denizay.org

Current full command

cp -R ~/Local/notes/life/assets ~/Downloads/export/ | lq sq --graph life '[:find (pull ?p [*]) :where (?p :block/uuid ?id)]' | jet --to json > ~/Downloads/export/graph.json && swift run logseq-compiler ~/Downloads/export/graph.json ~/Downloads/export/assets ~/Local/notes/interface/content/ -a false

Issues

LATER make Logseq Export a separate github action that opens logseq headlessly

this could be done by finishing my Logseq Export github action tool

this tool uses the Logseq Publish Github Action base, and instead of exporting public pages, exports json

it also requires using my fork of Logseq

needed some customization to properly export json

what’s left to get this working is I need to get mocked-open-dir-path working on json export function like it does on the export html pages function so the headless tool can give logseq the folder to export to

LATER fix current need to wait for Logseq to reindex before Logseq Export works

LATER make the hugo template and theme in Notes Interface usable by others

LATER make Logseq Compiler usable by others