{{- $wbmLinks := (slice "https://si3t.ch/log/2021-04-18-entetes-floc.html" "https://xmpp.org/2021/02/newsletter-02-feburary/" "https://gurlic.com/technology/post/393626430212145157" "https://gurlic.com/technology/post/343249858599059461" "https://www.librepunk.club/@penryn/108411423190214816" "https://benign.town/@josias/108457015755310198" "http://www.tuxmachines.org/node/148146" "https://i.reddit.com/r/web_design/comments/k0dmpj/an_opinionated_list_of_best_practices_for_textual/gdmxy4u/" "https://bbbhltz.space/posts/thoughts-on-tech-feb2021/" "https://jorts.horse/@alice/108477866954580532" "https://brid.gy/comment/mastodon/@Seirdy@pleroma.envs.net/AK7FeQ4h2tUCKNwlXc/AK7GtGkE7JOVgm1Cgi" "https://fosstodon.org/@werwolf/108529382741681838" "https://mastodon.social/@WahbAllat/108986614624476982" "https://linuxrocks.online/@friend/109029028283860044" "https://fosstodon.org/@fullstackthaumaturge/108765040526523487" "https://inhji.de/notes/an-opinionated-list-of-best-practices-for-textual-websites" "https://ravidwivedi.in/whatsapp/" "https://hackers.town/@theruran/108440680870400884" "https://hackers.town/@theruran/108440475936938471" "https://mckinley.cc/twtxt/2022-may-aug.html#2022-06-25T16:06:07-07:00" "https://tarnkappe.info/lesetipps-bayern-it-sicherheit-db-app-trackt-neue-eu-datenbank/" "https://catcatnya.com/@kescher/109221687024062842" "https://catcatnya.com/@kescher/109221707054861018" "https://catcatnya.com/@kescher/109221721385520640" "https://catcatnya.com/@kescher/109221750082044200" "https://brid.gy/post/twitter/seirdy/1536747178877673475" "https://markesler.com/blog/website-design/" "https://catcatnya.com/@kescher/108601418196537980" "https://chaos.social/@n0toose/109035270210401105" "https://nicfab.it/en/posts/aware-digital-communication-respecting-privacy-and-the-apps-or-services-you-choose/" "https://haxf4rall.com/2022/09/23/a-collection-of-articles-about-hardening-linux/" "https://mastodon.randomroad.social/@dctrud/108680634691924661" "https://brid.gy/post/twitter/seirdy/1535891978969174016" "https://mastodon.technology/@codeberg/108403449317373462" "https://harveyr.net/posts/14kb/" "https://brid.gy/comment/mastodon/@Seirdy@pleroma.envs.net/ANUjukccjwEmivz3ia/ANUmmjSDUviUeCz42S" "https://forum.fedeproxy.eu/t/keep-platform-open-article/161" "https://forum.forgefriends.org/t/keep-platform-open-article/161" "https://collapsitarian.io/notice/AP5QssaOBF4HLmDf8q") -}} {{- $rewritesDict := dict "" "" -}} {{- range $i, $r := (getCSV "," "/csv/rewrites.csv") -}} {{- $rewritesDict = merge $rewritesDict (dict (index $r 0) (index $r 1)) -}} {{- end -}}

Web­mentions

This site supports Webmentions, a backlink-based alternative to traditional comment forms.

