= Wombat's Book of Nix
{authors}
:doctype: book
:sectnums:
:toc: left
:toclevels: 4
// :source-highlighter: rouge
// :rouge-style: monokai
:source-highlighter: pygments
:pygments-style: default
:pygments-linenums-mode: table
:pygments-css: class
:!prewrap:
:icons: font
:title-logo-image: image::wombat.svg["wombat reclining against a lambda"]
:xrefstyle: full

image::wombat.svg["wombat reclining against a lambda"]

This book is available
https://mhwombat.codeberg.page/nix-book/[online]
and as a downloadable
https://codeberg.org/mhwombat/nix-book/raw/branch/pages/wombats-book-of-nix.pdf[PDF].

_Last updated {docdate} at {doctime}_.

[preface]
== Acknowledgments

I would like to thank the patient people on the
https://discourse.nixos.org/[NixOS Discourse Forum]
who answered my many questions,
especially `cdepillabout`, `FedericoSchonborn`, `tejing` and `smkuehnhold`.
Any mistakes in this book are my own, however.

I would also like to thank Luca Bruno (aka Lethalman).
Although I have never interacted with them personally,
I learned a great deal from
their series of tutorials called https://nixos.org/guides/nix-pills/[Nix pills].

include::intro/main.adoc[leveloffset=+1]

include::nix-language/main.adoc[leveloffset=+1]

include::nixpkgs/main.adoc[leveloffset=+1]

include::hello-flake/main-generated.adoc[leveloffset=+1]

include::hello-flake-repo/main-generated.adoc[leveloffset=+1]

include::flake-structure/main.adoc[leveloffset=+1]

include::generic-flake/main.adoc[leveloffset=+1]

include::hello-flake-return/main.adoc[leveloffset=+1]

include::new-flake/main.adoc[leveloffset=+1]

include::recipes/main.adoc[leveloffset=+1]

// TODO Use curly quotation marks (smart quotes)
// TODO Replace all references to "later" with proper cross-references.
// TODO Write about lazy evaluation file:///home/amy/github/eolas/nix/nix-language.md#lazy-evaluation
// TODO Write about currying and partial function application
// TODO Cover assertions file:///home/amy/github/eolas/nix/nix-language.md#lazy-evaluation
// TODO Cover fixed point file:///home/amy/github/eolas/nix/nix-language.md#fixed-point
// TODO Cover any material in file:///home/amy/github/eolas/nix/nix.md that I haven't already covered
// TODO Cover built-in constants file:///home/amy/github/eolas/nix/nix-language.md#built-in-constants
