1
0
Fork 0
mirror of https://git.sr.ht/~seirdy/seirdy.one synced 2024-11-23 21:02:09 +00:00

Remove extra target URL components for webmentions

Remove query params, port numbers, bad schemes, anchors, etc. from
webmention target URLs.
This commit is contained in:
Rohan Kumar 2023-11-17 17:20:38 -08:00
parent 66b6ac0dbc
commit 25367c55e7
No known key found for this signature in database
GPG key ID: 1E892DB2A5F84479

View file

@ -17,21 +17,19 @@
{{- $oldTarget := $target | replaceRE "/posts" "" | replaceRE "/$" ".html" -}} {{- $oldTarget := $target | replaceRE "/posts" "" | replaceRE "/$" ".html" -}}
{{ $targets = (slice $target $oldTarget) }} {{ $targets = (slice $target $oldTarget) }}
{{- end -}} {{- 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 */ -}} {{- /* 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 */ -}}
{{- $webmentions := slice -}} {{- $webmentions := slice -}}
{{- range $allMentions -}} {{- range $allMentions -}}
{{- if in $targets .target -}} {{- if in $targets .target -}}
{{ $webmentions = $webmentions | append . }} {{ $webmentions = $webmentions | append . }}
{{- else -}} {{- else -}}
{{- $fragment := printf `#%s` (urls.Parse .target).Fragment -}} {{- $u := urls.Parse .target -}}
{{- if gt (len $fragment) 1 -}} {{- $trimmedTarget := printf `https://%s%s` $u.Hostname $u.Path -}}
{{- $trimmedTarget := strings.TrimSuffix $fragment .target -}}
{{- if in $targets $trimmedTarget -}} {{- if in $targets $trimmedTarget -}}
{{ $webmentions = $webmentions | append . }} {{ $webmentions = $webmentions | append . }}
{{- end -}} {{- end -}}
{{- end -}} {{- end -}}
{{- end -}} {{- end -}}
{{- end -}}
{{- /* Render webmentions if they exist */ -}} {{- /* Render webmentions if they exist */ -}}
{{- $count := (len $webmentions) -}} {{- $count := (len $webmentions) -}}
{{- if gt $count 0 -}} {{- if gt $count 0 -}}