notes.kagcc

Logseq Publish のインストールメモ(大体 ubuntu のせい)

Logseq でできた graph を, static site としてホストしたい. 非公式の日本語マニュアルにいい情報 (scrapbox.io) があるが,

今回は珍しくWSL 2.0 なので,ubuntu (22.04 LTS) ベースの話になる.結局 apt で入るバージョンが古いことが色んな環境構築で色々複雑にしている(→ snap とか自分でソースからビルドするとか,その後の管理も複雑化する)ことが多い感触があって,周囲の初心者に勧めていいものか微妙なところも感じるんですよねえ.

現時点の readme から

To use this as a CLI locally, first install babashka and clojure. Then:

$ git clone https://github.com/logseq/publish-spa
# If you have yarn 1.X:
$ cd publish-spa && yarn install
$ yarn global add $PWD

# Otherwise use npm:
$ cd publish-spa && npm i -g

This CLI depends on Logseq being checked out locally in order to build the static directory for it. If you haven’t built the static directory, you’ll need to do it once (takes some time):

$ git clone https://github.com/logseq/logseq && cd logseq
# Switch to a stable version
$ git checkout 0.10.6
# Install deps and build static directory
$ yarn install --frozen-lockfile && yarn gulp:build && clojure -M:cljs release publishing

Then use the CLI from any logseq graph directory!

$ logseq-publish-spa out
Parsing 306 files...
Export public pages and publish assets to out successfully 🎉

babashka

Logseq の static/ のビルド

このステップで yarn が必要になるっぽい…のだが, apt で入る yarn は古くて --frozen-lockfile オプションがない.やむなくこれもインストールしに行く.corepack が良しなにしてくれるっぽいことが 書いてある.

npm install -g corepack

後から気付くことだがバージョンの非互換性があるみたいで, logseq 側の readme は 古い.

clojure も古い

以下のように失敗する

Execution error (FileNotFoundException) at java.io.FileInputStream/open0 (FileInputStream.java:-2). -M:cljs (No such file or directory)

Logseq のドキュメントでは 手当の記載がある,要するに apt でインストールされた clojure が古い.

(If you run into Execution error (FileNotFoundException) at java.io.FileInputStream/open0 (FileInputStream.java:-2). -M:cljs (No such file or directory), it means you have a wrong Clojure version installed. Please uninstall it and follow the instructions linked.)

結局連れていかれるのはこれ なんですけど…

curl -L -O https://github.com/clojure/brew-install/releases/latest/download/linux-install.sh
chmod +x linux-install.sh
sudo ./linux-install.sh

ここまでやると

yarn install --frozen-lockfile && yarn gulp:build && clojure -M:cljs release publishing

が成功する…はず(諸事情で次のステップから一度戻ってここを2回目走らせるとうまくいく,ということがあったが,原因がよくわからない).

Readme にある yarn は罠

static/ の指定が必要

# graph のあるディレクトリで
logseq-publish-spa ../publish/ -s ~/src/logseq/static/

で一応成功するはず.妙にハマりどころが多いが,多くは Ubuntu の apt で入るバージョンが思ったより色々古いことに起因している.結構苦労した割にあまり食わせられるオプションが多くなさそうで悲しみ.

tags: