hachem.wtf
aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 86dd52353442c537a6bdec6e0d685d0022ac8693 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# mktypst

Just a couple of dumb Typst templates so I stop rewriting the same document setup every fucking time.

```sh
$ mktypst rapport
$ typst watch rapport.typ
```

## Templates
`paper` is a two-column academic article; `letter` is a French formal letter. Both are French by default (`lang: "fr"`), so you get guillemets, the spacing before `; : ! ?`, `Résumé`, `Tableau`, all of it — pass `lang: "en"` for English.

You apply one with a `#show` rule at the top of the document and start writing:

```typ
#import "@local/hachem:0.1.0": paper

#show: paper.with(
  title: "Les Origines de YHWH",
  date: "mars 2026",
  authors: ((name: "Hachem H.", location: [Paris, France]),),
  abstract: [Un paragraphe.],
)

= Introduction
Du texte.
```

The `letter` works the same way. There are full examples in `samples/`, and `make samples` compiles them.

## Usage

```text
$ mktypst --help
mktypst 0.1.0 - dumb typst document generator

generates a typst document that imports and applies an mktypst
template, so you can start writing instead of pasting a preamble.

usage: mktypst [-t template] [-T title] [-a author] [-d date] [-f] <name>
       mktypst [-v | -h]

options:
  -t, --template NAME  template to apply (default paper)
  -T, --title TITLE    document title (default: the name)
  -a, --author NAME    author name (default: git config user.name)
  -d, --date DATE      document date (default: current month)
  -f, --force          overwrite an existing file
      --stdout         write to stdout instead of a .typ file
  -v, --version        print version and bail
  -h, --help           print this and bail

by hachem <im@hachem.wtf>
```

```sh
$ mktypst rapport                       # paper, the default
$ mktypst -t letter -T "candidature" x  # a letter instead
$ mktypst --stdout note                 # print it, don't write a file
```

## Install

```sh
$ git clone https://git.hachem.wtf/mktypst && cd mktypst
$ sudo make install            # mktypst -> /usr/local/bin, templates -> @local/hachem
$ make install PREFIX=~/.local # or without sudo
```

You need a C compiler for the binary, and Typst (plus the EB Garamond font) to build documents. The templates install into Typst's local package dir, so any file can `#import "@local/hachem:0.1.0"`. In the Typst app, link that folder as the namespace `local` and it works there too.

## License

`mktypst` is licensed under the MIT License. See [LICENSE](LICENSE) for more.