# content.just — content authoring recipes (consumable module)
#
# Thin sugar over the installed `rustelo-content` CLI. Sites consume it with:
#
#   mod authoring ".just/content.just"    # symlink → this file in the source repo
#
# then run `just authoring images --type blog --provider gemini --dry-run`, etc.
# (Named `authoring` in sites to avoid colliding with a flat `content` recipe.)
#
# Recipes are pure `*args` passthrough: write the exact flags you'd give
# `rustelo-content` — just forwards every token after the recipe name verbatim.
#
# [no-cd] is mandatory: inside a `mod`, just changes into the MODULE's directory
# by default, which would break the scripts' ./site/content path defaults. With
# [no-cd] the recipes run in the invocation PWD (the site root containing site/).
#
# Requires `rustelo-content` on PATH — install from the source repo with
# `just content-install`.

# default — list recipes instead of running one (a bare `just <mod>` otherwise
# fires the first recipe, which would start real generation).
[no-cd]
default:
    @echo "authoring recipes: images | sync | validate | validate-ids | new | copy-images"
    @echo "usage:  just <mod> <recipe> [flags]   e.g.  just authoring images --type blog --provider gemini --dry-run"
    @echo "direct: rustelo-content <command> --help"

# Generate AI images (provider-agnostic openai|gemini). Pass any generate-images
# flags: --type --lang --slug --provider --model --quality --dry-run --force ...
[no-cd]
images *args:
    rustelo-content images {{ args }}

# Translation parity, e.g. `just authoring sync validate-translations`.
[no-cd]
sync *args:
    rustelo-content sync {{ args }}

# Validate content consistency.
[no-cd]
validate *args:
    rustelo-content validate {{ args }}

# Validate cross-language id consistency.
[no-cd]
validate-ids *args:
    rustelo-content validate-ids {{ args }}

# Scaffold a new content item, e.g. `just authoring new blog --title "..."`.
[no-cd]
new *args:
    rustelo-content new {{ args }}

# Copy _images/ into the public assets tree.
[no-cd]
copy-images *args:
    rustelo-content copy-images {{ args }}
