miti.sh/README.md
Catalin Constantin Mititiuc 406208f26c Add tests for nginx.conf directives (#1)
Adds tests to make sure all the `nginx.conf` directives (the redirects and rewrites and such) are all correct.

- Uses the `busted` framework
- The tests are run in a Docker container by the bash script `test.sh`
- Self-signed certs are generated in `Dockerfile` for all the domain names
- Adds new `Makefile` commands: `test`, `image-build` and `image-rm`

Reviewed-on: #1
Co-authored-by: Catalin Mititiuc <webdevcat@proton.me>
Co-committed-by: Catalin Mititiuc <webdevcat@proton.me>
2025-06-16 20:18:05 -07:00

2.1 KiB

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

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

  • draft documents
  • treesitter highlighting for moonscript