📖 Download the PDF
To rebuild the PDF, ensure the prerequisites are installed, then:
make pdf
Others may work, but here are the versions I'm using.
Dependency | Version |
---|---|
(run)ghc | 8.4.3 |
Idris | 1.3.0 |
latexmk | 4.59 |
[GNU Make][] | 4.2.1 |
minted | 2.5 |
Iosevka | 1.14.3 |
Pandoc | 2.2.1 |
pandoc-types | 1.17.5.1 |
Python | 3.6.6 |
Pygments | 2.2.0 |
XeLaTeX | 3.14159265-2.6-0.99999 (Web2C 2018/NixOS.org) |
TBD (see issue #4 for discussion)
develop
.WIP:
.WIP:
when it's ready to be reviewed and merged. Remember: formatting the text and taking a first pass at translating the Coq to Idris is enough for an initial pull request.The develop
branch is the working branch and master
is for releases, i.e. rebuilt PDFs and website updates.
When formatting the Literate Idris source, we use bird tracks for code meant to be compiled and a combination of Markdown and LaTeX for commentary and illustrative examples that aren't meant to be compiled.
= Example
This is some commentary with **bold** and _italicized_ text.
```idris
-- This is an Idris code block which won't be read when compiling the file.
foo : Nat
foo = 42
```
== Code to Compile
The following, however, will be compiled:
> module Example
>
> %access public export
>
> foo : String
> foo = "bar"
== Other Notes
- We can also highlight code inline, e.g. \idr{primes : Inf (List Nat)}.
- To refer to glossary entries, use e.g. \mintinline[]{latex}{\gls{term}}.
To denote chapters, sections, and other subdivisions, use =
as follows:
We use the succinct Markdown syntax...
We prefer the Markdown syntax here too, e.g.
Just as with bold and italicized text, we favor the more succinct Markdown syntax for (fenced) code blocks:
For more information, refer to the relevant GitHub Help document.
For inline Idris code, use the custom \mintinline
shortcut \idr
, e.g.
For convenience, we've also defined the shortcut \el
for inline Emacs Lisp code, e.g.
Otherwise, use single backticks for inline monospace text, e.g.
This is some `inline monospaced text`.
In a certain cases, we might want syntax highlighting for a language other than Idris or Emacs Lisp. For such cases, use the standard \mintinline
command, e.g.
We use the glossaries package for defining terms (in src/glossary.tex
) and including a glossary in the generated PDF. See the package documentation for more information, but here's a quick example:
To generate the PDF we use Pandoc and latexmk. For more details, check out the all.pdf
, all.tex
and %.tex
rules in src/Makefile
.