1
0
Fork 0
mirror of https://git.sr.ht/~seirdy/seirdy.one synced 2024-11-30 15:22:09 +00:00

Compare commits

..

No commits in common. "1e00ee0bec57ba1b8435e648c8cb1640984d706a" and "0b64e1cf4530cef63371a4cd7e114ae8744dadfe" have entirely different histories.

9 changed files with 34 additions and 79 deletions

View file

@ -64,7 +64,7 @@ validate-html:
.PHONY: htmlproofer
htmlproofer:
htmlproofer $(OUTPUT_DIR) --disable-external --checks Images,Scripts,Favicon,OpenGraph --ignore-empty-alt=true --ignore-files $(OUTPUT_DIR)/search/index.html --enforce-https=false --ignore-urls '../music.txt'
htmlproofer $(OUTPUT_DIR) --disable-external --report-invalid-tags --report-missing-names --report-missing-doctype --report-eof-tags --report-mismatched-tags --check-html --check-opengraph --check-favicon --empty-alt-ignore --file-ignore $(OUTPUT_DIR)/search/index.html --url-ignore '../music.txt'
linter-configs/htmltest.yml:
rsync $(RSYNCFLAGS) $(RSYNCFLAGS_EXTRA) deploy@seirdy.one:/home/deploy/refcache.json linter-configs/htmltest/refcache.json

View file

@ -11,9 +11,7 @@ CHROME_PATH = $(CHROME_DIR)/thorium
CHROMEDRIVER_PATH = $(CHROME_DIR)/chromedriver
CHROME_PROFILE ?= /tmp/chrome-lighthouse
JS_FLAGS=''
# We enable experimental web platform features so the Document-Policy header is enforced
# #
CHROME_FLAGS += --headless --disable-extensions --no-default-browser-check --disable-client-side-phishing-detection --disable-component-update --disable-default-apps --disable-device-discovery-notifications --disable-domain-reliability --disable-background-timer-throttling --disable-breakpad --enable-blink-features=LayoutInstabilityAPI --enable-features=UseDnsHttpsSvcb,UseDnsHttpsSvcbAlpn --no-first-run --disable-background-networking --user-data-dir=$(CHROME_PROFILE) --enable-experimental-web-platform-features --enable-quic --origin-to-force-quic-on=staging.seirdy.one:443
CHROME_FLAGS += --headless --disable-extensions --no-default-browser-check --disable-client-side-phishing-detection --disable-component-update --disable-default-apps --disable-device-discovery-notifications --disable-domain-reliability --disable-background-timer-throttling --disable-breakpad --enable-blink-features=LayoutInstabilityAPI --no-first-run --disable-background-networking --user-data-dir=$(CHROME_PROFILE) --enable-quic --start-in-incognito --origin-to-force-quic-on=seirdy.one:443
CHROME_FLAGS_COMMA = 'disable-extensions,no-default-browser-check,disable-client-side-phishing-detection,disable-component-update,disable-default-apps,disable-device-discovery-notifications,disable-domain-reliability,disable-background-timer-throttling,disable-breakpad,no-first-run,disable-background-networking,js-flags=--jitless'
# When quiet, my lappie's CPU power is benchmarked to be ~1320. The CPU throttling calculator recommends throttling by 3.1x.
# Multiply that by 4 cuz imo it's way too generous. It targets devices like the Moto G4; I target devices like the JioPhone 2.

View file

