blob: b5345b6184abd780dd2aa5c1f48f1933334ed6a4 (
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
|
# flexo
*alpha quality software*
The Common Lisp, interactive system for static site generation.
For an example of a site made with flexo, see [my site's source](https://github.com/cbeo/hyperthings.garden)
The idea is this:
1. You make a recipe that builds your site. It typically has two parts:
- The recipe first adds "resources", which are usually files on disk
- The recipie then uses those resources to build "artifacts", which are mostly pages.
2. You then pass the recipie to a function that builds and publishes the site.
## Interactive development
The real benefit of flexo is interactive development.
If you run the function
(hack-on 'my-site-recipe #P/tmp/flexo-hack-space/" :port 4242)
The you can do things like add new resources and recompile the functions that build artifact and the site will automatically redisplay.
## Future development
- Separate `spinneret`, `LASS`, and `parenscript` template macros into their own packages
- Document the CLOS Protocol that Flexo uses, including how to extend it to:
- Make your own artifacts
- Make your own resources
- Make your own deployment styles
- Add resources as:
- Entire separate document trees for importing "subsites"
- Database Queries as resources, not just files
- API calls as resources, not just files
|