112 lines
2.2 KiB
Markdown
112 lines
2.2 KiB
Markdown
## requirements
|
|
|
|
`pandoc` utility must be installed
|
|
|
|
- Debian Bookworm:
|
|
|
|
$ apt-get update && apt-get install -y pandoc
|
|
|
|
## start default openresty
|
|
|
|
1. Run `docker run --rm -it --init -w /opt -v $PWD:/opt -p 80:80 openresty/openresty:1.27.1.2-0-bookworm-buildpack`
|
|
2. Visit `localhost` in web browser.
|
|
|
|
## start a custom site
|
|
|
|
### build docker image
|
|
|
|
$ make image-build
|
|
|
|
### rebuild an existing docker image
|
|
|
|
$ make image-rm image-build
|
|
|
|
### generate a new site file
|
|
|
|
$ docker run --rm -w /opt/app -v $PWD:/opt/app miti.sh sitegen new
|
|
|
|
### add an index page
|
|
|
|
$ docker run --rm -w /opt/app -v $PWD:/opt/app miti.sh sitegen page /opt/app index
|
|
|
|
### add to `site.moon`
|
|
|
|
add "index.md"
|
|
|
|
### add config for nginx
|
|
|
|
$ mkdir logs/ conf/
|
|
|
|
# conf/nginx.conf
|
|
worker_processes 1;
|
|
error_log logs/error.log;
|
|
events {
|
|
worker_connections 1024;
|
|
}
|
|
http {
|
|
server {
|
|
listen 8080;
|
|
location / {
|
|
default_type text/html;
|
|
}
|
|
}
|
|
}
|
|
|
|
### build site
|
|
|
|
$ make build
|
|
|
|
### start dev server
|
|
|
|
$ make
|
|
|
|
Visit `localhost:8080` in web browser
|
|
|
|
### start watcher
|
|
|
|
$ docker exec -it container_name sitegen watch
|
|
|
|
### run tests
|
|
|
|
$ make test
|
|
|
|
### lint moonscript
|
|
|
|
$ make lint
|
|
|
|
### print out pygments styles
|
|
|
|
$ pygmentize -S STYLE -f formatter
|
|
|
|
example:
|
|
|
|
$ pygmentize -S default -f html
|
|
|
|
### deploy
|
|
|
|
$ make deploy
|
|
|
|
## gotchas
|
|
|
|
### What is error `cosmo failed: [string "..."]:62: cannot resume dead coroutine`?
|
|
|
|
If you call `cosmo.yield`, your function **must** return `nil`! If you forget
|
|
to return `nil`, you will see this cryptic error:
|
|
|
|
Error: index.html -> html/index.html: cosmo failed: [string "..."]:62: cannot resume dead coroutine
|
|
make: *** [Makefile:6: build] Error 1`
|
|
|
|
### What is error `calling 'load_cache' on bad self`?
|
|
|
|
moon: .../local/openresty/luajit/share/lua/5.1/sitegen/common.lua:41:
|
|
/usr/local/openresty/luajit/share/lua/5.1/sitegen/cache.lua:99: calling
|
|
'load_cache' on bad self (table expected, got userdata) stack traceback:
|
|
|
|
Delete your `.sitegen_cache` file.
|
|
|
|
## thinking about
|
|
|
|
* use sitecache with pandoc renderer
|
|
* draft documents
|
|
* treesitter highlighting for moonscript
|