@ -1 +1 @@
<svg height="72" width="144" viewBox="0 0 144 72" xmlns="http://www.w3.org/2000/svg"><path d="M0 0h144v72H0z"/><path d="M60.5 50.71c-.72 0-1.42-.1-2.1-.33-.7-.2-1.28-.57-1.78-1.07-.5-.5-.87-1.1-1.08-1.78-.22-.7-.33-1.4-.33-2.11s.1-1.42.33-2.1c.2-.7.57-1.28 1.08-1.78.5-.5 1.1-.87 1.78-1.08.68-.22 1.38-.32 2.1-.32s1.42.1 2.1.32c.7.2 1.28.57 1.78 1.08.51.5.87 1.1 1.08 1.78.22.68.33 1.38.33 2.1s-.1 1.42-.33 2.11c-.21.68-.57 1.27-1.08 1.78-.5.5-1.1.86-1.78 1.07-.68.22-1.38.33-2.1.33zm0-18.88c-.72 0-1.42-.1-2.1-.33-.7-.2-1.28-.57-1.78-1.07-.5-.5-.87-1.1-1.08-1.78-.22-.7-.33-1.4-.33-2.11s.1-1.42.33-2.1c.2-.68.57-1.28 1.08-1.78.5-.5 1.1-.86 1.78-1.08.68-.22 1.38-.32 2.1-.32s1.42.1 2.1.32c.69.22 1.28.57 1.78 1.08.51.5.87 1.1 1.08 1.78.22.68.33 1.38.33 2.1s-.1 1.42-.33 2.11c-.21.68-.57 1.27-1.08 1.78-.5.5-1.1.86-1.78 1.07-.68.22-1.38.33-2.1.33zm21.52 29.5-4-3.12c2.12-2.52 3.64-5 4.53-7.56-.82-.1-1.6-.4-2.3-.9-.7-.48-1.2-1.12-1.5-1.9-.3-.8-.46-1.6-.46-2.43 0-.72.1-1.42.33-2.1.2-.69.57-1.28 1.08-1.78.5-.5 1.1-.87 1.78-1.08.68-.22 1.38-.32 2.1-.32s1.42.1 2.1.32c.69.2 1.28.57 1.78 1.08.51.5.87 1.1 1.08 1.78.22.68.33 1.38.33 2.1v.27c-.1 5.22-2.32 10.43-6.75 15.64zm1.46-29.5c-.72 0-1.42-.1-2.1-.33-.7-.2-1.28-.57-1.78-1.07-.5-.5-.87-1.1-1.08-1.78-.22-.7-.33-1.4-.33-2.11s.1-1.42.33-2.1c.2-.68.57-1.28 1.08-1.78.5-.5 1.1-.86 1.78-1.08.68-.22 1.38-.32 2.1-.32s1.42.1 2.1.32c.69.22 1.28.57 1.78 1.08.51.5.87 1.1 1.08 1.78.22.68.33 1.38.33 2.1s-.1 1.42-.33 2.11c-.21.68-.57 1.27-1.08 1.78-.5.5-1.09.86-1.78 1.07-.68.22-1.38.33-2.1.33z" fill="#fff"/></svg>
<svg height="72" width="144" viewBox="0 0 144 72" xmlns="http://www.w3.org/2000/svg"><path d="M0 0h144v72H0z"/><path d="M60.51 50.71c-.72 0-1.42-.11-2.1-.33-.69-.21-1.28-.57-1.78-1.07-.51-.51-.87-1.1-1.08-1.78-.22-.69-.33-1.39-.33-2.11s.11-1.42.33-2.1c.21-.69.57-1.28 1.08-1.78.5-.51 1.09-.87 1.78-1.08.68-.22 1.38-.32 2.1-.32s1.42.1 2.1.32c.69.21 1.28.57 1.78 1.08.51.5.87 1.09 1.08 1.78.22.68.33 1.38.33 2.1s-.11 1.42-.33 2.11c-.21.68-.57 1.27-1.08 1.78-.5.5-1.09.86-1.78 1.07-.68.22-1.38.33-2.1.33zm0-18.88c-.72 0-1.42-.11-2.1-.33-.69-.21-1.28-.57-1.78-1.07-.51-.51-.87-1.1-1.08-1.78-.22-.69-.33-1.39-.33-2.11s.11-1.42.33-2.1c.21-.68.57-1.28 1.08-1.78.5-.51 1.09-.86 1.78-1.08.68-.22 1.38-.32 2.1-.32s1.42.1 2.1.32c.69.22 1.28.57 1.78 1.08.51.5.87 1.1 1.08 1.78.22.68.33 1.38.33 2.1s-.11 1.42-.33 2.11c-.21.68-.57 1.27-1.08 1.78-.5.5-1.09.86-1.78 1.07-.68.22-1.38.33-2.1.33zm21.52 29.5-4.01-3.12c2.12-2.52 3.64-5.04 4.53-7.56-.82-.1-1.59-.4-2.29-.89-.7-.48-1.2-1.12-1.51-1.91-.3-.79-.46-1.6-.46-2.43 0-.72.11-1.42.33-2.1.21-.69.57-1.28 1.08-1.78.5-.51 1.09-.87 1.78-1.08.68-.22 1.38-.32 2.1-.32s1.42.1 2.1.32c.69.21 1.28.57 1.78 1.08.51.5.87 1.09 1.08 1.78.22.68.33 1.38.33 2.1v.27c-.08 5.22-2.32 10.43-6.75 15.64zm1.46-29.5c-.72 0-1.42-.11-2.1-.33-.69-.21-1.28-.57-1.78-1.07-.51-.51-.87-1.1-1.08-1.78-.22-.69-.33-1.39-.33-2.11s.11-1.42.33-2.1c.21-.68.57-1.28 1.08-1.78.5-.51 1.09-.86 1.78-1.08.68-.22 1.38-.32 2.1-.32s1.42.1 2.1.32c.69.22 1.28.57 1.78 1.08.51.5.87 1.1 1.08 1.78.22.68.33 1.38.33 2.1s-.11 1.42-.33 2.11c-.21.68-.57 1.27-1.08 1.78-.5.5-1.09.86-1.78 1.07-.68.22-1.38.33-2.1.33z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View file

