How open platforms can lose their openness, and what measures can prevent this. The Web, XMPP, email, and Matrix are examples that highlight both sides of the issue.
+
After two posts spanning over 5000 words, I need to add some nuance.
@@ -199,7 +200,7 @@ I readily concede to several points in favor of source availability from a secur
- Source code can make analysis _easier_ by _supplementing_ source-independent approaches. The lines between the steps I mentioned in the [four-step vulnerability-fixing process](#how-security-fixes-work) are blurry.
-- Patching vulnerabilities is important. Source availability makes it possible for the community, package maintainers, or reporters of a vulnerability to patch software. Package maintainers often blur the line between "packager" and "contributor" by helping projects migrate away from abandoned/insecure dependencies. One example that comes to mind is the Python 2 to Python 3 transition for projects like Calibre.[^12] Being able to fix issues independent of upstream support is an important mitigation against [user domestication](./../../../2021/01/27/whatsapp-and-the-domestication-of-users.html).
+- Patching vulnerabilities is important. Source availability makes it possible for the community, package maintainers, or reporters of a vulnerability to patch software. Package maintainers often blur the line between "packager" and "contributor" by helping projects migrate away from abandoned/insecure dependencies. One example that comes to mind is the Python 2 to Python 3 transition for projects like Calibre.[^12] Being able to fix issues independent of upstream support is an important mitigation against [user domestication](../../../../2021/01/27/whatsapp-and-the-domestication-of-users/).
- Some developers/vendors don't distribute binaries that make use of modern toolchain-level exploit mitigations (e.g. PIE, RELRO, stack canaries, automatic variable initialization, [CFI](https://clang.llvm.org/docs/ControlFlowIntegrity.html), etc.[^13]). In these cases, building software yourself with these mitigations (or delegating it to a distro that enforces them) requires source code availability (or at least some sort of intermediate representation).
diff --git a/content/posts/git-workflow-0.gmi b/content/posts/git-workflow-0.gmi
index 2313f14..f2e805b 100644
--- a/content/posts/git-workflow-0.gmi
+++ b/content/posts/git-workflow-0.gmi
@@ -10,7 +10,7 @@ I'll update this post as I add articles to the series.
Articles in this series:
-=> ../../../2020/11/18/git-workflow-1.gmi 1. Hydra Hosting
+=> ../../../../2020/11/18/git-workflow-1/ 1. Hydra Hosting
Articles yet to be written:
@@ -42,4 +42,4 @@ Q: I'm not interested in trying anything new, no matter what the benefits are.
A: First of all, that wasn't a question. Second, this series isn't for you. You should not read this. I recommend doing literally anything else.
-=> ../../../2020/11/18/git-workflow-1.gmi Next: Resilient Git, Part 1: Hydra Hosting
+=> ../../../../2020/11/18/git-workflow-1/ Next: Resilient Git, Part 1: Hydra Hosting
diff --git a/content/posts/git-workflow-0.md b/content/posts/git-workflow-0.md
index 6a3c1cd..0d9aa2a 100644
--- a/content/posts/git-workflow-0.md
+++ b/content/posts/git-workflow-0.md
@@ -22,7 +22,7 @@ Following the drama, I'm putting together a multi-part guide on how to leverage
I'll update this post as I add articles to the series. At the moment, I've planned to write the following articles:
-1. [Hydra Hosting](/2020/11/18/git-workflow-1.html): repository hosting.
+1. [Hydra Hosting](../../../../2020/11/18/git-workflow-1/): repository hosting.
2. Community feedback (issues, support, etc.)
@@ -55,5 +55,5 @@ Q: I'm not interested in trying anything new, no matter what the benefits are.
A: First of all, that wasn't a question. Second, this series isn't for you. You should not read this. I recommend doing literally anything else.
-Next: Resilient Git, Part 1: [Hydra Hosting](/2020/11/18/git-workflow-1.html)
+Next: Resilient Git, Part 1: [Hydra Hosting](../../../../2020/11/18/git-workflow-1/)
diff --git a/content/posts/git-workflow-1.gmi b/content/posts/git-workflow-1.gmi
index 73dcaef..c180f0d 100644
--- a/content/posts/git-workflow-1.gmi
+++ b/content/posts/git-workflow-1.gmi
@@ -1,6 +1,6 @@
This is Part 1 of a series called Resilient Git:
-=> ../../../2020/11/17/git-workflow-0.gmi Resilient Git
+=> ../../../../2020/11/17/git-workflow-0/ Resilient Git
The most important part of a project is its code. Resilient projects should have their code in multiple places of equal weight so that work continues normally if a single remote goes down.
diff --git a/content/posts/git-workflow-1.md b/content/posts/git-workflow-1.md
index 82cd3c4..5ca815e 100644
--- a/content/posts/git-workflow-1.md
+++ b/content/posts/git-workflow-1.md
@@ -13,7 +13,7 @@ title: "Resilient Git, Part 1: Hydra Hosting"
---
-This is Part 1 of a series called [Resilient Git](/2020/11/17/git-workflow-0.html "{itemprop='relatedLink'}").
+This is Part 1 of a series called Resilient Git
diff --git a/content/posts/keeping-platforms-open.gmi b/content/posts/keeping-platforms-open.gmi
index ef1c0d3..9601352 100644
--- a/content/posts/keeping-platforms-open.gmi
+++ b/content/posts/keeping-platforms-open.gmi
@@ -2,7 +2,7 @@ This article is the second entry of series of posts exploring situations in whic
My previous article, Whatsapp and the domestication of users, got more attention than I was expecting. Some responses gave me a lot to think about,¹ especially regarding *actions* we can take. I suggest reading that article first; it explained what "user domestication" is and why it's a problem. It enumerated three countermeasures: FLOSS, simplicity, and open platforms.
-=> ./../../../2021/01/27/whatsapp-and-the-domestication-of-users.gmi Whatsapp and the Domestication of Users
+=> ../../../../2021/01/27/whatsapp-and-the-domestication-of-users/ Whatsapp and the Domestication of Users
Hard problems, by definition, lack easy solutions. Simply choosing (or creating) a platform that avoids user domestication isn't enough if that platform can change. The price of freedom is eternal vigilance; in addition to settling on the right platform, we must ensure that it honors its users in both the present *and the future*. Keeping a platform FLOSS and simple is more straightforward² than keeping a platform "open".
@@ -56,7 +56,7 @@ Matrix is an open and federated instant-messaging platform similar to XMPP, with
Since there aren't any third-party clients and servers that can replace the official ones, one vendor is close to controlling all parts of the platform. The growing complexity required of clients and servers can also further entrench these dominant implementations, as I explained in the previous article's "Simplicity" section:
-=> gemini://seirdy.one/2021/01/27/whatsapp-and-the-domestication-of-users.gmi
+=> ../../../../2021/01/27/whatsapp-and-the-domestication-of-users/
Matrix is close to being a boxed platform because the official client and server can iterate independently of the greater ecosystem.
diff --git a/content/posts/keeping-platforms-open.md b/content/posts/keeping-platforms-open.md
index 15125f3..51049b1 100644
--- a/content/posts/keeping-platforms-open.md
+++ b/content/posts/keeping-platforms-open.md
@@ -19,7 +19,7 @@ This article is the second entry of series of posts exploring situations in whic
Introduction {#introduction}
-----------------
-My previous article, [Whatsapp and the domestication of users](/2021/01/27/whatsapp-and-the-domestication-of-users.html), got more attention than I was expecting. Some responses gave me a lot to think about,[^1] especially regarding _actions_ we can take. I suggest reading that article first; it explained what "user domestication" is and why it's a problem. It enumerated three countermeasures: FLOSS, simplicity, and open platforms.
+My previous article, [Whatsapp and the domestication of users](../../../../2021/01/27/whatsapp-and-the-domestication-of-users/), got more attention than I was expecting. Some responses gave me a lot to think about,[^1] especially regarding _actions_ we can take. I suggest reading that article first; it explained what "user domestication" is and why it's a problem. It enumerated three countermeasures: FLOSS, simplicity, and open platforms.
Hard problems, by definition, lack easy solutions. Simply choosing (or creating) a platform that avoids user domestication isn't enough if that platform can change. The price of freedom is eternal vigilance; in addition to settling on the right platform, we must ensure that it honors its users in both the present _and the future_. Keeping a platform FLOSS and simple is more straightforward[^2] than keeping a platform "open".
@@ -66,7 +66,7 @@ With enough leverage, a dominant implementation can serve as a reference impleme
One example of this phenomenon is [Matrix](https://matrix.org/). Matrix is an open and federated instant-messaging platform similar to XMPP, with a very large spec boasting many features: server-side history, replies, rich text, reactions, room versions, E2EE, avatars, display names, typing indicators, read receipts, device verification...the list goes on and grows every month.[^3] The only client that implements all the necessary features is Element. In addition to being the most popular client, Element practically serves as the reference client implementation: it's developed by the same company that builds the dominant servers and most of the spec. The tight coupling between Element and the Matrix spec allow it to add features at a rate too fast for other clients too keep up; pretty much every Matrix user has to open up Element at some point to perform an action that isn't supported in any other client. On the server side, Synapse is the only server that implements enough of the spec to be usable, with Dendrite coming in second. Both are made by the same company that develops Element.
-Since there aren't any third-party clients and servers that can replace the official ones, one vendor is close to controlling all parts of the platform. The growing complexity required of clients and servers can also further entrench these dominant implementations, as I [previously explained](https://seirdy.one/2021/01/27/whatsapp-and-the-domestication-of-users.html#simplicity). Matrix is close to being a boxed platform because the official client and server can iterate independently of the greater ecosystem.
+Since there aren't any third-party clients and servers that can replace the official ones, one vendor is close to controlling all parts of the platform. The growing complexity required of clients and servers can also further entrench these dominant implementations, as I [previously explained](../../../../2021/01/27/whatsapp-and-the-domestication-of-users/#simplicity). Matrix is close to being a boxed platform because the official client and server can iterate independently of the greater ecosystem.
I don't think that Matrix is going to become a fully closed platform anytime soon; the blog post ["On Privacy versus Freedom"](https://matrix.org/blog/2020/01/02/on-privacy-versus-freedom/) seems to put it on the right side of the closed/open spectrum. Clients like [gomuks](https://github.com/tulir/gomuks) and [FluffyChat](https://fluffychat.im/) seem to keep up with Element well enough to serve as partial replacements. I do, however, find its current state problematic and much closer to "closed" on the closed/open spectrum than XMPP, IRC, and email.
diff --git a/content/posts/website-best-practices.gmi b/content/posts/website-best-practices.gmi
index 7fc84b1..f5249bb 100644
--- a/content/posts/website-best-practices.gmi
+++ b/content/posts/website-best-practices.gmi
@@ -34,7 +34,7 @@ Our goal: make a textual website maximally inclusive, using restricted enhanceme
One of the defining differences between textual websites and advanced Web 2.0 sites/apps is safety. Most browser vulnerabilities are related to modern Web features like JavaScript and WebGL. If that isn't reason enough, most non-mainstream search indexes have little to no support for JavaScript:
-=> ./../../../2021/03/10/search-engines-with-own-indexes.gmi A look at search engines with their own indexes
+=> ../../../../2021/03/10/search-engines-with-own-indexes/ A look at search engines with their own indexes
The simplicity of basic textual websites should guarantee some extra safety; however, webmasters need to take additional measures to ensure limited use of "modern" risky features.
@@ -604,7 +604,7 @@ Even if you set custom colors, ensure that the page is compatible with color ove
The Web version of this page is an example application of Technique C25 and the similar G148:
-=> https://seirdy.one/2020/11/23/website-best-practices.html The Web mirror of this Gemlog post
+=> https://seirdy.one/posts/2020/11/23/website-best-practices/ The Web mirror of this Gemlog post
=> https://www.w3.org/WAI/WCAG22/Techniques/general/G148 Technique G148: Not specifying background color, not specifying text color, and not using technology features that change those defaults
The Web version of this page only uses non-default colors when a user agent requests a dark color scheme (using the "prefers-color-scheme" CSS media query; see the next subsection) and for lightening borders. Any image with a solid background may match the page background; to ensure that their dimensions are clear, I surrounded them with borders. Most browsers will render these borders with the default foreground color, which should be visually distinct from the background. I included borders and/or horizontal rules to break up some sections, since heading-based delineation is either unavailable or insufficient for them. When overriding color schemes or disabling CSS altogether, the page layout remains clear.
@@ -1082,7 +1082,7 @@ Excessive indentation makes reading difficult on narrow viewports, but preservin
For now, I've decided to keep some indentation on list elements (,
,
) since I often fill them with links. See see this article's table of contents on its Web mirror for an example:
-=> https://seirdy.one/2020/11/23/website-best-practices.html#toc Table of contents
+=> https://seirdy.one/posts/2020/11/23/website-best-practices/#toc Table of contents
This indentation provides important non-interactive negative space. Readers with hand tremors depend on this space to scroll without accidentally selecting an interactive element:
@@ -1107,10 +1107,10 @@ The edges of a touch screen are often tap-targets (the top edge might toggle nav
On lists with many links, I had to find other ways to ensure adequate tap-target size and provide sufficient non-interactive space for readers with hand-tremors to scroll. Some examples:
-=> https://seirdy.one/2020/11/23/website-best-practices.html#webmentions 1. The webmention list after this article separates links with timestamps and some paragraph spacing.
+=> https://seirdy.one/posts/2020/11/23/website-best-practices/#webmentions 1. The webmention list after this article separates links with timestamps and some paragraph spacing.
2. Some list items have links with extra padding. These include description terms (`
`) and navigation elements, such as the table of contents or the site header and footer,
=> https://seirdy.one/#posts 3. The homepage posts list separates links with non-interactive text descriptions
-=> https://seirdy.one/2022/02/02/floss-security.html 4. The list of related articles at the beginning of one of my posts does the same.
+=> https://seirdy.one/posts/2022/02/02/floss-security/ 4. The list of related articles at the beginning of one of my posts does the same.
### Line spacing
@@ -1194,7 +1194,7 @@ Google's style guide recommends annotating format placeholders in code blocks wi
For an example, check the HTML version of this article's code sample describing my PNG optimization pipeline:
-=> https://seirdy.one/2021/03/10/search-engines-with-own-indexes.html#png-pipeline PNG pipeline
+=> https://seirdy.one/posts/2021/03/10/search-engines-with-own-indexes/#png-pipeline PNG pipeline
Most implementations do not yet support `translate="yes"` embedded inside untranslated blocks, but I'm counting on this changing.
@@ -1358,7 +1358,7 @@ If your site is simple enough, it should automatically handle the vast majority
No matter how simple a page is, I don't think simplicity eliminates the need for testing. I outlined the need to analyze actual run-time behavior in another post exploring how code alone doesn't give the full picture:
-=> gemini://seirdy.one/2022/02/02/floss-security.gmi The right thing for the wrong reasons: FLOSS doesn't imply security
+=> ../../../../2022/02/02/floss-security/ The right thing for the wrong reasons: FLOSS doesn't imply security
### Automated tests
diff --git a/content/posts/website-best-practices.md b/content/posts/website-best-practices.md
index cd9b526..30b1363 100644
--- a/content/posts/website-best-practices.md
+++ b/content/posts/website-best-practices.md
@@ -12,7 +12,7 @@ tags:
- featured
- web
sitemap:
- ChangeFreq: daily
+ ChangeFreq: weekly
Priority: 0.7
featured: 2
image: "serenity-4x.png"
@@ -74,7 +74,7 @@ A false sense of security is far worse than transparent insecurity. Don't offer
Consider taking hardening measures to maximize the security benefits made possible by the simplicity of textual websites, starting with script removal.
-JavaScript and WebAssembly are responsible for the bulk of modern web exploits. If that isn't reason enough, most [non-mainstream search indexes](./../../../2021/03/10/search-engines-with-own-indexes.html) have little to no support for JavaScript. Ideally, a text-oriented site can enforce a scripting ban at the [Content Security Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP) (CSP) level.
+JavaScript and WebAssembly are responsible for the bulk of modern web exploits. If that isn't reason enough, most [non-mainstream search indexes](../../../../2021/03/10/search-engines-with-own-indexes/) have little to no support for JavaScript. Ideally, a text-oriented site can enforce a scripting ban at the [Content Security Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP) (CSP) level.
{{}} {{< codecaption >}} this is the CSP for my main website, with hashes removed for readability. {{< /codecaption >}}
@@ -373,7 +373,7 @@ I've discussed loading pages in the background, but what about saving a page off
-Infinite-scroll means that accidental navigation to a link results in losing your place. From [xkcd](https://xkcd.com/1309/ "{itemprop='url'}").
+Infinite-scroll means that accidental navigation to a link results in losing your place. From xkcd
{{< /transcribed-image-figure >}}
@@ -676,7 +676,7 @@ Black on white? How often do you see that kind of contrast in real life? Tone it
Even if you set custom colors, ensure that the page is compatible with color overrides: elements shouldn't be distinguished solely by foreground and background color. [Technique C25](https://www.w3.org/WAI/WCAG22/Techniques/css/C25) for the Web Content Accessibility Guidelines (WCAG) 2.2 describes how doing so can meet the WCAG 2.2's [Success Criterion 1.4.8](https://www.w3.org/WAI/WCAG22/Understanding/visual-presentation). Specifically, it describes using default colors in combination with visible borders. The latter helps distinguish elements from surrounding content without relying on a custom color palette.
-[This page's canonical location](https://seirdy.one/2020/11/23/website-best-practices.html) is an example application of Technique C25 (and the related [Technique G148](https://www.w3.org/WAI/WCAG22/Techniques/general/G148)). It only uses non-default colors when a user agent requests a dark color scheme (using the `prefers-color-scheme` CSS media query; see the next subsection) and for lightening borders. Any image with a solid background may match the page background; to ensure that their dimensions are clear, I surrounded them with borders. Most browsers will render these borders with the default foreground color, which should be visually distinct from the background. I included borders and/or horizontal rules to break up some sections, since heading-based delineation is either unavailable or insufficient for them. When overriding color schemes, the page layout remains clear.
+[This page's canonical location](https://seirdy.one/posts/2020/11/23/website-best-practices/) is an example application of Technique C25 (and the related [Technique G148](https://www.w3.org/WAI/WCAG22/Techniques/general/G148)). It only uses non-default colors when a user agent requests a dark color scheme (using the `prefers-color-scheme` CSS media query; see the next subsection) and for lightening borders. Any image with a solid background may match the page background; to ensure that their dimensions are clear, I surrounded them with borders. Most browsers will render these borders with the default foreground color, which should be visually distinct from the background. I included borders and/or horizontal rules to break up some sections, since heading-based delineation is either unavailable or insufficient for them. When overriding color schemes, the page layout remains clear.
Color overrides go well beyond simple foreground and background color changes. Windows High Contrast Mode (WHCM) is perhaps the best example. [WHCM makes advanced modifications to color palettes](#win-hcm): it colors elements with a user-specified palette, all according to semantic markup while ignoring ARIA overrides.[^15]
@@ -1110,7 +1110,7 @@ Readers with hand tremors depend on this space to scroll without accidentally se
{{}} {{}}
@@ -1130,7 +1130,7 @@ On lists with many links, I had to find other ways to ensure adequate tap-target
- Some list items have links with extra padding. These include description terms (`
`) and navigation elements, such as the table of contents or the site header and footer,
-- The [homepage posts list](https://seirdy.one/#posts) and the list of related articles at the beginning of [one of my posts](https://seirdy.one/2022/02/02/floss-security.html) separates links with non-interactive text descriptions
+- The [posts list](../../../../) and the list of related articles at the beginning of [one of my posts](../../../../2022/02/02/floss-security/) separates links with non-interactive text descriptions
- This list separates two list-items containing links with a third list-item that lacks links.
@@ -1375,7 +1375,7 @@ Testing
If your site is simple enough, it should automatically handle the vast majority of edge-cases. Different devices and browsers all have their quirks, but they generally have one thing in common: they understand POSH.
-No matter how simple a page is, I don't think simplicity eliminates the need for testing. I outlined the need to analyze actual run-time behavior in [another post exploring how code alone doesn't give the full picture](https://seirdy.one/2022/02/02/floss-security.html).
+No matter how simple a page is, I don't think simplicity eliminates the need for testing. I outlined the need to analyze actual run-time behavior in [another post exploring how code alone doesn't give the full picture](../../../../2022/02/02/floss-security/).
### Automated tests
diff --git a/content/posts/whatsapp-and-the-domestication-of-users.gmi b/content/posts/whatsapp-and-the-domestication-of-users.gmi
index 5a58f18..d210c40 100644
--- a/content/posts/whatsapp-and-the-domestication-of-users.gmi
+++ b/content/posts/whatsapp-and-the-domestication-of-users.gmi
@@ -1,5 +1,5 @@
Update: I wrote a follow-up; check it out if you found this article interesting:
-=> ../../../2021/02/23/keeping-platforms-open.gmi Keeping platforms open
+=> ../../../../2021/02/23/keeping-platforms-open/ Keeping platforms open
I have never used WhatsApp, and never will. Despite this, I still feel the need to write an article about WhatsApp since it's the perfect case study to help understand a class of businesses models I call "user domestication". The domestication of users is high on my list of problems plaguing the human race, and is worth a detailed explanation.
@@ -184,7 +184,7 @@ This article extends the guiding philosophies of the Free Software and Copyleft
Since 2900 words wasn't quite enough, I wrote a follow-up; check it out if you found this article interesting:
-=> ../../../2021/02/23/keeping-platforms-open.gmi Keeping platforms open
+=> ../../../../2021/02/23/keeping-platforms-open/ Keeping platforms open
## Translations
diff --git a/content/posts/whatsapp-and-the-domestication-of-users.md b/content/posts/whatsapp-and-the-domestication-of-users.md
index 5095855..15c257a 100644
--- a/content/posts/whatsapp-and-the-domestication-of-users.md
+++ b/content/posts/whatsapp-and-the-domestication-of-users.md
@@ -22,7 +22,7 @@ Introduction {#introduction}
-----------------
-Update: I wrote a follow up: Keeping platforms open. Check it out if you found this article interesting.
+Update: I wrote a follow up: Keeping platforms open. Check it out if you found this article interesting.
@@ -209,7 +209,7 @@ I initially decided to expand it to its current form for personal reasons. Nowad
This article extends the guiding philosophies of the Free Software and Copyleft movements. Thanks to [Barna Zsombor](https://bzsombor.web.elte.hu/) for giving good feedback over IRC.
-Since 2900 words wasn't quite enough, I wrote a follow-up: [Keeping platforms open](/2021/02/23/keeping-platforms-open.html). Check it out if you found this article interesting.
+Since 2900 words wasn't quite enough, I wrote a follow-up: [Keeping platforms open](../../../../2021/02/23/keeping-platforms-open/). Check it out if you found this article interesting.
Translations
------------
diff --git a/content/privacy.md b/content/privacy.md
index 87dd6ac..c96d990 100644
--- a/content/privacy.md
+++ b/content/privacy.md
@@ -59,7 +59,7 @@ These logs are purged _every two days._
### How I use your information
-I use server logs to detect DoS attacks, misbehaving bots, and search engines to add to [my public collection](https://seirdy.one/2021/03/10/search-engines-with-own-indexes.html).
+I use server logs to detect DoS attacks, misbehaving bots, and search engines to add to [my public collection](../posts/2021/03/10/search-engines-with-own-indexes/).
Information I share
-------------------
diff --git a/layouts/_default/_markup/render-link.atom.xml b/layouts/_default/_markup/render-link.atom.xml
new file mode 100644
index 0000000..e81c9ea
--- /dev/null
+++ b/layouts/_default/_markup/render-link.atom.xml
@@ -0,0 +1,12 @@
+{{- $parsedDest := urls.Parse (.Destination | absURL) -}}
+{{- if (strings.HasPrefix .Destination "#") -}}
+ {{ .Text | safeHTML }}
+{{- else if not (strings.HasPrefix .Destination $parsedDest.Scheme) -}}
+ {{- $baseURL := trim .Page.Site.BaseURL "/" -}}
+ {{- $fragment := "" -}}
+ {{- with $parsedDest.Fragment -}}{{- $fragment = printf "#%s" . -}}{{- end -}}
+ {{- $href := printf "%s%s%s" $baseURL $parsedDest.Path $fragment | absURL -}}
+ {{ .Text | safeHTML }}
+{{- else -}}
+ {{ .Text | safeHTML }}
+{{- end -}}
diff --git a/layouts/_default/list.atom.xml b/layouts/_default/list.atom.xml
new file mode 100644
index 0000000..6503c53
--- /dev/null
+++ b/layouts/_default/list.atom.xml
@@ -0,0 +1,32 @@
+{{- $pages := (where site.RegularPages "Section" .Section) -}}
+{{- if .IsHome }}
+ {{- $pages = where .Site.RegularPages "Section" "" -}}
+{{ end -}}
+
+
+ {{ .Site.Title }}
+
+ {{ .Site.Params.icon | absURL }}
+ {{ .Site.Params.Description }}
+
+ Rohan Kumar
+ https://seirdy.one/
+
+ {{ now.Format "2006-01-02T15:04:05-07:00" | safeHTML }}
+ {{ .Permalink }}
+ {{ range $pages }}
+
+
+
+ {{ .Date.Format "2006-01-02T15:04:05-07:00" | safeHTML }}
+ {{ .Lastmod.Format "2006-01-02T15:04:05-07:00" | safeHTML }}
+
+ Rohan Kumar
+ https://seirdy.one/
+
+ {{ .Permalink }}
+ CC-BY-SA 4.0 by Rohan Kumar
+
+
+ {{ end }}
+
diff --git a/layouts/_default/notes.html b/layouts/_default/notes.html
index ee1fb54..60106b3 100644
--- a/layouts/_default/notes.html
+++ b/layouts/_default/notes.html
@@ -1,8 +1,8 @@
{{ define "main" }}
-
Notes
-
This is my microblog. These are my short informal posts, sorted by date (newest first). For longer posts, see my blog.
An Atom and RSS feed is availabe, containing the full text of all my posts.
{{- else -}}
Posts
-
Here’s a selection of my best posts, in featured order. To see the rest, visit my Posts page.
+
Here’s a selection of my best posts, in featured order. To see the rest, visit my Posts page.
{{- end }}
I edit some of these posts quite often; some are updated indefinitely. Check the “updated” timestamps.
diff --git a/layouts/shortcodes/indieweb-author.html b/layouts/shortcodes/indieweb-author.html
index fdb5572..ba40d43 100644
--- a/layouts/shortcodes/indieweb-author.html
+++ b/layouts/shortcodes/indieweb-author.html
@@ -24,7 +24,7 @@
(btw this is all made of cuz it is supposed to be inline)
-->
-
+
{{ partial "indieweb-icon.html" -}}
Rohan