================================================================================ MARCUS-WEB SCRIPTS CHEAT SHEET ================================================================================ FIRST TIME SETUP ---------------- After cloning on a new machine: cd marcus-web ./scripts/setup.sh This creates a .venv and installs dependencies (just 'requests'). Then either activate the venv: source .venv/bin/activate python scripts/import_letterboxd.py Or run directly: .venv/bin/python scripts/import_letterboxd.py MOVIES (Frank's Couch) ---------------------- Import a movie from Letterboxd: python scripts/import_letterboxd.py --latest Import most recent without picking --theater Skip straight to theater questions --home Skip straight to home video questions --list Just show recent movies, don't import Workflow: Log movie on Letterboxd → Run script → Pick movie → Answer prompts Creates: content/posts/.md + downloads poster BEER CALLS (Luna Juice - Weekly Thursday Meetups) ------------------------------------------------- Add a beer call to the yearly log: python scripts/new_beercall.py --date 2024-12-30 Specific date (for Beer Crawl, holidays, etc) --list Just show recent Untappd checkins Workflow: Run script → It checks Untappd for where you were → Pick venue → Done Appends to: content/posts/beercall/2024.md (or 2025.md, etc - auto-created) LUNA JUICE EVENTS (Festivals, Special Occasions) ------------------------------------------------ Create a standalone beer event post: python scripts/new_lunajuice.py python scripts/new_lunajuice.py "Beer Festival 2025" Creates: content/posts/beercall/.md VENUE DATABASE -------------- Known venues are stored in: scripts/venues.json New venues are added automatically when you enter them. TECH POSTS (Fun Center) ----------------------- Create a new technology blog post: python scripts/new_techpost.py python scripts/new_techpost.py "My Post Title" Prompts for: - Type: How I Did It / Grinds My Gears / Quick Tip - Tags: suggests common ones, you add more - Summary: one-liner Creates a skeleton outline based on post type so you just fill in the blanks. MASTODON COMMENTS ----------------- After publishing a post and tooting about it: 1. Get the Mastodon post ID from the URL (the number at the end) 2. Add to your post's front matter: mastodon_id: "123456789" 3. Rebuild site - comments will show with count To block a reply: mastodon_blocked: - "https://tilde.zone/@someone/123456789" GOPHER / PHLOG (SDF Gopherspace) -------------------------------- Posts can be published to gopher by adding `phlog: true` to frontmatter. Deploy to gopher (after --gopher-only for first run, then use --gopher): ./scripts/remote_publish.sh --gopher # Hugo + Gopher ./scripts/remote_publish.sh --gopher-only # Gopher only What it does: 1. Converts posts with `phlog: true` to plain text (70 char wrap) 2. Generates gophermaps for each category 3. Rsyncs to ~/gopher/blog/ on SDF URLs after deployment: - Gopher root: gopher://sdf.org/1/users/mnw/ - Blog index: gopher://sdf.org/1/users/mnw/blog/ - Frank's Couch: gopher://sdf.org/1/users/mnw/blog/franks-couch/ - Fun Center: gopher://sdf.org/1/users/mnw/blog/fun-center/ - Web proxy: https://gopher.floodgap.com/gopher/gw?a=gopher://sdf.org/1/users/mnw/ Gopher scripts (in scripts/gopher/): - convert_to_gopher.py Markdown → gopher plain text - generate_gophermaps.py Build category menus - ascii_art.py Headers/footers - update_root_gophermap.py Update main gophermap (one-time) References: - SDF Gopher Setup: https://wiki.sdf.org/doku.php?id=gopher_site_setup_and_hosting_features - Tilde.town Guide: https://tilde.town/wiki/editing-your-homepage/gopher.html PUBLISHING / REMOTE DEPLOY -------------------------- Push changes to SDF and build: ./scripts/remote_publish.sh # Hugo only ./scripts/remote_publish.sh --gopher # Hugo + Gopher ./scripts/remote_publish.sh --gopher-only # Gopher only The script handles git commit/push prompts automatically. ================================================================================