@ -25,18 +25,17 @@
/* Only color <a> if it's a link; if href is empty, let it be. */
a:link {
color: #eee8a7;
color: #eee7b2;
}
a:visited {
color: #ffdaff;
}
/* For users who request less contrast, target ACPA Lc near -80 */
/* For users who request less contrast, target ACPA Lc of -85 to -86 */
@media (prefers-contrast: less) {
html,
input {
background-color: #444;
html {
background-color: #333;
}
}
@ -51,16 +50,10 @@
}
}
/* For users who request more contrast, target ACPA Lc near -96.
* I have a monitor with terrible contrast so I use
* "prefers-contrast: more" and this amount works for me.
* People complained that the lobste.rs dark theme has too much
* contrast, so I made that my baseline and exceeded it ever so
* slightly. */
/* For users who request more contrast, target ACPA Lc near -96 */
@media (prefers-contrast: more) {
html,
input {
background-color: #0d0d0d;
html {
background-color: #111;
color: #eee;
}

View file

@ -45,4 +45,24 @@ This is a basic [IndieWeb site](https://indieweb.org/).
In addition to its [canonical url](https://seirdy.one), a "rough draft" of this website also exists on my [Tildeverse page](https://envs.net/~seirdy/). This site's content also appears on my [Gemini capsule](gemini://seirdy.one).
For more information about the site, its design, and available feeds: [see the "meta" section](./meta/).
For more information about the site, [see the "meta" section](./meta/).
<details>
<summary>Feeds</summary>
I offer some feeds in Atom format:
- [Combined feed](./atom.xml)
- [Articles feed](./posts/atom.xml)
- [Notes feed](./notes/atom.xml)
If you experience issues with Atom feeds, try an RSS feed:
- [Legacy combined RSS feed](./index.xml)
- [Legacy articles feed](./posts/index.xml)
- [Legacy notes feed](./notes/index.xml)
I recommend using the Atom feeds.
</details>

View file

@ -38,12 +38,12 @@ This site is featured in some cool directories.
- [Gossip's Web](https://gossipsweb.net/personal-websites)
- [Nixers](https://github.com/nixers-projects/sites/wiki/List-of-nixers.net-user-sites)
- [Smooth Sailing](https://smoothsailing.asclaria.org/)
- [Ye Olde Blogroll](https://blogroll.org/)
<details>
<summary>Pending directories</summary>
- [Nerd Listings](https://nerdlistings.info/category/personalsites/) (pending)
- [Ye Olde Blogroll](https://blogroll.org/) (pending)
- [LinkLane](https://www.linklane.net/) (pending)
- [Blog Surf](https://blogsurf.io/) (pending)

View file

@ -1,39 +0,0 @@
---
date: "2022-08-12T00:00:01-07:00"
evergreen: true
title: "Feeds"
outputs:
- html
description: "Full-text Atom and RSS feeds for this site and its sub-sections."
---
This site has multiple feeds for different sections. I offer both Atom and RSS feeds; I strongly recommend using the Atom feeds, as I don't really make an effort to validate my RSS feeds. I only keep the RSS feeds around for compatibility with legacy clients.
They contain the full-text of their entries; this means that the "Combined" feed doubles as a single-file archive of all my content. It's also rather big, weighing almost a megabyte before compression (under 200&#160;kb after Brotli compression). Don't refresh more often than you need to.
Once the compressed size of an Atom feed crosses half a megabyte, I'll consider setting up paginated feeds.
Atom feeds
----------
Enjoy!
- [Combined feed](../../atom.xml)
- [Articles feed](../../posts/atom.xml)
- [Notes feed](../../notes/atom.xml)
RSS feeds
---------
If you experience issues with Atom feeds, try an RSS feed:
- [Legacy combined RSS feed](../../index.xml)
- [Legacy articles feed](../../posts/index.xml)
- [Legacy notes feed](../../notes/index.xml)
Compatibility notes
-------------------
I tested the feeds to work well in Newsboat, Pale Moon, Vivaldi's feed reader, and a few Firefox-extension-based feed readers. I do not necessarily endorse all these clients.
Surprisingly, Microsoft Outlook supports feeds; however, it can't parse un-escaped XHTML entry contents in my Atom feeds. I escape entry contents in the legacy RSS feeds for broken clients like Outlook.

View file

@ -1,17 +0,0 @@
---
title: "Document policy and image compression"
date: 2022-08-12T17:00:01-07:00
replyURI: "https://github.com/wicg/document-policy/blob/main/document-policy-explainer.md"
replyTitle: "Document Policy Explainer"
replyType: "TechArticle"
---
Interaction between the Document-Policy `*-images-max-bpp` directive and a user-agent's supported image formats is currently unspecified.
Next-gen image formats of the present and future include WebP, AVIF, JPEG-XL, and WebP2. With every new format, new compression ratios become possible; however, cross-browser support is inconsistent. That means possible compression ratios also vary by browser. Fewer supported image formats should allow a less aggressive compression ratio in the Document Policy. Unfortunately, browsers' `Accept` request headers don't always report supported image formats, so servers can't easily compute the best policy for a given browser.
Specifying a per-mimetype compression ratio isn't ideal. Sometimes a PNG can beat AVIF or come close enough to not justify the extra bytes of a `<picture>` element. On a browser with AVIF and PNG support, loaded PNGs should be held to AVIF-level compression expectations.
I think the most robust solution would be to offer multiple image-compression policies to a browser; the browser can then pick the policy that matches its supported image formats. For instance: a server could offer a `max-bpp-supports-webp`, `max-bpp-supports-webp-avif`, `max-bpp-supports-webp-avif-jxl`, etc. Unfortunately, this is really wordy and will only grow more complex as browsers adopt new image formats.
TLDR: in a web where supported image formats can vary, it's unclear how `*-images-max-bpp` and a UA's supported image formats should interact. This variance warrants a policy more complex than a single global value.

View file

@ -15,11 +15,11 @@
Reply to <span class="h-cite in-reply-to" itemprop="about" itemscope="" itemtype="https://schema.org/{{ $schemaType }}">
<cite itemprop="name" class="p-name">
<a class="u-url" itemprop="url" href="{{ .replyURI }}">{{ .replyTitle | safeHTML}}</a>
</cite>{{ if .replyAuthor }} by
</cite> by
<span itemprop="{{ $replyAuthorRel }}" itemscope="" itemtype="https://schema.org/{{ $replyAuthorType }}" class="h-card vcard p-author">
<a itemprop="url" href="{{ .replyAuthorURI }}" class="u-url url">
<span itemprop="name" class="p-name fn n">{{ .replyAuthor }}</span></a>
</span>{{ end }}
</span>
</span>
</p>
</aside>