Send a Webmention{{ partial "webmention-form.html" . }}
{{- /* Fetch all webmentions with bearer token */ -}} {{- $allMentions := (index .Site.Data "webmentions").items -}} {{- /* Filter webmentions to just the ones for the current targets */ -}} {{- $canonicalRelPermalink := .RelPermalink | replaceRE "^/~seirdy/" "/" -}} {{- $target := printf "%s%s" .Site.Params.CanonicalBaseURL $canonicalRelPermalink -}} {{- $targets := (slice $target) -}} {{- /* commit c84c8d4 changed my URL schemes, so fetch menchies for the legacy scheme on old posts. */ -}} {{- if lt .Date.Unix 1653616670 -}} {{- $oldTarget := $target | replaceRE "/posts" "" | replaceRE "/$" ".html" -}} {{ $targets = (slice $target $oldTarget) }} {{- end -}} {{- /* We can't just use a simple "where" function because we need to ignore URL anchors when making a comparison: https://discourse.gohugo.io/t/add-like-comparison-operator-to-the-where-function/42013/4 */ -}} {{- $webmentions := slice -}} {{- range $allMentions -}} {{- if in $targets .target -}} {{ $webmentions = $webmentions | append . }} {{- else -}} {{- $fragment := printf `#%s` (urls.Parse .target).Fragment -}} {{- if gt (len $fragment) 1 -}} {{- $trimmedTarget := strings.TrimSuffix $fragment .target -}} {{- if in $targets $trimmedTarget -}} {{ $webmentions = $webmentions | append . }} {{- end -}} {{- end -}} {{- end -}} {{- end -}} {{- /* Render webmentions if they exist */ -}} {{- $count := (len $webmentions) -}} {{- if gt $count 0 -}}
Toggle {{ $count }} Webmentions

Webmentions received for this post appear in the following list after I approve them. I sometimes send Webmentions to myself on behalf of linking sites that don’t support them. I auto-replace broken links with Wayback Machine snapshots, if they exist.

{{ range sort $webmentions "created_at" -}} {{ $webmention := . -}} {{- /* Boolean: should we should handle this webmention like a comment or a linkback? */ -}} {{- $hasContent := and (isset $webmention "content") (gt (countrunes $webmention.content) 50) -}} {{- $title := $webmention.title -}} {{- /* Remove extraneous crap from Fediverse webmentions */ -}} {{- if findRE "@Seirdy" $webmention.title -}} {{- $title = $title | replaceRE `^@Seirdy@pleroma.envs.net(\n| )?` "" -}} {{- /* Mastodon webmentions may include the author in the title followed by a colon; this is redundant. */ -}} {{- if and (isset $webmention "author_name") (findRE `@` $webmention.source) (not (findRE "^https://bridg.gy" $webmention.source)) -}} {{ $title = $title | replaceRE `^[^:]{0,20}: ?` "" | replaceRE `^"@Seirdy@pleroma.envs.net ?` `"` }} {{- end -}} {{- end -}} {{- if and ($hasContent) (gt (countrunes $webmention.title) 128) -}} {{- $title = $webmention.title | strings.TrimSuffix "…" | truncate 128 -}} {{- end -}} {{- $src := $webmention.source -}} {{- with index $rewritesDict $src -}} {{- $src = . -}} {{- end -}} {{- if in $wbmLinks $src -}} {{- $src = printf "https://web.archive.org/web/0/%s" $src -}} {{- end -}} {{ if (eq $webmention.type "like") -}}
{{- else -}}
{{- end -}}
{{ if (eq $webmention.type "like") -}} {{ if $webmention.author_name -}} {{ $webmention.author_name }} {{ else if $webmention.title -}} {{ $webmention.title | replaceRE ` \n` ` ` -}} {{ else -}} {{ $webmention.source | strings.TrimPrefix "https://" | strings.TrimPrefix "www." | strings.TrimRight "/" | truncate 35 -}} {{ end -}} this {{- else -}} {{- if findRE `^https://brid.gy/[^/]*/mastodon` $webmention.source -}} {{- $canonicalSrc := replaceRE "https://brid.gy/.*mastodon/@Seirdy@pleroma.envs.net/([^/]*)(.*)?" `https://pleroma.envs.net/notice/$1` $src -}} {{- if $webmention.author_name }} by {{- end -}} {{- if $hasContent -}} {{- if findRE `^https://brid.gy/[^/]*/mastodon` $webmention.source -}}

This comment may have major formatting errors that could impact screen reader comprehension.

{{- end -}}

{{ $webmention.content | replaceRE `^@Seirdy(@pleroma.envs.net)? ?` "" | replaceRE `([ \t]*)?\n*([ \t]*)?` ` ` | trim "\n\t" | chomp}}

{{- end -}} {{- end }}
{{- end -}}
{{ else -}}

This post does not have any approved Webmentions yet.

{{- end }}

Feel free to contact me directly with feedback; here’s my contact info