blob: 356bd7feb730562c8ab601e3f5623bf82ef32c72 (
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
|
> [!warning]
> This project is still under active development. Features are incomplete and buggy. Do not use in production.
# tempest
Convert `.lisp` files to `.html` templates using [spinneret](https://github.com/ruricolist/spinneret), meant for simple templating like [Hugo](https://gohugo.io/) themes and plain HTML pages.
## Usage
First, build from source. Make sure you have [SBCL](https://www.sbcl.org/), [Quicklisp](https://www.quicklisp.org/beta/) and [make](https://www.gnu.org/software/make/) set up.
```shell
make build
```
Then a binary named `tempest` will be produced. Run it.
```shell
# the following command all accept multiple arguments
./tempest build <dir> # build all tempest .lisp in dir
./tempest build-each <file> # build each specified tempest .lisp
# watch, for now, only accpets one
./tempest watch <dir> # watch for changes and build modified or created .lisp
```
Only `.lisp` file whose content starts with `;;;; TEMPEST` will be built.
# Todos
- [ ] Integrate [Parenscript](https://parenscript.common-lisp.dev/), compile `.lisp` to `.js` or `<script>` embedded in `.html`.
- [ ] `.lisp` to `.css`.
- [ ] Parse metadata defined in header comments, e.g. `;;;; OUT = ...` specifies a destination.
- [ ] Add macros for writing [Go templates](https://pkg.go.dev/text/template), e.g. `(mu ...)` to `{{ ... }}`, `(mu-if ...)` to `{{ if }}...{{ end }}`...
- [ ] Add macros for writing [Vue](https://vuejs.org/) templates
|