diff options
| author | cashmeredev <cashmere@autistici.org> | 2026-04-26 20:37:15 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-04-26 20:37:15 +0200 |
| commit | 4dfd1df3bc1f936ff7119beceae22b19e0c728d3 (patch) | |
| tree | 103e8d459f7f3a79dd7985f9b36f8ff263a672ad /justfile | |
| parent | 7e4faffa32d6f0ef885fceb0a9ecd93b3fe5c43f (diff) | |
| parent | baa6cf8cc43ce676b806db01e390668dc4aa6790 (diff) | |
| download | kitty-graphics-4dfd1df3bc1f936ff7119beceae22b19e0c728d3.tar.gz | |
Merge pull request #8 from cashmeredev/feat/typst-support
feat: add typst inline equation preview
Diffstat (limited to 'justfile')
| -rw-r--r-- | justfile | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/justfile b/justfile new file mode 100644 index 0000000..1202ca5 --- /dev/null +++ b/justfile @@ -0,0 +1,103 @@ +# kitty-graphics.el -- developer task runner +# +# Requires: just, emacs, typst (for typst tests), imagemagick (for sixel). +# Run `just` to list recipes. + +set shell := ["bash", "-cu"] + +EMACS := env_var_or_default("EMACS", "emacs") +TERM_ := env_var_or_default("KGFX_TERM", "xterm-256color") +SRC := "kitty-graphics.el" + +# Default: list recipes +default: + @just --list --unsorted + +# --- Build / lint ----------------------------------------------------------- + +# Byte-compile (primary lint check) +compile: + rm -f {{SRC}}c + {{EMACS}} -Q -batch -f batch-byte-compile {{SRC}} + +# Byte-compile, treat warnings as errors +lint: + rm -f {{SRC}}c + {{EMACS}} -Q -batch --eval '(setq byte-compile-error-on-warn t)' \ + -f batch-byte-compile {{SRC}} + +# Load-test: file evaluates without error +load: + {{EMACS}} -Q -batch -l {{SRC}} -f kill-emacs + +# Remove generated artifacts +clean: + rm -f {{SRC}}c + rm -rf /tmp/kitty-gfx-typst /tmp/kitty-gfx-sixel-*.six /tmp/kitty-gfx.log + +# --- Interactive tests (open terminal Emacs) -------------------------------- + +# Test typst inline equations (M-x kitty-gfx-typst-preview after open) +test-typst: + @echo ">> M-x kitty-gfx-typst-preview to render" + @echo ">> M-x kitty-gfx-typst-clear-preview to clear" + TERM={{TERM_}} {{EMACS}} -nw -Q -l {{SRC}} \ + --eval "(kitty-graphics-mode 1)" \ + --eval "(setq kitty-gfx-debug t)" \ + tests/test-typst.typ + +# Test org-mode inline images -- C-c C-x C-v after open +test-org: + TERM={{TERM_}} {{EMACS}} -nw -Q -l {{SRC}} \ + --eval "(kitty-graphics-mode 1)" \ + tests/test-kitty-gfx.org + +# Test text sizing protocol (OSC 66) on org headings +test-headings: + TERM={{TERM_}} {{EMACS}} -nw -Q -l {{SRC}} \ + --eval "(setq kitty-gfx-heading-sizes-auto t)" \ + --eval "(kitty-graphics-mode 1)" \ + tests/test-kitty-gfx.org + +# Test image-mode rendering +test-image: + TERM={{TERM_}} {{EMACS}} -nw -Q -l {{SRC}} \ + --eval "(kitty-graphics-mode 1)" \ + tests/test-image.png + +# Test doc-view / PDF rendering +test-pdf: + TERM={{TERM_}} {{EMACS}} -nw -Q -l {{SRC}} \ + --eval "(kitty-graphics-mode 1)" \ + tests/test-document.pdf + +# Test markdown-overlays integration +test-markdown: + TERM={{TERM_}} {{EMACS}} -nw -Q -l {{SRC}} \ + --eval "(kitty-graphics-mode 1)" \ + tests/test-markdown.md + +# Test LaTeX fragment preview in org-mode (C-c C-x C-l on a fragment) +test-latex: + TERM={{TERM_}} {{EMACS}} -nw -Q -l {{SRC}} \ + --eval "(kitty-graphics-mode 1)" \ + tests/test-kitty-gfx.org + +# --- Headless typst checks -------------------------------------------------- + +# Compile a typst fragment headlessly, print the PNG path +typst-render fragment="$x^2 + y^2 = z^2$": + {{EMACS}} -Q -batch -L . -l {{SRC}} --eval '(progn \ + (setq kitty-gfx-debug t) \ + (let ((png (kitty-gfx--typst-render "{{fragment}}"))) \ + (princ (format "png=%s exists=%s\n" png (and png (file-exists-p png))))))' + +# Render fragment and open PNG with xdg-open +typst-show fragment="$integral_(-oo)^(+oo) e^(-x^2) dif x = sqrt(pi)$": + @png=$({{EMACS}} -Q -batch -L . -l {{SRC}} --eval '(princ (kitty-gfx--typst-render "{{fragment}}"))' 2>/dev/null); \ + echo "png=$png"; \ + [ -n "$png" ] && xdg-open "$png" + +# Tail the kitty-gfx debug log (set kitty-gfx-debug to t to populate) +log: + tail -f /tmp/kitty-gfx.log |
