<-- back to the mailing list

[Discussion][Workflow] What do you use to write and upload to your capsules?

Rohan Kumar seirdy at seirdy.one

Sun Aug 15 07:21:27 BST 2021

- - - - - - - - - - - - - - - - - - - 

Workflow for seirdy.one:

TLDR version: write in Neovim, git commit, git push. After a minute the site is updated.

Long version:

I write my content in Neovim. I use markdown for WWW content and Gemtext for Gemini content. I typically draft in Gemtext and convert to Markdown, then edit the Markdown a bit for stuff like inline links and inline metadata (semantic tags like <time> and microformats mostly).

I do this all in a git repository. When I push commits, Sourcehut CI builds both my Gemini and Web content using Hugo. Hugo's custom output formats made it really easy to support both. `make build` builds the pages and generates zopfli-gzip and brotli compressed files in advance; `make deploy` deploys assets to my Web and Gemini servers via rsync + ssh. It builds a separate version of my Web site for my Tor hidden service. I haven't gotten around to launching a Gemini capsule into Deep Space (Gemini on Tor) yet, but I really should.

Using a static site generator/templating engine is really neat because it makes it easy to have multiple versions of your content in multiple places, each version having different values substituted in the pages. My hidden service has different urls than my Web content, and my Gemini content uses gemini:// links instead of https://. In the source code, I use relative paths; the SSG expands URLs by default.

Hugo's GitInfo fills in timestamps based on commit dates. So all I have to do is commit and push; my sites are then updated momentarily.

There's no vendor-lock-in. I build the binaries that I use in CI myself, except for rsync and make. I rsync them over from my server. So all I need for CI is an environment that can run "make build && make deploy". If my VPS provider does something bad, I can switch to a different VPS easily; if Sourcehut disappears, any other CI system will work. I get the Netlify-like experience of "just `git push` and deployment automatically happens" without having to depend on a service like Netlify.

-- /Seirdy (seirdy.one)-------------- next part --------------A non-text attachment was scrubbed...Name: signature.ascType: application/pgp-signatureSize: 898 bytesDesc: not availableURL: <https://lists.orbitalfox.eu/archives/gemini/attachments/20210814/48b92d16/attachment.sig>