# show all commands
default:
  just --list --unsorted

# only run if changes are made to macros
freeze:
  m4 -F macros.m4f macros

# build referee facing html
spoilers:
  cat basement.order \
  | xargs pandoc -f markdown -t markdown \
  | m4 -R macros.m4f - \
  | pandoc \
    -t html \
    --standalone \
    --toc \
    --metadata title="BASEMENT QUEST" \
    -H includes/styles.html \
  > /tmp/spoilers.html && cp /tmp/spoilers.html www/spoilers.html

# build player facing html
public:
  cat basement.order \
  | xargs -I % pandoc -f markdown -t markdown --template=templates/public.tmpl % \
  | m4 -R macros.m4f - \
  | pandoc -t html \
    --standalone \
    --toc \
    --metadata title="BASEMENT QUEST" \
    -H includes/styles.html \
  > /tmp/quest.html && cp /tmp/quest.html www/index.html

# build rss
rss:
  #!/bin/sh
  echo "Building xml file!!"
  echo "<?xml version=\"1.0\" ?>" > www/rss.xml
  echo "<rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\">" >> www/rss.xml
  echo "  <channel>" >> www/rss.xml
  echo "    <atom:link href=\"https://tilde.town/~dozens/quest/rss.xml\" rel=\"self\" type=\"application/rss+xml\" />" >> www/rss.xml
  echo "    <title>BASEMENT QWEST</title>" >> www/rss.xml
  echo "    <link>https://tilde.town/~dozens/quest/rss.xml</link>" >> www/rss.xml
  echo "    <description>Friends having ADVENTURES! Huzzah!</description>" >> www/rss.xml

  fd . 'src/' -e md -x pandoc -f markdown+autolink_bare_uris --template=templates/feeditem.tmpl >> www/rss.xml

  echo "  </channel>" >> www/rss.xml
  echo "</rss> " >> www/rss.xml
  echo "Done building xml file \o/"

# upload
up:
  rsync -zaP www/* tilde:public_html/quest/

# copy assets
assets:
  rsync -vup assets/* www/

# build public, spoilers, assets, and rss
build: spoilers public rss assets

# watch for changes
watch:
  ls src/**/**.md | entr just build

# open index
open:
  open www/index.html

# watch and open
dev: open watch

# build and upload
all: build up