2022-11-20 21:26:57 +00:00
< h3 id = "webmentions" tabindex = "-1" > Web­ mentions< / h3 >
2023-01-05 05:19:54 +00:00
< p > This site supports < a href = "https://indieweb.org/Webmention" > Webmentions< / a > , a backlink-based alternative to traditional comment forms.< / p >
2023-11-25 20:53:36 +00:00
< details > < summary > Send a Webmention< / summary > {{ partial "webmentions/webmention-form.html" . }}< / details >
2022-12-19 18:23:00 +00:00
{{- /* 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 -}}
2023-11-18 01:20:38 +00:00
{{- /* We can't just use a simple "where" function because we need to ignore URL anchors/query-params when making a comparison: https://discourse.gohugo.io/t/add-like-comparison-operator-to-the-where-function/42013/4 */ -}}
2023-07-23 00:26:11 +00:00
{{- $webmentions := slice -}}
2023-11-25 20:53:36 +00:00
{{- range partialCached "webmentions/all-webmentions.html" . -}}
2023-11-29 14:45:53 +00:00
{{- $u := urls.Parse .target -}}
{{- $trimmedTarget := printf `https://%s%s` $u.Hostname $u.Path -}}
{{- if in $targets $trimmedTarget -}}
2023-07-23 00:26:11 +00:00
{{ $webmentions = $webmentions | append . }}
{{- end -}}
{{- end -}}
2022-12-19 18:23:00 +00:00
{{- /* Render webmentions if they exist */ -}}
{{- $count := (len $webmentions) -}}
2023-11-29 03:45:12 +00:00
{{- .Page.Scratch.Set "webmentionCount" $count -}}<!-- For use in atom feed -->
2022-12-19 18:23:00 +00:00
{{- if gt $count 0 -}}
2022-11-20 21:26:57 +00:00
< details >
2022-12-19 18:23:00 +00:00
< summary > Toggle {{ $count }} Webmentions< / summary >
2023-05-27 04:09:31 +00:00
< p > 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 < a href = "https://web.archive.org/" > Wayback Machine< / a > snapshots, if they exist.< / p >
2022-11-20 21:26:57 +00:00
< dl >
{{ range sort $webmentions "created_at" -}}
2022-12-19 18:23:00 +00:00
{{ $webmention := . -}}
2022-11-20 21:26:57 +00:00
{{- /* 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. */ -}}
2023-11-29 14:45:53 +00:00
{{- if and (isset $webmention "author_name") (findRE `@` $webmention.source) (not (findRE "^https://brid.gy" $webmention.source)) -}}
2022-11-20 21:26:57 +00:00
{{ $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 -}}
2023-11-25 20:53:36 +00:00
{{- with index (partialCached "webmentions/rewrites.html" .) $src -}}
2022-11-20 21:26:57 +00:00
{{- $src = . -}}
{{- end -}}
2023-11-25 20:53:36 +00:00
{{- if in (partialCached "webmentions/wbm-links.html" .) $src -}}
2022-11-20 21:26:57 +00:00
{{- $src = printf "https://web.archive.org/web/0/%s" $src -}}
{{- end -}}
{{ if (eq $webmention.type "like") -}}
< div itemprop = "potentialAction" itemscope = "" itemtype = "https://schema.org/LikeAction" class = "u-like h-cite" >
{{- else -}}
< div itemprop = "comment" itemscope = "" itemtype = "https://schema.org/Comment" class = "u-comment h-cite" >
{{- end -}}
<!-- Will eventually add role="comment" once WAI - ARIA 1.3 starts seeing some adoption. -->
< dt >
< time
class="dt-published"
itemprop="{{ if (eq $webmention.type "like") -}}startTime{{ else }}datePublished{{ end }}"
datetime="{{ dateFormat "2006-01-02 15:04:05Z07:00" $webmention.created_at }}">
{{ dateFormat "2006-01-02" $webmention.created_at }}
< / time >
< / dt >
< dd >
2022-06-04 23:43:31 +00:00
{{ if (eq $webmention.type "like") -}}
2022-11-20 21:26:57 +00:00
{{ if $webmention.author_name -}}
< span itemprop = "agent" itemscope = "" itemtype = "https://schema.org/Person" class = "h-card p-author vcard" > < span itemprop = "name" class = "p-name fn n" > {{ $webmention.author_name }}< / span > < / span >
{{ else if $webmention.title -}}
< span itemprop = "name" class = "p-name" > {{ $webmention.title | replaceRE ` \n` `
2022-09-18 23:06:04 +00:00
` -}}< / span >
2022-11-20 21:26:57 +00:00
{{ else -}}
{{ $webmention.source | strings.TrimPrefix "https://" | strings.TrimPrefix "www." | strings.TrimRight "/" | truncate 35 -}}
{{ end -}}
< a class = "u-url" itemprop = "url" href = "{{ $src }}" rel = "nofollow ugc" > liked< / a > this
2023-10-07 01:22:18 +00:00
{{- else -}}
2022-12-20 03:53:41 +00:00
{{- if findRE `^https://brid.gy/[^/]*/mastodon` $webmention.source -}}
2022-12-20 21:50:45 +00:00
{{- $canonicalSrc := replaceRE "https://brid.gy/.*mastodon/@Seirdy@pleroma.envs.net/([^/]*)(.*)?" `https://pleroma.envs.net/notice/$1` $src -}}
2022-12-20 03:53:41 +00:00
< a class = "u-url" itemprop = "url" href = "{{ $canonicalSrc }}" rel = "nofollow ugc" >
{{- else -}}
2022-11-20 21:26:57 +00:00
< a class = "u-url" itemprop = "url" href = "{{ $src }}" rel = "nofollow ugc" >
2022-12-20 03:53:41 +00:00
{{- end -}}
2022-11-20 21:26:57 +00:00
< span itemprop = "name" class = "p-name" >
{{ if $webmention.title -}}
2023-10-07 01:22:18 +00:00
{{ $title | truncate 200 | replaceRE ` *\n` `
2022-11-20 21:26:57 +00:00
` | safeHTML -}}
2022-06-04 23:43:31 +00:00
{{ else -}}
2023-10-07 01:22:18 +00:00
{{- $webmention.source | strings.TrimPrefix "https://" | strings.TrimPrefix "www." | strings.TrimRight "/" | replaceRE ` *\n` "\n" | truncate 35 -}}
2022-06-04 23:43:31 +00:00
{{ end -}}
2022-11-20 21:26:57 +00:00
< /span
>< / a >
{{- if $webmention.author_name }}
by < span itemprop = "author" itemscope = "" itemtype = "https://schema.org/Person" class = "h-card p-author vcard" > < span itemprop = "name" class = "p-name fn n" > {{ $webmention.author_name }}< / span > < / span >
{{- end -}}
{{- if $hasContent -}}
{{- if findRE `^https://brid.gy/[^/]*/mastodon` $webmention.source -}}
< p role = "doc-tip" itemprop = "accessibilitySummary" > This comment may have major formatting errors that could impact screen reader comprehension.< / p >
{{- end -}}
2023-10-12 21:24:32 +00:00
< p > < q itemprop = "text" class = "p-content" > {{ $webmention.content | replaceRE `^@Seirdy(@pleroma.envs.net)? ?` "" | chomp}}< / q > < / p >
2022-11-20 21:26:57 +00:00
{{- end -}}
{{- end }}
< / dd >
< / div >
{{- end -}}
< / dl >
< / details >
{{ else -}}
< p > This post does not have any approved Webmentions yet.< / p >
{{- end }}
< p > Feel free to contact me directly with feedback; < a href = "{{ .Site.BaseURL }}about/#location-seirdy-online" > here’ s my contact info< / a > < / p >