🎃
yaziでepubをプレビューする
rangerが私の環境には重かったのでyaziに乗り換えた。
Google Driveをrcloneで、nfsでRaspbery Piをマウントしているのだけど、ストレスがない。
ただ、epubのプレビューができないのが私にはちょっと。
ということで作った。
ほぼGemini任せだけど。

プレビュー領域にセットするのは ya.preview_widget(job, text:area(job.area):wrap(ui.Wrap.YES)) がポイントだった。
これを探し当てるまでに何時間かけたか....
YAZI_LOG=debug yazi で実行すると、 ya.dbg() の出力が ~/.local/state/yazi/yazi.log へ書き込まれる。
以下、最小限の実装サンプル。
main.lua
local M = {}
function M:peek(job)
local output = Command("epr")
:arg("-d")
:arg(tostring(job.file.url))
:stdout(Command.PIPED)
:stderr(Command.PIPED)
:output()
if not output or not output.status.success then return end
local text = ui.Text.parse(tostring(output.stdout))
ya.preview_widget(job, text:area(job.area):wrap(ui.Wrap.YES))
end
function M:seek(job) end
return M
上記githubのは、これにページ送りや高速化が適用されてる。
eprとは
cliのepubリーダー
目次がうまく表示されなかったりはするものの、ターミナルでepubをちょっと確認したいときなどに便利。上のyaziプラグインで使用しているように -d オプションでダンプ(平文出力)してくれる。
インストールは例のごとく uv tool install epr-reader で行けると思うのだけど、私は導入時期にはまだuvを使用していなかったので pipx install epr-reader でインストールしていた。
Discussion