Fix diagram rendering in Nix builds

This commit is contained in:
Dunya Kirkali
2026-08-08 22:52:15 +02:00
parent 0f64b1133e
commit bedaa8e5a2
4 changed files with 17 additions and 4 deletions

View File

@@ -0,0 +1,9 @@
{
"features": {
"ghcr.io/devcontainers/features/nix:1": {
"version": "1.3.1",
"resolved": "ghcr.io/devcontainers/features/nix@sha256:8953a9da475055d140db0ede314e8e1b117d28c1eabf289c1b07c7619ce6c078",
"integrity": "sha256:8953a9da475055d140db0ede314e8e1b117d28c1eabf289c1b07c7619ce6c078"
}
}
}

View File

@@ -13,7 +13,8 @@ EPUB_NAME := book.epub
EPUB_PATH := output/$(EPUB_NAME) EPUB_PATH := output/$(EPUB_NAME)
ASCIIDOC_FLAGS = \ ASCIIDOC_FLAGS = \
--doctype book --doctype book \
--failure-level ERROR
.PHONY: all count clean lint epubcheck .PHONY: all count clean lint epubcheck

View File

@@ -37,8 +37,8 @@ Everything you need to get started is included in the package
## Development environment ## Development environment
Letterpress ships a [Nix flake](flake.nix) that pins the entire toolchain Letterpress ships a [Nix flake](flake.nix) that pins the entire toolchain
(Asciidoctor, asciidoctor-pdf/epub3/diagram/mathematical, PlantUML, Graphviz, (Asciidoctor, asciidoctor-pdf/epub3/diagram/mathematical, PlantUML, Mermaid,
a JRE, Vale and EPUBCheck). This is the same environment used in CI, so builds Graphviz, a JRE, Vale and EPUBCheck). This is the same environment used in CI, so builds
are reproducible everywhere. are reproducible everywhere.
### Enter the dev shell ### Enter the dev shell

View File

@@ -31,12 +31,13 @@
}; };
# Everything needed to render the book: the gem env plus the external # Everything needed to render the book: the gem env plus the external
# binaries asciidoctor-diagram shells out to (plantuml -> java + graphviz). # binaries asciidoctor-diagram shells out to.
runtimeInputs = with pkgs; [ runtimeInputs = with pkgs; [
gems gems
gems.wrappedRuby gems.wrappedRuby
gnumake gnumake
plantuml plantuml
mermaid-cli
graphviz graphviz
jre jre
vale vale
@@ -48,6 +49,7 @@
version = "0.1.0"; version = "0.1.0";
src = ./.; src = ./.;
nativeBuildInputs = runtimeInputs; nativeBuildInputs = runtimeInputs;
DIAGRAM_PLANTUML_CLASSPATH = "${pkgs.plantuml}/lib/plantuml.jar";
# asciidoctor-diagram caches into $HOME # asciidoctor-diagram caches into $HOME
buildPhase = '' buildPhase = ''
export HOME=$TMPDIR export HOME=$TMPDIR
@@ -68,6 +70,7 @@
devShells.default = pkgs.mkShell { devShells.default = pkgs.mkShell {
packages = runtimeInputs ++ (with pkgs; [ bundix ]); packages = runtimeInputs ++ (with pkgs; [ bundix ]);
DIAGRAM_PLANTUML_CLASSPATH = "${pkgs.plantuml}/lib/plantuml.jar";
shellHook = '' shellHook = ''
echo "letterpress dev shell" echo "letterpress dev shell"
echo " make build PDF + EPUB" echo " make build PDF + EPUB"