mirror of
https://git.sr.ht/~seirdy/seirdy.one
synced 2024-11-10 08:12:11 +00:00
Compare commits
9 commits
0b64e1cf45
...
1e00ee0bec
Author | SHA1 | Date | |
---|---|---|---|
|
1e00ee0bec | ||
|
6e59bd76d8 | ||
|
e88e093238 | ||
|
6f2da751e9 | ||
|
068df74cff | ||
|
dcb08d9fd4 | ||
|
262eee804e | ||
|
b0f70e63f3 | ||
|
3173cd2d29 |
9 changed files with 79 additions and 34 deletions
2
Makefile
2
Makefile
|
@ -64,7 +64,7 @@ validate-html:
|
||||||
|
|
||||||
.PHONY: htmlproofer
|
.PHONY: htmlproofer
|
||||||
htmlproofer:
|
htmlproofer:
|
||||||
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'
|
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'
|
||||||
|
|
||||||
linter-configs/htmltest.yml:
|
linter-configs/htmltest.yml:
|
||||||
rsync $(RSYNCFLAGS) $(RSYNCFLAGS_EXTRA) deploy@seirdy.one:/home/deploy/refcache.json linter-configs/htmltest/refcache.json
|
rsync $(RSYNCFLAGS) $(RSYNCFLAGS_EXTRA) deploy@seirdy.one:/home/deploy/refcache.json linter-configs/htmltest/refcache.json
|
||||||
|
|
|
@ -11,7 +11,9 @@ CHROME_PATH = $(CHROME_DIR)/thorium
|
||||||
CHROMEDRIVER_PATH = $(CHROME_DIR)/chromedriver
|
CHROMEDRIVER_PATH = $(CHROME_DIR)/chromedriver
|
||||||
CHROME_PROFILE ?= /tmp/chrome-lighthouse
|
CHROME_PROFILE ?= /tmp/chrome-lighthouse
|
||||||
JS_FLAGS=''
|
JS_FLAGS=''
|
||||||
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
|
# 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_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'
|
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.
|
# 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.
|
# 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.
|
||||||
|
|
|
@ -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.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>
|
<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>
|
||||||
|
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.5 KiB |
|
@ -25,17 +25,18 @@
|
||||||
|
|
||||||
/* Only color <a> if it's a link; if href is empty, let it be. */
|
/* Only color <a> if it's a link; if href is empty, let it be. */
|
||||||
a:link {
|
a:link {
|
||||||
color: #eee7b2;
|
color: #eee8a7;
|
||||||
}
|
}
|
||||||
|
|
||||||
a:visited {
|
a:visited {
|
||||||
color: #ffdaff;
|
color: #ffdaff;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* For users who request less contrast, target ACPA Lc of -85 to -86 */
|
/* For users who request less contrast, target ACPA Lc near -80 */
|
||||||
@media (prefers-contrast: less) {
|
@media (prefers-contrast: less) {
|
||||||
html {
|
html,
|
||||||
background-color: #333;
|
input {
|
||||||
|
background-color: #444;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,10 +51,16 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* For users who request more contrast, target ACPA Lc near -96 */
|
/* 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. */
|
||||||
@media (prefers-contrast: more) {
|
@media (prefers-contrast: more) {
|
||||||
html {
|
html,
|
||||||
background-color: #111;
|
input {
|
||||||
|
background-color: #0d0d0d;
|
||||||
color: #eee;
|
color: #eee;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -45,24 +45,4 @@ 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).
|
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, [see the "meta" section](./meta/).
|
For more information about the site, its design, and available feeds: [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>
|
|
||||||
|
|
||||||
|
|
|
@ -38,12 +38,12 @@ This site is featured in some cool directories.
|
||||||
- [Gossip's Web](https://gossipsweb.net/personal-websites)
|
- [Gossip's Web](https://gossipsweb.net/personal-websites)
|
||||||
- [Nixers](https://github.com/nixers-projects/sites/wiki/List-of-nixers.net-user-sites)
|
- [Nixers](https://github.com/nixers-projects/sites/wiki/List-of-nixers.net-user-sites)
|
||||||
- [Smooth Sailing](https://smoothsailing.asclaria.org/)
|
- [Smooth Sailing](https://smoothsailing.asclaria.org/)
|
||||||
|
- [Ye Olde Blogroll](https://blogroll.org/)
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Pending directories</summary>
|
<summary>Pending directories</summary>
|
||||||
|
|
||||||
- [Nerd Listings](https://nerdlistings.info/category/personalsites/) (pending)
|
- [Nerd Listings](https://nerdlistings.info/category/personalsites/) (pending)
|
||||||
- [Ye Olde Blogroll](https://blogroll.org/) (pending)
|
|
||||||
- [LinkLane](https://www.linklane.net/) (pending)
|
- [LinkLane](https://www.linklane.net/) (pending)
|
||||||
- [Blog Surf](https://blogsurf.io/) (pending)
|
- [Blog Surf](https://blogsurf.io/) (pending)
|
||||||
|
|
||||||
|
|
39
content/meta/feeds.md
Normal file
39
content/meta/feeds.md
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
---
|
||||||
|
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 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.
|
||||||
|
|
17
content/notes/document-policy-and-image-compression.md
Normal file
17
content/notes/document-policy-and-image-compression.md
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
---
|
||||||
|
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.
|
||||||
|
|
|
@ -15,11 +15,11 @@
|
||||||
Reply to <span class="h-cite in-reply-to" itemprop="about" itemscope="" itemtype="https://schema.org/{{ $schemaType }}">
|
Reply to <span class="h-cite in-reply-to" itemprop="about" itemscope="" itemtype="https://schema.org/{{ $schemaType }}">
|
||||||
<cite itemprop="name" class="p-name">
|
<cite itemprop="name" class="p-name">
|
||||||
<a class="u-url" itemprop="url" href="{{ .replyURI }}">{{ .replyTitle | safeHTML}}</a>
|
<a class="u-url" itemprop="url" href="{{ .replyURI }}">{{ .replyTitle | safeHTML}}</a>
|
||||||
</cite> by
|
</cite>{{ if .replyAuthor }} by
|
||||||
<span itemprop="{{ $replyAuthorRel }}" itemscope="" itemtype="https://schema.org/{{ $replyAuthorType }}" class="h-card vcard p-author">
|
<span itemprop="{{ $replyAuthorRel }}" itemscope="" itemtype="https://schema.org/{{ $replyAuthorType }}" class="h-card vcard p-author">
|
||||||
<a itemprop="url" href="{{ .replyAuthorURI }}" class="u-url url">
|
<a itemprop="url" href="{{ .replyAuthorURI }}" class="u-url url">
|
||||||
<span itemprop="name" class="p-name fn n">{{ .replyAuthor }}</span></a>
|
<span itemprop="name" class="p-name fn n">{{ .replyAuthor }}</span></a>
|
||||||
</span>
|
</span>{{ end }}
|
||||||
</span>
|
</span>
|
||||||
</p>
|
</p>
|
||||||
</aside>
|
</aside>
|
||||||
|
|
Loading…
Reference in a new issue