Commit graph

8 commits

Author SHA1 Message Date
Local Dev
d862620979 brand(landing): clean URLs — wordmark → ./ + deviant_website.html now redirects
- Landing wordmark now hrefs "./" instead of "deviant_website.html" so clicking
  the logo shows a clean deviant.x/ URL in the address bar.
- Same-file mindmap nav updated to use "./" + anchors instead of the .html filename.
- brand/index.html footer "← the landing page" link switched from a repo-relative
  ../Parameters/webfiles/deviant_website.html to "../" (works from the deployed
  /brand/ path).
- On the deployed backends (SM + Sia), the standalone deviant_website.html file
  was replaced with a meta-refresh + JS redirect stub so any old external link
  still resolves but bounces to ./ — snapshot 0245's PNG banners and any Twitter
  posts that cited the .html path continue to work.
2026-08-30 00:30:29 +02:00
Local Dev
ea0aad1147 brand: deviation banner — labels run parallel to their curves via textPath 2026-08-30 00:09:05 +02:00
Local Dev
16c282db21 brand: twitter header — copy shifted right + new deviation-chart variant
- twitter-header-1500x500.svg: copy shifted from x=330 to x=360 and tagline
  lifted (y=340/378 vs 360/400) so X/Twitter desktop's ~200px avatar overlay
  in the lower-left corner no longer covers "A response to a default trajectory"
  or the second-line body copy. Added a comment in the SVG documenting the
  avatar-safe zone.

- twitter-header-deviation-1500x500.svg: new banner variant using the site's
  hero deviation chart (path geometry copied verbatim from deviant_website.html
  line 679-684, scaled 1.85× and placed on the right half). Same avatar-safe
  copy on the left. Replaces the orbital ring with the "diverging paths"
  motif that carries the project's thesis.

- brand/index.html + scripts/render-brand-pngs.mjs: gallery card for the new
  variant, PNG regen list updated. Both banners PNG-rendered via Puppeteer
  and pushed to SilentMode + Sia.
2026-08-29 23:47:12 +02:00
Local Dev
dca388d177 brand: Puppeteer PNG pipeline (real Fraunces) + download attr + /brand redirect
Three refinements:

1. **PNG pipeline switched to headless Chrome via Puppeteer.** resvg-js ignored
   remote CSS @import, so exports rendered in Georgia fallback. New script
   scripts/render-brand-pngs.mjs launches Chromium, sets viewport to target
   pixels, waits on document.fonts.ready, screenshots. Fonts now match the
   site exactly (Fraunces + DM Sans + JetBrains Mono). All 14 exports
   regenerated — sizes roughly double (glyph anti-aliasing takes more pixels)
   but they're accurate now.

2. **Gallery PNG links now save-to-disk, not open-in-new-tab.** Every
   <a href="source/exports/*.png"> in brand/index.html got a `download`
   attribute — browsers now trigger Save As dialog instead of navigating.

3. **/brand no-trailing-slash now redirects.** The Sia s3d gateway returned
   the raw NoSuchKey XML error when a client asked for bare deviant.x/brand.
   Uploaded a bare-key HTML redirect at bns/deviant.x/brand (no slash) that
   meta-refreshes + JS-redirects to ./brand/. Both routes now behave sanely.

brand/source/README.md updated to name Puppeteer as the preferred pipeline
and demote rsvg-convert / Inkscape / ImageMagick to fallback (no-text assets).
2026-08-29 23:35:49 +02:00
Local Dev
7d2706eb14 brand: PNG exports + gallery <base href> fix + upload-to-social banner
Two things:

1. PNG exports (brand/source/exports/, 14 files) generated via @resvg/resvg-js so
   the assets are usable where SVG isn't accepted:
   - avatar-400.png / avatar-1024.png — profile pics (Twitter/GitHub/Discord/LinkedIn all require raster)
   - og-1200x630.png, twitter-card-1200x675.png, twitter-header-1500x500.png,
     facebook-cover-820x312.png, linkedin-banner-1584x396.png, instagram-1080.png
   - icon-512.png, favicon-64.png, favicon-32.png, wordmark-1440.png,
     mark-512.png, mark-onlight-512.png
   Deployed to both SilentMode (/opt/silent-mode/site/deviant/brand/source/exports/)
   and Sia (bns/deviant.x/brand/source/exports/) so both routes serve them.
   Caveat: resvg-js doesn't fetch remote fonts, so text on exports uses Georgia
   fallback rather than Fraunces. Fine for social cards; if pixel-perfect Fraunces
   matters, export via a headless-Chrome pipeline.

