mirror of
https://git.sr.ht/~seirdy/seirdy.one
synced 2024-11-23 21:02:09 +00:00
Compare commits
No commits in common. "0f930c28f74eafcc2d4a2906fb53b4bf3d438cb0" and "6f2b2d5fff1e19f1f658170bf757de36e2c5aeff" have entirely different histories.
0f930c28f7
...
6f2b2d5fff
14 changed files with 133 additions and 131 deletions
|
@ -1,13 +1,9 @@
|
|||
---
|
||||
# we rsync binaries.tar.gz from the same server we deploy to.
|
||||
# it contains these static-pie binaries:
|
||||
# hugo, brotli, ect (like gzip/zopfli), sd, and xmlfmt.
|
||||
image: alpine/edge
|
||||
packages:
|
||||
- rsync
|
||||
- git # for Hugo's gitInfo
|
||||
- bmake
|
||||
- moreutils
|
||||
sources:
|
||||
- https://git.sr.ht/~seirdy/seirdy.one
|
||||
secrets:
|
||||
|
|
|
@ -13,7 +13,7 @@ sitemap:
|
|||
Seirdy’s Home
|
||||
=============
|
||||
|
||||
I'm <a itemprop="url" href="https://seirdy.one" rel="author me home canonical" class="u-url u-uid url"> {{% indieweb-icon %}} <span itemprop="name" class="p-name fn n"> <span itemprop="givenName" class="p-given-name given-name">Rohan</span> <span itemprop="familyName" class="p-family-name family-name">Kumar</span></span></a>, a.k.a. <span itemprop="alternateName" class="p-nickname nickname">Seirdy</span> (online handle).
|
||||
I'm <a itemprop="url" href="https://seirdy.one" rel="author home canonical me" class="u-url u-uid url"> {{% indieweb-icon %}} <span itemprop="name" class="p-name fn n"> <span itemprop="givenName" class="p-given-name given-name">Rohan</span> <span itemprop="familyName" class="p-family-name family-name">Kumar</span></span></a>, a.k.a. <span itemprop="alternateName" class="p-nickname nickname">Seirdy</span> (online handle).
|
||||
|
||||
Other versions of this website
|
||||
------------------------------
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
template: "notes.html"
|
||||
description: "All the microblogs (\"notes\") on Seirdy's Home"
|
||||
description: "All the notes on Seirdy's Home"
|
||||
title: "Notes"
|
||||
sitemap:
|
||||
ChangeFreq: daily
|
||||
|
|
|
@ -7,7 +7,7 @@ Reply to {{< mention-work itemprop="about" itemtype="SocialMediaPosting" reply=t
|
|||
{{</mention-work>}}
|
||||
</aside>
|
||||
|
||||
Commodification means something else; I'm assuming you're referring to "commoditize", as in "commoditize your complement". Although in this context the words have some _really interesting_ overlap, which is why I brought it up. See {{<mention-work itemprop="citation" role="doc-credit" itemtype="BlogPosting">}}{{<cited-work url="https://rushkoff.com/commodified-vs-commoditized/" name="Commodified vs. Commoditized">}} by {{<indieweb-person first-name="Douglas" last-name="Rushkoff" url="https://rushkoff.com">}}{{</mention-work>}}.
|
||||
Commodification means something else; I'm assuming you're referring to "commoditize", as in "commoditize your complement". Although in this context the words have some _really interesting_ overlap, which is why I brought it up. See {{<mention-work itemprop="citation" role="doc-cite" itemtype="BlogPosting">}}{{<cited-work url="https://rushkoff.com/commodified-vs-commoditized/" name="Commodified vs. Commoditized">}} by {{<indieweb-person first-name="Douglas" last-name="Rushkoff" url="https://rushkoff.com">}}{{</mention-work>}}.
|
||||
|
||||
We are first commodified by being made a complement to a product, then gradually commoditized as complements ideally are.
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ Pale Moon's inception pre-dates Firefox 57 by many years; before its notoriety f
|
|||
|
||||
I hate that Pale Moon is so behind on security because it also has nice stuff that Mozilla axed. Some things were axed for good reason, like extensions with the ability to alter browser functionality. Others were axed without good reason, like built-in RSS/Atom support.
|
||||
|
||||
WebExtensions that fill in missing functionality often require content injection which is problematic for a variety of reasons. To name a few: try visiting a page that has a <samp>sandbox</samp> CSP directive without <samp>allow-same-origin</samp> or <samp>allow-scripts</samp> and see how well it works, saving a page and noticing it has extra scripts or iframes, or seeing addon scripts activate too late when your underpowered machine is under load). It's better than giving them access to browser functionality but nothing beats having features in the actual browser.
|
||||
WebExtensions that fill in missing functionality often require content injection which is problematic for a variety of reasons (try visiting a page that has a <samp>sandbox</samp> CSP directive without `allow-same-origin` or `allow-scripts` and see how well it works, or seeing their scripts activate too late when your underpowered machine is under load). It's better than giving them access to browser functionality but nothing beats having features in the actual browser.
|
||||
|
||||
I still wouldn't recommend it due to extremely weak sandboxing and a naive approach to security. The devs respond to sandboxing queries by saying it's secure because "it separates the content and application" which tells you how little they care or understand; untrusted content needs isolation not just from the browser but from other untrusted content. Given the scope of a browser, even Firefox isn't where it should be (even given their commendable progress on Fission, RLBox, and their utility process overhaul), let alone caught up to the mitigations in Chromium's Blink or WebKit's JavaScriptCore but I digress.
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
template: "posts.html"
|
||||
description: "All the long-form posts on Seirdy's Home"
|
||||
description: "All the posts on Seirdy's Home"
|
||||
title: "Posts"
|
||||
sitemap:
|
||||
ChangeFreq: weekly
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<title>{{ .Section | humanize}} on {{ .Site.Title }}</title>
|
||||
<link rel="self" type="application/atom+xml" href="{{ .Permalink }}atom.xml" />
|
||||
<icon>{{ .Site.Params.icon | absURL }}</icon>
|
||||
<subtitle>{{ .Params.Description }}</subtitle>
|
||||
<subtitle>{{ .Site.Params.Description }}</subtitle>
|
||||
<author>
|
||||
<name>Rohan Kumar</name>
|
||||
<uri>https://seirdy.one/</uri>
|
||||
|
@ -26,9 +26,9 @@
|
|||
</author>
|
||||
<id>{{ .Permalink }}</id>
|
||||
<rights>CC-BY-SA 4.0 by Rohan Kumar</rights>
|
||||
<content type="xhtml" xml:base="{{ .Permalink }}">
|
||||
<content type="xhtml">
|
||||
<div xmlns="http://www.w3.org/1999/xhtml">
|
||||
{{ partial "processed-content.html" . | replaceRE `(?: )?(?:item(type|scope|prop|id|ref)="[^"]*"|class="language-figure")` "" | safeHTML }}
|
||||
{{ partial "processed-content.html" . | replaceRE `(?: )?item(type|scope|prop|id|ref)="[^"]*"` "" | safeHTML }}
|
||||
</div>
|
||||
</content>
|
||||
<object-type xmlns="http://activitystrea.ms/spec/1.0/">
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
<pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
|
||||
{{ with .Site.Author.email }}<author>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</author>{{end}}
|
||||
<guid>{{ .Permalink }}</guid>
|
||||
<description>{{- .Content | replaceRE `(?: )?(?:item(type|scope|prop|id|ref)="[^"]*"|class="language-figure")` "" | html -}}</description>
|
||||
<description>{{- .Content | replaceRE `(?: )?item(type|scope|prop|id|ref)="[^"]*"` "" | html -}}</description>
|
||||
</item>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
|
|
@ -1,80 +1,83 @@
|
|||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
{{- $canonicalRelPermalink := .RelPermalink | replaceRE "^/~seirdy/" "/" }}
|
||||
<meta name="disabled-adaptations" content="watch" /><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
|
||||
{{ if or (eq site.BaseURL site.Params.CanonicalBaseURL) (in site.BaseURL "wgq3bd2kqoybhstp77i3wrzbfnsyd27wt34psaja4grqiezqircorkyd.onion") -}}
|
||||
<meta name="robots" content="index,follow,max-image-preview:large,max-snippet=-1" />
|
||||
{{ end -}}
|
||||
<link href="{{ .Site.Params.CanonicalBaseURL }}{{ $canonicalRelPermalink }}" rel="canonical" />
|
||||
<link href="{{ .Site.Params.WebmentionEndpoint }}" rel="webmention" />
|
||||
{{ $webmanifest := resources.Get "/manifest.webmanifest" | resources.ExecuteAsTemplate "manifest.webmanifest" . | resources.Minify | resources.Fingerprint "md5" -}}
|
||||
{{- printf `<link href="%s" rel="manifest" />` $webmanifest.RelPermalink | safeHTML -}}
|
||||
<!--Feeds for both notes and posts; posts come first unless we're in the notes section.-->
|
||||
{{- $isNotes := false -}}
|
||||
{{- if or (eq .Section "notes") (eq .Title "Notes") -}}
|
||||
{{- $isNotes = true -}}
|
||||
<link rel="alternate" type="application/atom+xml" href="{{ site.BaseURL }}notes/atom.xml" title="Notes" />
|
||||
{{- end }}
|
||||
<link rel="alternate" type="application/atom+xml" href="{{ site.BaseURL }}posts/atom.xml" title="Posts" />
|
||||
{{ if not $isNotes -}}
|
||||
<link rel="alternate" type="application/atom+xml" href="{{ site.BaseURL }}/notes/atom.xml" title="Notes" />
|
||||
{{- end }}
|
||||
<title>{{ .Title }}{{ if and (lt (len .Title) 54) (ne $canonicalRelPermalink "/") }} - Seirdy{{ end }}</title>
|
||||
{{ $description := .Site.Params.Description -}}
|
||||
{{- if .Params.description -}}
|
||||
<meta charset="UTF-8" />
|
||||
{{- $canonicalRelPermalink := .RelPermalink | replaceRE "^/~seirdy/" "/" }}
|
||||
<meta name="disabled-adaptations" content="watch" /><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
|
||||
{{ if or (eq site.BaseURL site.Params.CanonicalBaseURL) (in site.BaseURL "wgq3bd2kqoybhstp77i3wrzbfnsyd27wt34psaja4grqiezqircorkyd.onion") -}}
|
||||
<meta name="robots" content="index,follow,max-image-preview:large,max-snippet=-1" />
|
||||
{{ end -}}
|
||||
<link href="{{ .Site.Params.CanonicalBaseURL }}{{ $canonicalRelPermalink }}" rel="canonical" />
|
||||
<link href="{{ .Site.Params.WebmentionEndpoint }}" rel="webmention" />
|
||||
{{ $webmanifest := resources.Get "/manifest.webmanifest" | resources.ExecuteAsTemplate "manifest.webmanifest" . | resources.Minify | resources.Fingerprint "md5" -}}
|
||||
{{- printf `<link href="%s" rel="manifest" />` $webmanifest.RelPermalink | safeHTML -}}
|
||||
<!--Feeds for both notes and posts; posts come first unless we're in the notes section.-->
|
||||
{{- $isNotes := false -}}
|
||||
{{- if or (eq .Section "notes") (eq .Title "Notes") -}}
|
||||
{{- $isNotes = true -}}
|
||||
<link rel="alternate" type="application/atom+xml" href="{{ site.BaseURL }}notes/atom.xml" title="Notes" />
|
||||
{{- end }}
|
||||
<link rel="alternate" type="application/atom+xml" href="{{ site.BaseURL }}posts/atom.xml" title="Posts" />
|
||||
{{ if not $isNotes -}}
|
||||
<link rel="alternate" type="application/atom+xml" href="{{ site.BaseURL }}/notes/atom.xml" title="Notes" />
|
||||
{{- end }}
|
||||
<title>{{ .Title }}{{ if and (lt (len .Title) 54) (ne $canonicalRelPermalink "/") }} - Seirdy{{ end }}</title>
|
||||
{{ $description := .Site.Params.Description -}}
|
||||
{{- if .Params.description -}}
|
||||
{{- $description = .Params.Description -}}
|
||||
{{- else if .Summary -}}
|
||||
{{- else if .Summary -}}
|
||||
{{- $description = .Summary | replaceRE `\n` ` ` | replaceRE `\’` `’` | replaceRE `\ ` `\ ` | replaceRE `\“` `“` | replaceRE `\”` `”` | replaceRE `\…` `—` | replaceRE `\—` `—` | replaceRE `\­` `\­` | replaceRE `‘` `‘` | safeHTML -}}
|
||||
{{- end -}}
|
||||
<meta name="description" content="{{ $description }}" />
|
||||
<meta name="author" content="{{ .Site.Author.name }}" />
|
||||
<meta property="article:author" content="{{ .Site.Author.name }}" />
|
||||
{{ if and (gt .Date 0) (not .Params.evergreen) -}}
|
||||
<meta property="article:published_time" content="{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}" />
|
||||
{{ end -}}
|
||||
{{ if lt .Date .Lastmod -}}
|
||||
<meta property="article:modified_time" content="{{ .Lastmod.Format "2006-01-02T15:04:05Z07:00" }}" />
|
||||
{{- end -}}
|
||||
<!--the Tor Browser's safest setting disables SVGs but still downloads them to avoid fingerprinting-->
|
||||
{{ if not (in site.BaseURL ".onion") -}}
|
||||
{{ $icon_svg := resources.Get "/favicon.svg" | resources.Fingerprint "md5" }}
|
||||
{{- printf `<link rel="icon" sizes="any" href="%s" type="image/svg+xml" />` $icon_svg.RelPermalink | safeHTML }}
|
||||
{{- end }}
|
||||
{{ $icon_192 := resources.Get "/apple-touch-icon.png" | resources.Fingerprint "md5" }}
|
||||
{{- printf `<link rel="icon" sizes="192x192" href="%s" type="image/png" />` $icon_192.RelPermalink | safeHTML -}}
|
||||
<meta name="color-scheme" content="light dark" />
|
||||
<meta name="format-detection" content="telephone=no" /><!-- Why does apple do this -->
|
||||
<meta name="theme-color" content="#111" media="(prefers-color-scheme:dark)" />
|
||||
<meta name="theme-color" content="#fff" media="(prefers-color-scheme:light)" />
|
||||
<!-- inline CSS; remember to allow it with a hash in the CSP -->
|
||||
{{- $resources := slice -}}
|
||||
{{- $resources = $resources | append (resources.Get "/css/main.css") -}}
|
||||
{{ $dark := .Site.Params.dark | default "auto" -}}
|
||||
{{- if not (eq $dark "off") -}}
|
||||
{{ $resources = $resources | append (resources.Get "css/dark.css" | resources.ExecuteAsTemplate "dark.css" .) -}}
|
||||
{{- end -}}
|
||||
{{ $resources = $resources | append (resources.Get "css/print.css" | resources.ExecuteAsTemplate "print.css" .) -}}
|
||||
{{- $css := $resources | resources.Concat "css/style.css" | minify -}}
|
||||
<style>{{ $css.Content | safeCSS }}</style>
|
||||
<meta property="og:title" content="{{ .Title }}" />
|
||||
<meta property="og:site_name" content="{{ $.Site.Title }}" />
|
||||
{{- if not (or (ne "page" .Kind) (eq $canonicalRelPermalink "/bookmarks/") (eq $canonicalRelPermalink "/posts/")) }}
|
||||
<meta property="og:type" content="article" />
|
||||
{{- end -}}
|
||||
<!-- ANOTHER meta image?! When will it end? -->
|
||||
{{- $og_image := resources.Get "/favicon512.png" | resources.Fingerprint "md5" -}}
|
||||
{{- $og_image_alt := "" -}}<!--Default open graph image is purely decorative and visual, so it should be hidden from assistive technologies.-->
|
||||
{{- with .Params.image -}}
|
||||
{{- end -}}
|
||||
<meta name="description" content="{{ $description }}" />
|
||||
<meta name="author" content="{{ .Site.Author.name }}" />
|
||||
<meta property="article:author" content="{{ .Site.Author.name }}" />
|
||||
{{ if and (gt .Date 0) (not .Params.evergreen) -}}
|
||||
<meta property="article:published_time" content="{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}" />
|
||||
{{ end -}}
|
||||
{{ if lt .Date .Lastmod -}}
|
||||
<meta property="article:modified_time" content="{{ .Lastmod.Format "2006-01-02T15:04:05Z07:00" }}" />
|
||||
{{- end -}}
|
||||
<!--the Tor Browser's safest setting disables SVGs but still downloads them to avoid fingerprinting-->
|
||||
{{ if not (in site.BaseURL ".onion") -}}
|
||||
{{ $icon_svg := resources.Get "/favicon.svg" | resources.Fingerprint "md5" }}
|
||||
{{- printf `<link rel="icon" sizes="any" href="%s" type="image/svg+xml" />` $icon_svg.RelPermalink | safeHTML }}
|
||||
{{- end }}
|
||||
{{ $icon_192 := resources.Get "/apple-touch-icon.png" | resources.Fingerprint "md5" }}
|
||||
{{- printf `<link rel="icon" sizes="192x192" href="%s" type="image/png" />` $icon_192.RelPermalink | safeHTML -}}
|
||||
{{ $favicon := resources.Get "/favicon.png" -}}
|
||||
{{ $favicon_base64 := $favicon.Content | base64Encode }}
|
||||
{{ printf `<link rel="icon" sizes="32x32" href="data:image/png;base64,%s" type="image/png" />` $favicon_base64 | safeHTML }}
|
||||
<meta name="color-scheme" content="light dark" />
|
||||
<meta name="format-detection" content="telephone=no" /><!-- Why does apple do this -->
|
||||
<meta name="theme-color" content="#111" media="(prefers-color-scheme:dark)" />
|
||||
<meta name="theme-color" content="#fff" media="(prefers-color-scheme:light)" />
|
||||
<!-- inline CSS; remember to allow it with a hash in the CSP -->
|
||||
{{- $resources := slice -}}
|
||||
{{- $resources = $resources | append (resources.Get "/css/main.css") -}}
|
||||
{{ $dark := .Site.Params.dark | default "auto" -}}
|
||||
{{- if not (eq $dark "off") -}}
|
||||
{{ $resources = $resources | append (resources.Get "css/dark.css" | resources.ExecuteAsTemplate "dark.css" .) -}}
|
||||
{{- end -}}
|
||||
{{ $resources = $resources | append (resources.Get "css/print.css" | resources.ExecuteAsTemplate "print.css" .) -}}
|
||||
{{- $css := $resources | resources.Concat "css/style.css" | minify -}}
|
||||
<style>{{ $css.Content | safeCSS }}</style>
|
||||
<meta property="og:title" content="{{ .Title }}" />
|
||||
<meta property="og:site_name" content="{{ $.Site.Title }}" />
|
||||
{{- if not (or (ne "page" .Kind) (eq $canonicalRelPermalink "/bookmarks/") (eq $canonicalRelPermalink "/posts/")) }}
|
||||
<meta property="og:type" content="article" />
|
||||
{{- end -}}
|
||||
<!-- ANOTHER meta image?! When will it end? -->
|
||||
{{- $og_image := resources.Get "/favicon512.png" | resources.Fingerprint "md5" -}}
|
||||
{{- $og_image_alt := "" -}}<!--Default open graph image is purely decorative and visual, so it should be hidden from assistive technologies.-->
|
||||
{{- with .Params.image -}}
|
||||
{{- $og_image = resources.Get (printf "/p/%s" . ) | resources.Fingerprint "md5" -}}
|
||||
{{- end -}}
|
||||
{{- with .Params.image_alt -}}
|
||||
{{- end -}}
|
||||
{{- with .Params.image_alt -}}
|
||||
{{- $og_image_alt = . -}}
|
||||
{{- end }}
|
||||
{{ printf `<meta property="og:image" content="%s" />` $og_image.Permalink | safeHTML }}
|
||||
<meta property="og:image:type" content="image/png" />
|
||||
<meta property="og:image:height" content="{{ $og_image.Height }}" /><meta property="og:image:width" content="{{ $og_image.Width }}" />
|
||||
<meta property="og:image:alt" content="{{ $og_image_alt }}" />
|
||||
<meta property="og:url" content="{{ .Site.Params.CanonicalBaseURL }}{{ $canonicalRelPermalink }}" />
|
||||
<meta property="og:description" content="{{ $description }}" />
|
||||
{{ hugo.Generator }}
|
||||
{{- end }}
|
||||
{{ printf `<meta property="og:image" content="%s" />` $og_image.Permalink | safeHTML }}
|
||||
<meta property="og:image:type" content="image/png" />
|
||||
<meta property="og:image:height" content="{{ $og_image.Height }}" /><meta property="og:image:width" content="{{ $og_image.Width }}" />
|
||||
<meta property="og:image:alt" content="{{ $og_image_alt }}" />
|
||||
<meta property="og:url" content="{{ .Site.Params.CanonicalBaseURL }}{{ $canonicalRelPermalink }}" />
|
||||
<meta property="og:description" content="{{ $description }}" />
|
||||
{{ hugo.Generator }}
|
||||
</head>
|
||||
|
|
|
@ -1,14 +1,18 @@
|
|||
<header>
|
||||
<header>
|
||||
<nav aria-label="Global">
|
||||
<ul>
|
||||
{{- $currentPage := . -}}
|
||||
{{- $canonicalRelPermalink := $currentPage.RelPermalink | replaceRE "^/~seirdy/" "/" }}
|
||||
{{- $isHome := false -}}
|
||||
{{- if eq $canonicalRelPermalink "/" -}}
|
||||
{{- if eq $currentPage.RelPermalink "/" -}}
|
||||
{{- $isHome = true -}}
|
||||
{{- end }}
|
||||
<li
|
||||
{{ if $isHome -}}
|
||||
itemprop="sameAs"
|
||||
{{ else -}}
|
||||
itemprop="isPartOf"
|
||||
{{ end -}}
|
||||
itemscope="" itemtype="https://schema.org/Blog https://schema.org/WebSite"
|
||||
itemid="{{ .Site.Params.CanonicalBaseURL }}/">
|
||||
<a rel="home" itemprop="url" href="{{ .Site.BaseURL }}"{{- if $isHome }} aria-current="page"{{- end -}}>
|
||||
|
@ -33,4 +37,4 @@
|
|||
{{- end }}
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
</header>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
{{- end -}}
|
||||
{{- $action }} <time{{ if not (.Params.evergreen) }} itemprop="dateCreated datePublished" class="dt-published published"{{ end }} datetime="{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}">{{ .Date.Format "2006-01-02" }}</time>
|
||||
by {{- partial "indieweb-author.html" -}} on his <a rel="canonical" itemprop="mainEntityOfPage url" class="u-url url" href="{{ .Site.Params.CanonicalBaseURL }}{{ $canonicalRelPermalink }}">Website</a>{{- with .OutputFormats.Get "gemtext" -}}{{- printf " " -}}and <a rel="syndication" class="u-syndication" href="{{replace .Permalink "/gemini" "" 1 | safeURL}}">Gemini capsule</a>{{- end -}}.
|
||||
{{ if gt (sub .Lastmod.Unix .Date.Unix) 900 -}}
|
||||
{{ if gt (sub .Lastmod.Unix .Date.Unix) 3600 -}}
|
||||
<br />
|
||||
Last updated <time itemprop="dateModified" class="dt-updated updated" datetime="{{ .Lastmod.Format "2006-01-02T15:04:05Z07:00" }}">{{ .Lastmod.Format "2006-01-02" }}</time>. <a href="{{ $logURL }}">Changelog</a>.
|
||||
{{- end }}
|
||||
|
|
|
@ -55,5 +55,5 @@
|
|||
<dd>This post does not have any approved Webmentions yet.</dd>
|
||||
{{- end }}
|
||||
</dl>
|
||||
<p>Feel free to contact me directly with feedback; <a href="{{ .Site.BaseURL }}about/#location-seirdy-online">here’s my contact info</a></p>
|
||||
<p></p>
|
||||
</section>
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
(btw this is all made of <span> cuz it is supposed to be inline)
|
||||
-->
|
||||
<span itemprop="author copyrightHolder" itemscope="" itemtype="https://schema.org/Person" itemid="https://seirdy.one/#seirdy" class="h-card p-author author vcard">
|
||||
<a itemprop="url" href="https://seirdy.one/" rel="author me home cc:attributionURL" class="u-url u-uid url" property="cc:attributionName">
|
||||
<a itemprop="url" href="https://seirdy.one/" rel="author home cc:attributionURL" class="u-url url" property="cc:attributionName">
|
||||
{{ partial "indieweb-icon.html" -}}
|
||||
<span itemprop="name" class="p-name fn n">
|
||||
<span itemprop="givenName" class="p-given-name given-name">Rohan</span>
|
||||
|
|
|
@ -5,8 +5,7 @@
|
|||
# XML tooling.
|
||||
# this means that every index.html file has an equivalent index.xhtml file.
|
||||
# content negotiation allows an agent to pick html or xhtml.
|
||||
# echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
|
||||
|
||||
find "$1" -type f -name '*.html' \
|
||||
-exec sh -c 'echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" >"${0%*.html}.xhtml" && xmlfmt -i " " -f "$0" | busybox sed -e :a -e "/./,\$!d;/^\n*\$/{\$d;N;};/\n\$/ba" | sd -f m "\n(?:\t*)?</" "</" | sd -f m "<pre>\n\t*<code" "<pre><code" | pee "sed 5d >>\"${0%*.html}.xhtml\"" "sponge \"$0\""' {} \;
|
||||
-exec sh -c 'echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" | cat - "$0" | grep -Fv "<meta charset=\"UTF-8\" />" >"${0%*.html}.xhtml"' {} \;
|
||||
# done
|
||||
|
|
Loading…
Reference in a new issue