SATySFiによる文書(以下,単に「文書」)をNixでビルドしたりするための様々を提供します.
実際にGitHub Actions上においてNixで文書をビルドした結果をGitHub Pagesに投げています.
- basic.pdf
- slide.pdf
- ソースファイル
- オリジナルのソースはmonaqa/slydifiから持ってきています.
このFlakeは現在安定していないので記載した情報が古くなっている可能性も有ります. 必要なら開発者によるテンプレートなどを参考にしてください.(おそらく最新のバージョンに追随するようにしています.)
- Nix (もちろん)
- Nix Flakesの有効化
- nix-direnv
- 必須ではありませんが,あったほうが都合が良いです.
flake.nix
に次の内容を記載することで,nix build ".#main"
でresult/main.pdf
に生成されます.
{
inputs = {
satyxin.url = "github:SnO2WMaN/satyxin";
};
outputs = {
satyxin,
...
} @ inputs:
flake-utils.lib.eachDefaultSystem (
system: let
pkgs = import nixpkgs {
inherit system;
overlays = [
satyxin.overlay
];
};
in rec {
packages = rec {
satysfiDist = pkgs.satyxin.buildSatysfiDist {
# 文書をビルドするために必要なパッケージを記載してください.
# 利用可能なすべてのパッケージは以下に存在します. https://github.com/SnO2WMaN/satyxin/tree/main/nix/packages
packages = [
"bibyfi"
"sno2wman"
];
};
main = pkgs.satyxin.buildDocument {
inherit satysfiDist;
satysfiLocal = ./.satysfi/local; # 必須ではありません
name = "main";
src = ./src;
entrypoint = "main.saty";
output = "main.pdf"; # 必須ではありません
};
}
}
);
}
次の内容を.envrc
に書くと,direnvが読み取って.satysfi/dist
以下にsatysfiDist
を生成します.(書くべきです)
#!/usr/bin/env bash
use flake
nix build ".#satysfiDist" --out-link "$(pwd)/.satysfi/dist"
- AumyF/satyxin
- 改造元のリポジトリ
- na4zagin3/satyrographos
- 最もメジャーなSATySFi用パッケージマネージャ
- SnO2WMaN/satysfi-sno2wman
- Add
satyxinPackages.sno2wman
- Add