2. brand/index.html: added <base href="./"> to fix relative-path resolution under
   the BNS gateway (navigate.st/bns/) which was stripping the deepest URL segment
   from document.baseURI and making every img 404. Added an acid-yellow banner at
   the top of the gallery explaining SVG isn't accepted for social avatars, plus
   PNG download links next to each SVG file path.

Gallery live at:
  https://navigate.st/deviant/brand/         (SilentMode direct — primary intent)
  https://navigate.st/bns/deviant.x/brand/   (BNS gateway — currently picks s3)
2026-08-29 23:08:52 +02:00
Local Dev
5d68dfd231 brand: add gallery page (brand/index.html) — live at https://navigate.st/deviant/brand/ 2026-08-29 23:01:14 +02:00
Local Dev
2e4a85cea8 brand: website fonts in SVG + more social formats; deploy script fixes
Fonts: every text-carrying brand SVG (wordmark, OG, twitter-card, twitter-header,
FB cover, LinkedIn banner, IG square) now @imports Fraunces + DM Sans + JetBrains
Mono from Google Fonts inside a <style> block — so browsers render the website's
own faces. Fallback stack (Georgia / system sans) still applies in renderers that
ignore remote CSS (rsvg-convert). README documents the trade-off.

New social sizes:
- twitter-card-1200x675.svg — Twitter's current summary_large_image spec (was 1200×600, wrong)
- twitter-header-1500x500.svg — profile banner with lower-left profile-photo safe zone
- facebook-cover-820x312.svg — Facebook page cover
- linkedin-banner-1584x396.svg — LinkedIn company banner with profile-photo safe zone
- instagram-square-1080x1080.svg — IG feed / Threads / Discord
(retired the wrong 1200×600 Twitter card)

Deploy script fixes (scripts/deploy-deviant-navigate-st.sh):
- Portable DNS check — getent → dig/nslookup fallback so it runs on Git Bash / macOS
- Phase 1 awk: match the testchipnet :80 block SPECIFICALLY (was matching :80 and :443,
  causing two duplicate deviant.navigate.st :80 blocks and no :443)
- Phase 3 skip check: verify a :443 block actually exists (was counting occurrences of
  the server_name line, which the Phase 1 bug already inflated)
Live prod was patched manually before this commit; the script is now safe for greenfield.
2026-08-29 22:50:13 +02:00
Local Dev
f1acbbc7b2 brand: scaffold brand/ + ship deviant.navigate.st vhost deploy script
brand/ subdirectory:
- README.md — asset map, voice, mark rules
- palette.md — signal + editorial themes, typography (Fraunces / DM Sans / DM+JetBrains Mono), extracted from deviant_website.html :root vars
- icon/ — favicon.svg (64px), icon-512.svg (matches shells/app/public/icon.svg)
- logo/ — deviant-mark.svg (dark), deviant-mark-onlight.svg (inverted), deviant-wordmark.svg (mark + wordmark + tagline)
- social/ — og-1200x630.svg (Open Graph), twitter-card-1200x600.svg, avatar-400x400.svg (round-crop-safe)
- source/ — README on exporting to PNG via rsvg-convert / Inkscape / ImageMagick

scripts/deploy-deviant-navigate-st.sh:
- Idempotent 3-phase deploy: install :80 ACME block → issue LetsEncrypt cert via webroot → install :443 vhost. Clones the pattern used by checkers.x.navigate.st in the same nginx.conf.
- Edits /opt/checkers/nginx/nginx.conf IN PLACE (single-file bind-mount discipline per vps-access.md), takes a timestamped backup first, awk-injects each block only if absent.
- Verifies with curl + openssl s_client. Reads SSH_KEY/HOST env overrides.
2026-08-29 22:35:04 +02:00