2c04d28a9b
EmbedGallery_ViewImage.Thumbnail is a non-pointer string (unlike EmbedVideo_View.Thumbnail), so an empty value would slip through as <meta property="og:image" content="">. Belt-and-suspenders guard in galleryThumbs, with the defensive test extended to cover the case. Also adds a parallel hidden-embed test for gallery alongside the existing images variant. Functionally redundant with the early-return at the top of extractPostMedia, but asserts the contract directly against the gallery branch so it survives any future refactor that moves the hide check into a per-shape branch.
Build / Develop
SPA Bundle (monolithic static javascript file)
To build the SPA bundle (bundle.web.js), first get a JavaScript development
environment set up. Either follow the top-level README, or something quick
like:
# install nodejs
nvm install
nvm use
npm install --global pnpm
# setup tools and deps (in top level of this repo)
pnpm install --frozen-lockfile
# run pnpm web dev server, if you wanted
pnpm web
Then build and copy over the big 'ol bundle.web.js file:
# in the top level of this repo
pnpm build-web
Golang Daemon
Install golang. We generally develop against the current stable release of the language, as declared in go.mod.
In this directory (bskyweb/):
# re-build and run daemon
go run ./cmd/bskyweb serve
# build and output a binary
go build -o bskyweb ./cmd/bskyweb/
The easiest way to configure the daemon is to copy example.env to .env and
fill in auth values there.