Responsive
The site is fully functional without JavaScript and cookies as I browse the Internet (including my own blog) with uBlock Origin hard mode on.
I used to avoid JavaScript whenever possible. Due to maintenance burden, this has changed. You can still block JavaScript if you don’t need them.
- pagefind: used in search
script.js(disabled for now)- self-hosted umami, open source Google Analytics alternative.
- uBlock Origin would block it by default as I don’t obfuscate the name. It’s also possible to exclude your visit via localStorage.
All privacy settings Hugo have are enabled. Blacklight also reports 0 tracker.
Also, no annoying cookie placeholder (with so-called essential cookies always enabled) or intrusive Enable JavaScript to Browse the Site banner.
Accessible
- Sidebar: show a lot of metadata with QR code of the page (show on mouse hover).
- External link marker
- TBB: if you use w3m/lynx, most things will just work fine, although I recommend chawan nowadays which supports CSS, inline image and JavaScript.
- Media: I hardly add images/videos as they usually add nothing but distraction, but when I do, they are converted with libavif/ffmpeg into AVIF/WebM formats with sensible filename & alternative text (via MD045 rule by markdownlint) so you get the idea without loading it in the first place.
RSS with XSLT
The site provides native full-text RSS. Unfortunately, tag RSS is summary only to reduce size (by 97%!) as there are too many of them.
It’s also possible to receive updates for certain taxonomy by adding Broken due to XSLT template./index.xml suffix.
For example, for /tags/dev RSS, just use /tags/dev/index.xml as feed URL.
Visiting RSS via browser would also show a working HTML page instead of XML, which is powered by XSLT via a patched version of RSS.Beauty.
iCalendar
iCalendar (ICS) subscription is also available as an alternative to RSS. Personally I use ICSx⁵ on Android to manage subscription.
Search
Powered by pagefind (Rust & WASM under the hood, thus requiring JavaScript). Simply head to /search and explore a bit.
CJK segmentation support is limited and requires manual spacing. Simple words should work fine though.
Dark
As one of those who values their retinas when working at 3 AM, I take pride in the membership of darktheme.club.
PGP-Signed
Pages are signed with my GnuPG key1.
Fingerprint: 58222FDBCBFB1D0D51AE0088C20D48DA42BADC2E.
We use about in this example (self-reference🤣):
# import public key into GnuPG
wget https://blog.vinfall.com/pubkey.asc
gpg --import ./pubkey.asc
# download and verify
wget https://blog.vinfall.com/about/index.html{,.asc}
TZ=UTC gpg --no-options --keyid-format long --verify index.html.asc index.html
The above should output a message containing Good signature,
otherwise the file is corrupted.
As long as you download the public key from the site and the fingerprint matches, you may discard any additional warning.
FIN
OK, so much talk on a site that transfers only 70 kB data2 when visiting this page. It cannot beat the speed of sourcehut3, but it gets most of my aesthetics & philosophy delivered.
If you want this feature in your site, check Add PGP Signature to Hugo/Hexo/Any Static Site. Regarding the Perfect GPG Keychain could also be useful. ↩︎
Open developer tools and check it yourself. ↩︎
