Compare commits

...

2 commits

Author SHA1 Message Date
70d035c410
document raw 2024-12-26 19:39:37 +03:00
5736765e63
add raw toggle 2024-12-26 19:37:17 +03:00
2 changed files with 11 additions and 2 deletions

View file

@ -117,6 +117,7 @@ you MAY set these variables:
- `TAGS` (as an array!)
- `DONT_CACHE` (to explicitly not cache the rendered blag)
- `WRITTEN_AT` (if the filesystem/libc doesn't support it)
- `RAW` (see [raw responses](#raw_responses))
you SHOULD NOT set `MODIFIED_AT` unless you have a valid reason.
@ -129,6 +130,13 @@ safely use `jq` to parse it.
the rest is normal
### raw responses
if you set `RAW` to a non-empty value, bingus-blog will abort normal
function and instead respond with whatever your script outputted, setting
the Content-Type header to the value of `RAW`. this can be used to implement
APIs in blag (do not do this).
### cache invalidation
due to how blag works, the hash of the query params is stored alongside the

5
blag
View file

@ -34,12 +34,13 @@ metadata() {
local tags=$(for tag in "${TAGS[@]}"; do printf '%s' "$tag" | jq -Rs .; done | jq -sr @json)
local dont_cache=false
[[ "${DONT_CACHE:+x}" == 'x' ]] && dont_cache=true
local raw=$(_json_str_opt "$RAW")
printf '{"title":%s,"description":%s,"author":%s,"icon":%s,"icon_alt":%s,"color":%s,"created_at":%s,"modified_at":%s,"tags":%s,"dont_cache":%s}\n' \
printf '{"title":%s,"description":%s,"author":%s,"icon":%s,"icon_alt":%s,"color":%s,"created_at":%s,"modified_at":%s,"tags":%s,"dont_cache":%s,"raw":%s}\n' \
"$title" "$description" "$author" \
"$icon" "$icon_alt" "$color" \
"$created_at" "$modified_at" \
"$tags" "$dont_cache"
"$tags" "$dont_cache" "$raw"
}