{{.Title}}
-{{- if isset .Params "summary" }}{{/* only use explicitly-set summaries, not auto-generated ones */ -}} --{{.Summary}} -{{- end }}{{/* end if isset .Params "summary" */ -}} -
From 3b845babe6d10d4e606dd84af664cd6aabb0ba0a Mon Sep 17 00:00:00 2001
From: a
Date: Fri, 18 Oct 2024 02:33:33 -0500
Subject: [PATCH] WIP: lotta work on partials and such
---
unified.test.hugo/assets/styles/common.scss | 7 ++
.../assets/styles/common/elements.scss | 2 +-
.../assets/styles/components/quote-block.scss | 95 +++++++++++-----
.../assets/styles/components/series-list.scss | 25 +++++
.../assets/styles/components/site-header.scss | 12 ++
.../styles/components/syndication-list.scss | 10 ++
.../assets/styles/features/autonumbering.scss | 2 +-
.../assets/styles/features/footnotes.scss | 18 ++-
.../assets/styles/features/search.scss | 6 +-
.../assets/styles/features/skip-links.scss | 50 +++++++++
.../_default/_markup/render-heading.scss | 4 +-
.../assets/styles/layouts/_default/list.scss | 47 +-------
.../styles/layouts/_default/single.scss | 103 +++--------------
.../styles/layouts/partials/mf2/h-card.scss | 15 ++-
.../styles/layouts/partials/mf2/h-entry.scss | 14 +++
.../layouts/partials/mf2/u-in-reply-to.scss | 22 ++++
.../content/_dump/links/_index.md | 2 -
.../content/_dump/notes/_index.md | 2 -
.../content/_dump/replies/_index.md | 2 -
.../content/_dump/socialhub-threads/_index.md | 2 -
unified.test.hugo/content/articles/_index.md | 4 -
.../index.md | 1 +
.../index.md | 0
.../create-note.png | Bin
.../index.md | 0
.../index.md | 0
.../index.md | 0
.../index.md | 0
.../specs-are-enough.png | Bin
.../index.md | 10 --
.../index.md | 0
.../monologues/product-vs-profit/index.md | 2 +-
.../index.md | 0
.../index.md | 0
.../index.md | 0
.../index.md | 0
.../index.md | 0
.../{ubi => ubi-and-capitalism}/index.md | 0
.../index.md | 2 +-
.../index.md | 0
.../{_dump/articles => posts}/_index.md | 0
unified.test.hugo/content/responses/_index.md | 4 +
.../index.md | 56 ++++++++++
.../4564/37}/index.md | 3 +-
unified.test.hugo/content/test.md | 5 +
unified.test.hugo/content/wiki/docs/_index.md | 1 +
.../content/wiki/docs/uris-and-slugs.md | 46 ++++++++
.../_default/_markup/render-blockquote.html | 6 +-
.../_default/_markup/render-heading.html | 1 -
unified.test.hugo/layouts/_default/list.html | 46 +-------
unified.test.hugo/layouts/_default/page.html | 7 ++
.../layouts/_default/single.html | 53 +++------
.../partials/components/quote-block.html | 28 +++--
.../partials/components/series-list.html | 22 ++++
.../partials/components/syndication-list.html | 8 ++
.../layouts/partials/mf2/dt-published.html | 1 +
.../layouts/partials/mf2/h-card.html | 49 ++++-----
.../layouts/partials/mf2/h-entry.html | 13 +++
.../layouts/partials/mf2/u-in-reply-to.html | 2 +
.../layouts/partials/search/search-form.html | 8 +-
unified.test.hugo/layouts/partials/seo.html | 24 +++-
.../layouts/partials/site-footer.html | 5 +
.../layouts/partials/site-header.html | 5 +
.../partials/styles/external-links.html | 7 +-
.../layouts/partials/wiki/breadcrumbs.html | 51 +++++----
.../layouts/partials/wiki/site-footer.html | 8 +-
.../layouts/partials/wiki/site-header.html | 14 +--
.../layouts/shortcodes/quote.html | 24 ++--
unified.test.hugo/layouts/wiki/list.html | 104 +++++++++---------
unified.test.hugo/layouts/wiki/single.html | 53 ++++-----
unified.test.hugo/static/index.2022.html | 18 +--
71 files changed, 665 insertions(+), 466 deletions(-)
create mode 100644 unified.test.hugo/assets/styles/components/series-list.scss
create mode 100644 unified.test.hugo/assets/styles/components/site-header.scss
create mode 100644 unified.test.hugo/assets/styles/components/syndication-list.scss
create mode 100644 unified.test.hugo/assets/styles/features/skip-links.scss
create mode 100644 unified.test.hugo/assets/styles/layouts/partials/mf2/h-entry.scss
create mode 100644 unified.test.hugo/assets/styles/layouts/partials/mf2/u-in-reply-to.scss
delete mode 100644 unified.test.hugo/content/_dump/links/_index.md
delete mode 100644 unified.test.hugo/content/_dump/notes/_index.md
delete mode 100644 unified.test.hugo/content/_dump/replies/_index.md
delete mode 100644 unified.test.hugo/content/_dump/socialhub-threads/_index.md
delete mode 100644 unified.test.hugo/content/articles/_index.md
rename unified.test.hugo/content/monologues/{multi-protocol-approach => activitypub-protocol}/index.md (99%)
rename unified.test.hugo/content/monologues/{drowning-in-awareness => awareness}/index.md (100%)
rename unified.test.hugo/content/monologues/{implicit-vs-explicit-collections => collections-explicit-vs-implicit}/create-note.png (100%)
rename unified.test.hugo/content/monologues/{implicit-vs-explicit-collections => collections-explicit-vs-implicit}/index.md (100%)
rename unified.test.hugo/content/monologues/{nation-stateification => fedi-nation-stateification}/index.md (100%)
rename unified.test.hugo/content/monologues/{services-vs-communities => fedi-services-vs-communities}/index.md (100%)
rename unified.test.hugo/content/monologues/{specs-arent-enough => fedi-specs-arent-enough}/index.md (100%)
rename unified.test.hugo/content/monologues/{specs-arent-enough => fedi-specs-arent-enough}/specs-are-enough.png (100%)
delete mode 100644 unified.test.hugo/content/monologues/making-better-stuff-is-unprofitable/index.md
rename unified.test.hugo/content/monologues/{mainstreaming-mastodon => mastodon-mainstreaming}/index.md (100%)
rename unified.test.hugo/content/monologues/{defining-quote-posts => quote-post-definition}/index.md (100%)
rename unified.test.hugo/content/monologues/{social-media-flawed => social-media-fundamentally-flawed}/index.md (100%)
rename unified.test.hugo/content/monologues/{multiple-accounts => social-media-multiple-accounts}/index.md (100%)
rename unified.test.hugo/content/monologues/{publishing-vs-discussing => social-media-publishing-vs-discussing}/index.md (100%)
rename unified.test.hugo/content/monologues/{deactivating-twitter => twitter-deactivated}/index.md (100%)
rename unified.test.hugo/content/monologues/{ubi => ubi-and-capitalism}/index.md (100%)
rename unified.test.hugo/content/monologues/{voluntarism => voluntarism-and-power-imbalance}/index.md (96%)
rename unified.test.hugo/content/monologues/{responsive-web-design => web-fully-responsive-design}/index.md (100%)
rename unified.test.hugo/content/{_dump/articles => posts}/_index.md (100%)
create mode 100644 unified.test.hugo/content/responses/_index.md
create mode 100644 unified.test.hugo/content/responses/bengo.is/blogging/2024-10-03-the-challenge-of-activitypub-data-portability/index.md
rename unified.test.hugo/content/{_dump/replies/socialhub-4564-37 => responses/socialhub.activitypub.rocks/4564/37}/index.md (99%)
create mode 100644 unified.test.hugo/content/test.md
create mode 100644 unified.test.hugo/content/wiki/docs/_index.md
create mode 100644 unified.test.hugo/content/wiki/docs/uris-and-slugs.md
create mode 100644 unified.test.hugo/layouts/_default/page.html
create mode 100644 unified.test.hugo/layouts/partials/components/series-list.html
create mode 100644 unified.test.hugo/layouts/partials/components/syndication-list.html
create mode 100644 unified.test.hugo/layouts/partials/mf2/dt-published.html
create mode 100644 unified.test.hugo/layouts/partials/mf2/h-entry.html
create mode 100644 unified.test.hugo/layouts/partials/mf2/u-in-reply-to.html
create mode 100644 unified.test.hugo/layouts/partials/site-footer.html
create mode 100644 unified.test.hugo/layouts/partials/site-header.html
diff --git a/unified.test.hugo/assets/styles/common.scss b/unified.test.hugo/assets/styles/common.scss
index 8370506..a8fc913 100644
--- a/unified.test.hugo/assets/styles/common.scss
+++ b/unified.test.hugo/assets/styles/common.scss
@@ -6,9 +6,12 @@
@import "features/links";
@import "features/syntax-highlighting";
+@import "features/skip-links";
@import "components/table-of-contents";
+@import "components/site-header";
+
// default layout
@import "layouts/_default/list";
@@ -18,10 +21,14 @@
@import "layouts/_default/_markup/render-heading";
@import "layouts/_default/_markup/render-link";
+@import "layouts/partials/mf2/h-entry";
@import "layouts/partials/mf2/h-card";
+@import "layouts/partials/mf2/u-in-reply-to";
@import "components/admonition";
@import "components/quote-block";
@import "components/codeblock";
+@import "components/series-list";
+@import "components/syndication-list";
@import "features/footnotes";
diff --git a/unified.test.hugo/assets/styles/common/elements.scss b/unified.test.hugo/assets/styles/common/elements.scss
index 81b41cc..69af01c 100644
--- a/unified.test.hugo/assets/styles/common/elements.scss
+++ b/unified.test.hugo/assets/styles/common/elements.scss
@@ -66,5 +66,5 @@ pre {
}
/* limit img to page width */
img {
- max-width: 100%;
+ max-inline-size: 100%;
}
\ No newline at end of file
diff --git a/unified.test.hugo/assets/styles/components/quote-block.scss b/unified.test.hugo/assets/styles/components/quote-block.scss
index c506bbd..526b2c1 100644
--- a/unified.test.hugo/assets/styles/components/quote-block.scss
+++ b/unified.test.hugo/assets/styles/components/quote-block.scss
@@ -1,33 +1,78 @@
.quote-block {
- background: var(--ui-overlay-transparent);
- border-inline-start: 0.5em solid var(--ui-overlay);
+ padding: 1em;
box-sizing: border-box;
- padding-inline: 1.5em;
- padding-block: 1.5em;
- position: relative;
- border-radius: 0.5em;
- &__icon {
- font-size: 2em;
- position: absolute;
- z-index: 1;
- inset-inline-start: -0.375em;
- inset-block-start: -0.1725em;
+ background: var(--ui-overlay-transparent);
+ &__header {
+
+ }
+ &__attribution {
+ margin: 0;
+ display: inline-flex;
+ }
+ &__card {
+ display: inline-grid;
+ place-items: center;
+ }
+ &__author {
+ display: inline-grid;
+ place-items: center;
+ a {
+ display: inline-flex;
+ align-items: center;
+ }
+ }
+ &__prepend {
+ margin-block: 0;
+ }
+ &__postpend {
+ display: inline-grid;
+ align-items: center;
+ white-space: pre;
}
&__content {
- margin: 0;
- > *:first-child {
- margin-block-start: 0;
+ blockquote {
+ margin: 0;
+ > *:first-child {
+ margin-block-start: 0;
+ }
+ > *:last-child {
+ margin-block-end: 0;
+ }
}
- > *:last-child {
- margin-block-end: 0;
+ position: relative;
+ // &:before {
+ // content: '';
+ // mask: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxLjE5ZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMTY2NCAxNDA4Ij48cGF0aCBmaWxsPSJ3aGl0ZSIgZD0iTTc2OCA4MzJ2Mzg0cTAgODAtNTYgMTM2dC0xMzYgNTZIMTkycS04MCAwLTEzNi01NlQwIDEyMTZWNTEycTAtMTA0IDQwLjUtMTk4LjVUMTUwIDE1MFQzMTMuNSA0MC41VDUxMiAwaDY0cTI2IDAgNDUgMTl0MTkgNDV2MTI4cTAgMjYtMTkgNDV0LTQ1IDE5aC02NHEtMTA2IDAtMTgxIDc1dC03NSAxODF2MzJxMCA0MCAyOCA2OHQ2OCAyOGgyMjRxODAgMCAxMzYgNTZ0NTYgMTM2bTg5NiAwdjM4NHEwIDgwLTU2IDEzNnQtMTM2IDU2aC0zODRxLTgwIDAtMTM2LTU2dC01Ni0xMzZWNTEycTAtMTA0IDQwLjUtMTk4LjVUMTA0NiAxNTB0MTYzLjUtMTA5LjVUMTQwOCAwaDY0cTI2IDAgNDUgMTl0MTkgNDV2MTI4cTAgMjYtMTkgNDV0LTQ1IDE5aC02NHEtMTA2IDAtMTgxIDc1dC03NSAxODF2MzJxMCA0MCAyOCA2OHQ2OCAyOGgyMjRxODAgMCAxMzYgNTZ0NTYgMTM2Ii8+PC9zdmc+);
+ // background-color: currentColor;
+ // mask-repeat: no-repeat;
+ // position: absolute;
+ // inset-inline-start: -0.5em;
+ // inset-block-start: -0em;
+ // display: block;
+ // inline-size: 100%;
+ // block-size: 100%;
+ // pointer-events: none;
+ // opacity: 0.5;
+ // }
+ // &:after {
+ // content: '';
+ // background-color: currentColor;
+ // mask: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxLjE5ZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMTY2NCAxNDA4Ij48cGF0aCBmaWxsPSJ3aGl0ZSIgZD0iTTc2OCAxOTJ2NzA0cTAgMTA0LTQwLjUgMTk4LjVUNjE4IDEyNTh0LTE2My41IDEwOS41VDI1NiAxNDA4aC02NHEtMjYgMC00NS0xOXQtMTktNDV2LTEyOHEwLTI2IDE5LTQ1dDQ1LTE5aDY0cTEwNiAwIDE4MS03NXQ3NS0xODF2LTMycTAtNDAtMjgtNjh0LTY4LTI4SDE5MnEtODAgMC0xMzYtNTZUMCA1NzZWMTkycTAtODAgNTYtMTM2VDE5MiAwaDM4NHE4MCAwIDEzNiA1NnQ1NiAxMzZtODk2IDB2NzA0cTAgMTA0LTQwLjUgMTk4LjVUMTUxNCAxMjU4dC0xNjMuNSAxMDkuNVQxMTUyIDE0MDhoLTY0cS0yNiAwLTQ1LTE5dC0xOS00NXYtMTI4cTAtMjYgMTktNDV0NDUtMTloNjRxMTA2IDAgMTgxLTc1dDc1LTE4MXYtMzJxMC00MC0yOC02OHQtNjgtMjhoLTIyNHEtODAgMC0xMzYtNTZ0LTU2LTEzNlYxOTJxMC04MCA1Ni0xMzZ0MTM2LTU2aDM4NHE4MCAwIDEzNiA1NnQ1NiAxMzYiLz48L3N2Zz4=);
+ // mask-repeat: no-repeat;
+ // position: absolute;
+ // display: block;
+ // inline-size: 100%;
+ // block-size: 100%;
+ // inset-inline-end: 0em;
+ // inset-block-end: 0em;
+ // mask-position: bottom right;
+ // pointer-events: none;
+ // opacity: 0.5;
+ // }
+ }
+ &__footer {
+ &:before {
+ content: '— ';
}
}
- footer:before {
- content: '— ';
- }
- footer .u-url {
- display: inline-block;
- margin-block-start: 1em;
- padding-inline: 0;
- }
}
\ No newline at end of file
diff --git a/unified.test.hugo/assets/styles/components/series-list.scss b/unified.test.hugo/assets/styles/components/series-list.scss
new file mode 100644
index 0000000..6916651
--- /dev/null
+++ b/unified.test.hugo/assets/styles/components/series-list.scss
@@ -0,0 +1,25 @@
+.series-hint {
+ font-style: italic;
+ .series-link {
+ font-style: initial;
+ }
+}
+.series-list {
+ list-style: none;
+ padding-inline-start: 1em;
+ .current-post {
+ font-weight: bold;
+ }
+ .series-post {
+ margin-block: 0.5em;
+ &__part {
+ margin-inline-end: 0.5em;
+ }
+ &__title {
+
+ }
+ &__link {
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/unified.test.hugo/assets/styles/components/site-header.scss b/unified.test.hugo/assets/styles/components/site-header.scss
new file mode 100644
index 0000000..80e4974
--- /dev/null
+++ b/unified.test.hugo/assets/styles/components/site-header.scss
@@ -0,0 +1,12 @@
+.site-header {
+ .container {
+
+ }
+ .site-masthead {
+ color: inherit;
+ text-decoration: none;
+ }
+ .site-title {
+
+ }
+}
\ No newline at end of file
diff --git a/unified.test.hugo/assets/styles/components/syndication-list.scss b/unified.test.hugo/assets/styles/components/syndication-list.scss
new file mode 100644
index 0000000..64e3131
--- /dev/null
+++ b/unified.test.hugo/assets/styles/components/syndication-list.scss
@@ -0,0 +1,10 @@
+.syndication-hint {
+ margin-block-end: 0;
+}
+.syndication-list {
+ margin-block-start: 0;
+ &-item {
+ margin-block: 0;
+ .u-syndication {}
+ }
+}
\ No newline at end of file
diff --git a/unified.test.hugo/assets/styles/features/autonumbering.scss b/unified.test.hugo/assets/styles/features/autonumbering.scss
index 3c38b97..ff8e441 100644
--- a/unified.test.hugo/assets/styles/features/autonumbering.scss
+++ b/unified.test.hugo/assets/styles/features/autonumbering.scss
@@ -4,7 +4,7 @@ h3 {counter-reset: h4}
h4 {counter-reset: h5}
h5 {counter-reset: h6}
-article[autonumbering] {
+*[autonumbering] {
h2:before {
counter-increment: h2;
content: counter(h2) " ";
diff --git a/unified.test.hugo/assets/styles/features/footnotes.scss b/unified.test.hugo/assets/styles/features/footnotes.scss
index 7171ece..468e253 100644
--- a/unified.test.hugo/assets/styles/features/footnotes.scss
+++ b/unified.test.hugo/assets/styles/features/footnotes.scss
@@ -21,9 +21,25 @@
}
&:after {
content: '';
- width: 100%;
+ inline-size: 100%;
margin-inline-start: 1rem;
border-block-end: 1px solid var(--ui-overlay);
}
}
+}
+
+#footnotes h2 {
+ font-size: 1rem;
+ font-weight: 900;
+ text-transform: uppercase;
+ position: relative;
+ &:after {
+ content: '';
+ position: absolute;
+ inset-inline-end: 0;
+ inset-block-start: calc(50% - 1px);
+ background: var(--ui-overlay);
+ block-size: 1px;
+ inline-size: calc(100% - 12ch);
+ }
}
\ No newline at end of file
diff --git a/unified.test.hugo/assets/styles/features/search.scss b/unified.test.hugo/assets/styles/features/search.scss
index a8080e3..f60d514 100644
--- a/unified.test.hugo/assets/styles/features/search.scss
+++ b/unified.test.hugo/assets/styles/features/search.scss
@@ -36,8 +36,8 @@
}
#search-form {
- width: 100%;
- max-width: 18rem;
+ inline-size: 100%;
+ max-inline-size: 18rem;
display: grid;
grid-template-columns: 20ch 8ch;
gap: 1rem;
@@ -51,7 +51,7 @@
padding: 0.5rem 1rem;
box-sizing: border-box;
resize: horizontal;
- width: 100%;
+ inline-size: 100%;
grid-column: 1;
block-size: 2rem;
line-height: 1rem;
diff --git a/unified.test.hugo/assets/styles/features/skip-links.scss b/unified.test.hugo/assets/styles/features/skip-links.scss
new file mode 100644
index 0000000..02e7a51
--- /dev/null
+++ b/unified.test.hugo/assets/styles/features/skip-links.scss
@@ -0,0 +1,50 @@
+@import "../mixins/shadow.scss";
+
+body {
+ position: relative;
+}
+
+.back-to-top {
+ position: absolute;
+ inset-block-end: 1em;
+ inset-inline-start: -12em;
+ transition: 0.25s all ease-in;
+ background: var(--ui-overlay);
+ color: var(--ui-overlay-text) !important;
+ padding: 1em;
+ @include shadow-high;
+ &:focus {
+ inset-inline-start: 1em;
+ }
+}
+
+.skip-to-items {
+ position: absolute;
+ inset-block-start: -5em;
+ inset-inline-start: 1em;
+ transition: all 0.25s ease-in;
+ background: var(--ui-overlay);
+ color: var(--ui-overlay-text) !important;
+ padding: 1em;
+ @include shadow-high;
+ &:focus {
+ inset-block-start: 1em;
+ }
+}
+
+.skip-syndication {
+ position: absolute;
+ inset-block-start: -5em;
+ inset-inline-start: 1em;
+ transition: 0.25s all ease-in;
+ background: var(--ui-overlay);
+ color: var(--ui-overlay-text);
+ padding: 1em;
+ @include shadow-high;
+ &:focus {
+ inset-block-start: 1em;
+ }
+ &:before {
+ content: "Skip syndication information";
+ }
+}
\ No newline at end of file
diff --git a/unified.test.hugo/assets/styles/layouts/_default/_markup/render-heading.scss b/unified.test.hugo/assets/styles/layouts/_default/_markup/render-heading.scss
index 49513cf..5127e80 100644
--- a/unified.test.hugo/assets/styles/layouts/_default/_markup/render-heading.scss
+++ b/unified.test.hugo/assets/styles/layouts/_default/_markup/render-heading.scss
@@ -16,7 +16,9 @@
display: grid;
place-items: center;
align-self: start;
- &__text {
+ &:before {
+ content: "[link]";
+ display: inline-block;
font-size: 1rem;
}
}
diff --git a/unified.test.hugo/assets/styles/layouts/_default/list.scss b/unified.test.hugo/assets/styles/layouts/_default/list.scss
index 2bd4f92..e668f4d 100644
--- a/unified.test.hugo/assets/styles/layouts/_default/list.scss
+++ b/unified.test.hugo/assets/styles/layouts/_default/list.scss
@@ -1,36 +1,8 @@
-@import "../../mixins/shadow.scss";
-
.layout-_default-list {
- .skip-to-items {
- position: absolute;
- inset-block-start: -5em;
- inset-inline-start: 1em;
- transition: all 0.25s ease-in;
- background: var(--ui-overlay);
- color: var(--ui-overlay-text);
- padding: 1em;
- @include shadow-low;
- &:focus {
- inset-block-start: 1em;
- }
- }
- .back-to-top {
- position: absolute;
- inset-block-end: 1em;
- inset-inline-start: -15em;
- transition: all 0.25s ease-in;
- background: var(--ui-overlay);
- color: var(--ui-overlay-text);
- padding: 1em;
- @include shadow-low;
- &:focus {
- inset-inline-start: 1em;
- }
- }
.list-header {
hr {display: none;}
.container {
- max-width: 80ch;
+ max-inline-size: 80ch;
margin-inline: auto;
}
}
@@ -68,26 +40,13 @@
}
}
.list-pages {
- max-width: 80ch;
+ max-inline-size: 80ch;
margin-inline: auto;
.pages-list {
list-style: none;
padding-inline-start: 0;
- &__item {
- line-height: 1.5;
+ &-item {
margin-inline-start: 0;
- margin-block: 1em;
- .u-url {display: inline;}
- .p-name {
- font-weight: bold;
- font-size: 1em;
- margin: 0;
- display: inline;
- }
- .p-summary {
- font-style: italic;
- display: block;
- }
}
}
}
diff --git a/unified.test.hugo/assets/styles/layouts/_default/single.scss b/unified.test.hugo/assets/styles/layouts/_default/single.scss
index afd0ba5..bbbc4bd 100644
--- a/unified.test.hugo/assets/styles/layouts/_default/single.scss
+++ b/unified.test.hugo/assets/styles/layouts/_default/single.scss
@@ -1,37 +1,8 @@
-@import "../../mixins/shadow.scss";
-
.layout-_default-single {
- position: relative;
- .skip-to-end-of-header {
- position: absolute;
- inset-block-start: -5em;
- inset-inline-start: 1em;
- transition: 0.25s all ease-in;
- background: var(--ui-overlay);
- color: var(--ui-overlay-text);
- padding: 1em;
- @include shadow-low;
- &:focus {
- inset-block-start: 1em;
- }
- }
- .back-to-top {
- position: absolute;
- inset-block-end: 1em;
- inset-inline-start: -15em;
- transition: 0.25s all ease-in;
- background: var(--ui-overlay);
- color: var(--ui-overlay-text);
- padding: 1em;
- @include shadow-low;
- &:focus {
- inset-inline-start: 1em;
- }
- }
.page-header {
hr {display: none;}
.container {
- max-width: 80ch;
+ max-inline-size: 80ch;
margin-inline: auto;
}
}
@@ -67,8 +38,8 @@
.reply-icon {
background: var(--ui-overlay);
display: inline-block;
- width: 1em;
- height: 1em;
+ inline-size: 1em;
+ block-size: 1em;
padding: 0.25em;
border-radius: 100em;
}
@@ -79,71 +50,27 @@
.u-url {font-family: monospace;}
}
.page-syndication {
- p {margin-block-end: 0;}
- .syndication-list {
- margin-block-start: 0;
- &-item {
- margin-block: 0;
- .u-syndication {}
- }
- }
+
}
.page-series {
hr {display: none;}
// background: var(--ui-overlay);
// color: var(--ui-overlay-text);
.container {
- max-width: 80ch;
+ max-inline-size: 80ch;
margin-inline: auto;
}
- &__hint {
- font-style: italic;
- }
- .series {
- list-style: none;
- padding-inline-start: 1em;
- .current-post {
- font-weight: bold;
- }
- .series-post {
- margin-block: 0.5em;
- &__part {
- margin-inline-end: 0.5em;
- }
- &__title {
-
- }
- &__link {
-
- }
- }
- }
}
.page-content {
- width: 100%;
- max-width: 80ch;
+ inline-size: 100%;
+ max-inline-size: 80ch;
margin-inline: auto;
}
.page-footer {
hr {display: none;}
- width: 100%;
- max-width: 80ch;
+ inline-size: 100%;
+ max-inline-size: 80ch;
margin-inline: auto;
- #footnotes h2 {
- font-size: 1rem;
- font-weight: 900;
- text-transform: uppercase;
- position: relative;
- &:after {
- content: '';
- position: absolute;
- inset-inline-end: 0;
- inset-block-start: calc(50% - 1px);
- background: var(--ui-overlay);
- block-size: 1px;
- inline-size: calc(100% - 12ch);
- }
- }
}
.page[has-toc] {
padding-block-end: 4em;
@@ -158,11 +85,11 @@
position: fixed;
z-index: 10;
inset-block-end: 6em;
- height: max-content;
- width: 80%;
- max-width: 20em;
- max-height: #{min}(40em, 70vh);
- overflow-y: scroll;
+ block-size: max-content;
+ inline-size: 80%;
+ max-inline-size: 20em;
+ max-block-size: #{m}in(40em, 70vh);
+ overflow-block: scroll;
inset-inline-end: 1em;
background: var(--ui-overlay);
border-radius: 1em;
@@ -181,7 +108,7 @@
background: var(--ui-overlay);
padding: 1em;
border-radius: 100em;
- width: 6em;
+ inline-size: 6em;
display: flex;
justify-content: center;
@include shadow-low;
diff --git a/unified.test.hugo/assets/styles/layouts/partials/mf2/h-card.scss b/unified.test.hugo/assets/styles/layouts/partials/mf2/h-card.scss
index afc98a8..cf93be8 100644
--- a/unified.test.hugo/assets/styles/layouts/partials/mf2/h-card.scss
+++ b/unified.test.hugo/assets/styles/layouts/partials/mf2/h-card.scss
@@ -1,20 +1,27 @@
.author-card {
display: inline-flex;
- align-items: center;
- gap: 0.5em;
.author-card__link {
text-decoration: none;
color: inherit;
- display: contents;
+ display: inline-flex;
+ align-items: center;
&:after {
display: none !important; // suppress "external links" icon
}
}
&__avatar {
- width: 3em;
+ inline-size: 3em;
+ block-size: 3em;
border-radius: 100em;
+ display: inline-block;
+ margin-inline-end: 0.5em;
+ &:not(img) {
+ background: var(--ui-overlay-transparent);
+ }
}
&__name {
font-weight: bold;
+ display: inline-flex;
+ align-items: center;
}
}
\ No newline at end of file
diff --git a/unified.test.hugo/assets/styles/layouts/partials/mf2/h-entry.scss b/unified.test.hugo/assets/styles/layouts/partials/mf2/h-entry.scss
new file mode 100644
index 0000000..23ce87a
--- /dev/null
+++ b/unified.test.hugo/assets/styles/layouts/partials/mf2/h-entry.scss
@@ -0,0 +1,14 @@
+.feed-item {
+ &__title {
+
+ }
+ &__date {
+
+ }
+ &__summary {
+
+ }
+ &__readmore {
+
+ }
+}
\ No newline at end of file
diff --git a/unified.test.hugo/assets/styles/layouts/partials/mf2/u-in-reply-to.scss b/unified.test.hugo/assets/styles/layouts/partials/mf2/u-in-reply-to.scss
new file mode 100644
index 0000000..7d2ce01
--- /dev/null
+++ b/unified.test.hugo/assets/styles/layouts/partials/mf2/u-in-reply-to.scss
@@ -0,0 +1,22 @@
+.in-reply-to-prepend {
+ display: grid;
+ place-items: start start;
+ grid-template-columns: auto 1fr;
+ &__text {
+ place-self: center start;
+ line-height: 1.5em;
+ }
+ &:before {
+ content: '';
+ display: inline-block;
+ background: var(--ui-overlay);
+ background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9IndoaXRlIiBkPSJNMTAgOVY1bC03IDdsNyA3di00LjFjNSAwIDguNSAxLjYgMTEgNS4xYy0xLTUtNC0xMC0xMS0xMSIvPjwvc3ZnPg==);
+ width: 1em;
+ height: 1em;
+ padding: 0.25em;
+ border-radius: 100em;
+ background-repeat: no-repeat;
+ background-position: center;
+ margin-inline-end: 0.5em;
+ }
+}
\ No newline at end of file
diff --git a/unified.test.hugo/content/_dump/links/_index.md b/unified.test.hugo/content/_dump/links/_index.md
deleted file mode 100644
index f7ba421..0000000
--- a/unified.test.hugo/content/_dump/links/_index.md
+++ /dev/null
@@ -1,2 +0,0 @@
-+++
-+++
\ No newline at end of file
diff --git a/unified.test.hugo/content/_dump/notes/_index.md b/unified.test.hugo/content/_dump/notes/_index.md
deleted file mode 100644
index f7ba421..0000000
--- a/unified.test.hugo/content/_dump/notes/_index.md
+++ /dev/null
@@ -1,2 +0,0 @@
-+++
-+++
\ No newline at end of file
diff --git a/unified.test.hugo/content/_dump/replies/_index.md b/unified.test.hugo/content/_dump/replies/_index.md
deleted file mode 100644
index f7ba421..0000000
--- a/unified.test.hugo/content/_dump/replies/_index.md
+++ /dev/null
@@ -1,2 +0,0 @@
-+++
-+++
\ No newline at end of file
diff --git a/unified.test.hugo/content/_dump/socialhub-threads/_index.md b/unified.test.hugo/content/_dump/socialhub-threads/_index.md
deleted file mode 100644
index f7ba421..0000000
--- a/unified.test.hugo/content/_dump/socialhub-threads/_index.md
+++ /dev/null
@@ -1,2 +0,0 @@
-+++
-+++
\ No newline at end of file
diff --git a/unified.test.hugo/content/articles/_index.md b/unified.test.hugo/content/articles/_index.md
deleted file mode 100644
index 310286e..0000000
--- a/unified.test.hugo/content/articles/_index.md
+++ /dev/null
@@ -1,4 +0,0 @@
-+++
-title = "articles"
-summary = ""
-+++
\ No newline at end of file
diff --git a/unified.test.hugo/content/monologues/multi-protocol-approach/index.md b/unified.test.hugo/content/monologues/activitypub-protocol/index.md
similarity index 99%
rename from unified.test.hugo/content/monologues/multi-protocol-approach/index.md
rename to unified.test.hugo/content/monologues/activitypub-protocol/index.md
index 7f64949..5429a36 100644
--- a/unified.test.hugo/content/monologues/multi-protocol-approach/index.md
+++ b/unified.test.hugo/content/monologues/activitypub-protocol/index.md
@@ -56,4 +56,5 @@ When you put it like this, it becomes clear that if the fediverse wants to conti
And the challenge here, the issue is, that if we don't do this work at a grassroots level, then Meta will do it for us. (Can you imagine a "developer portal" for "interoperating with Threads"?) Things like the FEP process allow writing up these "micro-protocols", and then after that, the difficult task of cat-herding begins, as you need to get implementers onboard with adhering to these specifications. And of course, we're all mostly doing this in our free time and without access to the resources that larger organizations have or can gain access to. So it's going to be an uphill battle. But whichever "protocol building blocks" we can agree and align upon, let's go for it.
[^multi-proto-approach]: I was specifically looking at a "unified communication" project, which mapped abstract forms of communication like "messaging", "publishing", "discussing", "reading" onto existing protocols like SMTP, XMPP, ActivityPub, IRC, RSS, ATOM, HTTP. There's a risk of ending up with something like Pidgin here, but maybe that's not the worst thing.
+
[^protocol-layering]: And of course, other protocols and other layerings are possible. Libervia (formerly Salut a Toi) does AS2 with PubSub over XMPP, but offers an "ActivityPub gateway". You could, if you wanted to, send AS2 over an SMTP transport.
\ No newline at end of file
diff --git a/unified.test.hugo/content/monologues/drowning-in-awareness/index.md b/unified.test.hugo/content/monologues/awareness/index.md
similarity index 100%
rename from unified.test.hugo/content/monologues/drowning-in-awareness/index.md
rename to unified.test.hugo/content/monologues/awareness/index.md
diff --git a/unified.test.hugo/content/monologues/implicit-vs-explicit-collections/create-note.png b/unified.test.hugo/content/monologues/collections-explicit-vs-implicit/create-note.png
similarity index 100%
rename from unified.test.hugo/content/monologues/implicit-vs-explicit-collections/create-note.png
rename to unified.test.hugo/content/monologues/collections-explicit-vs-implicit/create-note.png
diff --git a/unified.test.hugo/content/monologues/implicit-vs-explicit-collections/index.md b/unified.test.hugo/content/monologues/collections-explicit-vs-implicit/index.md
similarity index 100%
rename from unified.test.hugo/content/monologues/implicit-vs-explicit-collections/index.md
rename to unified.test.hugo/content/monologues/collections-explicit-vs-implicit/index.md
diff --git a/unified.test.hugo/content/monologues/nation-stateification/index.md b/unified.test.hugo/content/monologues/fedi-nation-stateification/index.md
similarity index 100%
rename from unified.test.hugo/content/monologues/nation-stateification/index.md
rename to unified.test.hugo/content/monologues/fedi-nation-stateification/index.md
diff --git a/unified.test.hugo/content/monologues/services-vs-communities/index.md b/unified.test.hugo/content/monologues/fedi-services-vs-communities/index.md
similarity index 100%
rename from unified.test.hugo/content/monologues/services-vs-communities/index.md
rename to unified.test.hugo/content/monologues/fedi-services-vs-communities/index.md
diff --git a/unified.test.hugo/content/monologues/specs-arent-enough/index.md b/unified.test.hugo/content/monologues/fedi-specs-arent-enough/index.md
similarity index 100%
rename from unified.test.hugo/content/monologues/specs-arent-enough/index.md
rename to unified.test.hugo/content/monologues/fedi-specs-arent-enough/index.md
diff --git a/unified.test.hugo/content/monologues/specs-arent-enough/specs-are-enough.png b/unified.test.hugo/content/monologues/fedi-specs-arent-enough/specs-are-enough.png
similarity index 100%
rename from unified.test.hugo/content/monologues/specs-arent-enough/specs-are-enough.png
rename to unified.test.hugo/content/monologues/fedi-specs-arent-enough/specs-are-enough.png
diff --git a/unified.test.hugo/content/monologues/making-better-stuff-is-unprofitable/index.md b/unified.test.hugo/content/monologues/making-better-stuff-is-unprofitable/index.md
deleted file mode 100644
index 0981171..0000000
--- a/unified.test.hugo/content/monologues/making-better-stuff-is-unprofitable/index.md
+++ /dev/null
@@ -1,10 +0,0 @@
-+++
-title = "making better stuff is unprofitable"
-summary = "there will inevitably be a point where it is unprofitable to improve a product any further."
-date = 2017-12-22T06:06:00-06:00
-source = "https://mastodon.social/@trwnh/99217860566004390"
-+++
-
-There will inevitably be a point where it is unprofitable to improve a product any further.
-
-i.e., if Apple's primary goal was to make useful products, it would make choices that result in a better product even if it was slightly more expensive. But their primary goal is profit, as it is for every corporation under capitalism. Making better stuff is unprofitable.
\ No newline at end of file
diff --git a/unified.test.hugo/content/monologues/mainstreaming-mastodon/index.md b/unified.test.hugo/content/monologues/mastodon-mainstreaming/index.md
similarity index 100%
rename from unified.test.hugo/content/monologues/mainstreaming-mastodon/index.md
rename to unified.test.hugo/content/monologues/mastodon-mainstreaming/index.md
diff --git a/unified.test.hugo/content/monologues/product-vs-profit/index.md b/unified.test.hugo/content/monologues/product-vs-profit/index.md
index 26cdc0b..a0f75f3 100644
--- a/unified.test.hugo/content/monologues/product-vs-profit/index.md
+++ b/unified.test.hugo/content/monologues/product-vs-profit/index.md
@@ -1,5 +1,5 @@
+++
-title = "product vs profit"
+title = "making better stuff is unprofitable"
summary = "There will inevitably be a point where it is unprofitable to improve a product any further."
date = 2017-12-22T06:06:00-06:00
source = "https://mastodon.social/@trwnh/99217860566004390"
diff --git a/unified.test.hugo/content/monologues/defining-quote-posts/index.md b/unified.test.hugo/content/monologues/quote-post-definition/index.md
similarity index 100%
rename from unified.test.hugo/content/monologues/defining-quote-posts/index.md
rename to unified.test.hugo/content/monologues/quote-post-definition/index.md
diff --git a/unified.test.hugo/content/monologues/social-media-flawed/index.md b/unified.test.hugo/content/monologues/social-media-fundamentally-flawed/index.md
similarity index 100%
rename from unified.test.hugo/content/monologues/social-media-flawed/index.md
rename to unified.test.hugo/content/monologues/social-media-fundamentally-flawed/index.md
diff --git a/unified.test.hugo/content/monologues/multiple-accounts/index.md b/unified.test.hugo/content/monologues/social-media-multiple-accounts/index.md
similarity index 100%
rename from unified.test.hugo/content/monologues/multiple-accounts/index.md
rename to unified.test.hugo/content/monologues/social-media-multiple-accounts/index.md
diff --git a/unified.test.hugo/content/monologues/publishing-vs-discussing/index.md b/unified.test.hugo/content/monologues/social-media-publishing-vs-discussing/index.md
similarity index 100%
rename from unified.test.hugo/content/monologues/publishing-vs-discussing/index.md
rename to unified.test.hugo/content/monologues/social-media-publishing-vs-discussing/index.md
diff --git a/unified.test.hugo/content/monologues/deactivating-twitter/index.md b/unified.test.hugo/content/monologues/twitter-deactivated/index.md
similarity index 100%
rename from unified.test.hugo/content/monologues/deactivating-twitter/index.md
rename to unified.test.hugo/content/monologues/twitter-deactivated/index.md
diff --git a/unified.test.hugo/content/monologues/ubi/index.md b/unified.test.hugo/content/monologues/ubi-and-capitalism/index.md
similarity index 100%
rename from unified.test.hugo/content/monologues/ubi/index.md
rename to unified.test.hugo/content/monologues/ubi-and-capitalism/index.md
diff --git a/unified.test.hugo/content/monologues/voluntarism/index.md b/unified.test.hugo/content/monologues/voluntarism-and-power-imbalance/index.md
similarity index 96%
rename from unified.test.hugo/content/monologues/voluntarism/index.md
rename to unified.test.hugo/content/monologues/voluntarism-and-power-imbalance/index.md
index 3ad4063..c11a926 100644
--- a/unified.test.hugo/content/monologues/voluntarism/index.md
+++ b/unified.test.hugo/content/monologues/voluntarism-and-power-imbalance/index.md
@@ -1,5 +1,5 @@
+++
-title = "voluntarism vs socialism"
+title = "voluntarism requires equality"
summary = "If two people are inequal, then they can never come to a voluntary agreement -- the power of one will coerce the other"
date = 2018-04-06T18:19:00-05:00
source = "https://mastodon.social/@trwnh/99815047195372515"
diff --git a/unified.test.hugo/content/monologues/responsive-web-design/index.md b/unified.test.hugo/content/monologues/web-fully-responsive-design/index.md
similarity index 100%
rename from unified.test.hugo/content/monologues/responsive-web-design/index.md
rename to unified.test.hugo/content/monologues/web-fully-responsive-design/index.md
diff --git a/unified.test.hugo/content/_dump/articles/_index.md b/unified.test.hugo/content/posts/_index.md
similarity index 100%
rename from unified.test.hugo/content/_dump/articles/_index.md
rename to unified.test.hugo/content/posts/_index.md
diff --git a/unified.test.hugo/content/responses/_index.md b/unified.test.hugo/content/responses/_index.md
new file mode 100644
index 0000000..6c1f1f4
--- /dev/null
+++ b/unified.test.hugo/content/responses/_index.md
@@ -0,0 +1,4 @@
++++
+title = "responses"
+summary = "everything you see here is something that largely only makes sense if you read the original. WARNING: this category is unstable"
++++
\ No newline at end of file
diff --git a/unified.test.hugo/content/responses/bengo.is/blogging/2024-10-03-the-challenge-of-activitypub-data-portability/index.md b/unified.test.hugo/content/responses/bengo.is/blogging/2024-10-03-the-challenge-of-activitypub-data-portability/index.md
new file mode 100644
index 0000000..9543b07
--- /dev/null
+++ b/unified.test.hugo/content/responses/bengo.is/blogging/2024-10-03-the-challenge-of-activitypub-data-portability/index.md
@@ -0,0 +1,56 @@
++++
+date = 2024-10-17T08:49:47-05:00
+[[params.inReplyTo]]
+name = "The Challenge of ActivityPub Data Portability"
+url = "https://bengo.is/blogging/2024-10-03-the-challenge-of-activitypub-data-portability/"
++++
+
+great read! you're spot on in a lot of things, but i had a few nitpicks
+
+> **In ActivityPub, Data Portability comes largely from the Social Data Syntax, not the network protocols.**
+>
+> The data syntax and semantics enables, amongst other things, data portability and a good federation protocol.
+>
+> But various endeavors above are trying to solve data portability primarily via network protocols. I've been wondering whether that's the right layer on which to tackle this challenge? Or if some enhancement at the data syntax layer might help.
+{cite="https://bengo.is/blogging/2024-10-03-the-challenge-of-activitypub-data-portability/" author="[bengo](https://bengo.is)"}
+
+the data syntax is mostly fine, actually. the challenge for data portability is not in copying documents from one location to another; it's in being able to refer to them independently of network location, as you touch on later. **links are what define the network.** the data is already "portable", it's just that if you port the data, then you destroy the existing network of links.
+
+> a hard choice to make for 5 years now: do you build for ActivityPub's protocol, or do you build for the Mastodon Protocol? The former is fairly well-specified, has consensus-driven governance via W3C / FEPs, but is not implemented by Mastodon. The latter has all the end-users.
+{cite="https://bengo.is/blogging/2024-10-03-the-challenge-of-activitypub-data-portability/" author="[bengo](https://bengo.is)"}
+
+i actually think the "activitypub protocol" is not "fairly well-specified". it's not that mastodon simply has all the users. it's that mastodon implements its own protocol on top of activitypub (or LDN). the only S2S protocols that activitypub actually defines are:
+
+- delivery (LDN where the payload is an `Activity`)
+- following (send a `Follow`, get back an `Accept Follow` or `Reject Follow`, you can `Undo Follow` -- but note that removing a follower is undefined!)
+- liking (send a `Like`, it gets added to the `likes` collection on that object, also it gets added to your `liked` collection on your actor)
+- sharing (send an `Announce`, it gets added to the `shares` collection on that object)
+
+the other activities mostly don't have any side effects within activitypub. for example, Create has "surprisingly few side effects" in S2S AP, but in the Mastodon Protocol it actually has significant side effects, in that it persists a "status" in the remote database, and the shape of that activity has a lot of additional requirements placed on top of it. these are all things that are left undefined by AP, and i don't think it is AP's responsibility to define those things, but an additional protocol layered on top of AP should definitely do that. and this is de facto the Mastodon Protocol unless some other entity defines a different protocol (e.g. the Lemmy Protocol)
+
+these are actually really important things to define, and the fact that they're not defined is the biggest problem with the "fediverse" as a network. if you want to interoperate with anyone, you need to basically read their documentation and probably their codebase too and possibly reverse-engineer stuff as well and discuss with other people who did the same. all behavior is formally undefined, or more appropriately implicitly defined by the codebases. it's never stated anywhere that things like deleting your actor have additional side effects like possibly deleting all your "statuses" in that remote database.
+
+> When followed, the link to the input of the ActivityPubOutboxPostProcess would be the exact request body of the HTTP Post request sent by the client to the outbox server, and would include any DataIntegrityProof created by the client.
+{cite="https://bengo.is/blogging/2024-10-03-the-challenge-of-activitypub-data-portability/" author="[bengo](https://bengo.is)"}
+
+i don't think it makes sense to store the HTTP POST request unmodified unless you're interested in doing anything with it later e.g. validating an HTTP Signature...
+
+> The more concerning part of what Mastodon has normalized is that the Mastodon Server generates keypairs, not the end-user that is the true entity that the social objects are attributedTo.
+{cite="https://bengo.is/blogging/2024-10-03-the-challenge-of-activitypub-data-portability/" author="[bengo](https://bengo.is)"}
+
+one thing i've toyed with is the possibility of linking an object to the Create activity that led to its creation. i was going to use `attributedTo` for this.
+
+> servers should really let an end-user that the Actor represents bring their own verification methods, and only share the public keys with the ActivityPub Server.
+{cite="https://bengo.is/blogging/2024-10-03-the-challenge-of-activitypub-data-portability/" author="[bengo](https://bengo.is)"}
+
+the server can lie about public keys attached to the actor though. what we probably need is to instead signal which *clients* are attached to any given actor, and then allow *clients* to declare their own keys. this is because the clients are the user-agents that are acting on behalf of the user, and it is generally not the user who should be handling their own keys directly.
+
+> There's no reason an ActivityPub server should demand to control the end-user's private keys.
+{cite="https://bengo.is/blogging/2024-10-03-the-challenge-of-activitypub-data-portability/" author="[bengo](https://bengo.is)"}
+
+one reason is that an actor needs something to prove its own identity when making network requests. the client can use the `proxyUrl` endpoint to fetch objects as the actor, and so the actor needs its own key for federated identity... or so goes the argument.
+
+> I think a lot of people want 'Account Portability' because what they really want is Single Sign On.
+{cite="https://bengo.is/blogging/2024-10-03-the-challenge-of-activitypub-data-portability/" author="[bengo](https://bengo.is)"}
+
+disagree; SSO is nice to have but you should be able to port your identity just like you should be able to port your data.
\ No newline at end of file
diff --git a/unified.test.hugo/content/_dump/replies/socialhub-4564-37/index.md b/unified.test.hugo/content/responses/socialhub.activitypub.rocks/4564/37/index.md
similarity index 99%
rename from unified.test.hugo/content/_dump/replies/socialhub-4564-37/index.md
rename to unified.test.hugo/content/responses/socialhub.activitypub.rocks/4564/37/index.md
index cc7378e..97afa94 100644
--- a/unified.test.hugo/content/_dump/replies/socialhub-4564-37/index.md
+++ b/unified.test.hugo/content/responses/socialhub.activitypub.rocks/4564/37/index.md
@@ -1,6 +1,7 @@
+++
-date = 2024-09-30T17:41:00-06:00
+date = 2024-09-30T17:41:00-05:00
tags = ["capitalism", "social", "capital", "mastodon", "utility", "analysis"]
+draft = true
[[params.inReplyTo]]
name = "post #36 of \"SocialWebFoundation - what do people think?\""
url = "https://socialhub.activitypub.rocks/t/socialwebfoundation-what-do-people-think/4564/36"
diff --git a/unified.test.hugo/content/test.md b/unified.test.hugo/content/test.md
new file mode 100644
index 0000000..fdcb53e
--- /dev/null
+++ b/unified.test.hugo/content/test.md
@@ -0,0 +1,5 @@
++++
+layout = "page"
++++
+
+test
\ No newline at end of file
diff --git a/unified.test.hugo/content/wiki/docs/_index.md b/unified.test.hugo/content/wiki/docs/_index.md
new file mode 100644
index 0000000..92101a3
--- /dev/null
+++ b/unified.test.hugo/content/wiki/docs/_index.md
@@ -0,0 +1 @@
+talking about the making of this website. this section might not exist later if i end up thinking of a better place to put stuff
\ No newline at end of file
diff --git a/unified.test.hugo/content/wiki/docs/uris-and-slugs.md b/unified.test.hugo/content/wiki/docs/uris-and-slugs.md
new file mode 100644
index 0000000..0ffb1a1
--- /dev/null
+++ b/unified.test.hugo/content/wiki/docs/uris-and-slugs.md
@@ -0,0 +1,46 @@
++++
+title = "URI design and slug choice"
+summary = "Some guidelines on where to put content files."
+updated = 2024-10-16
+toc = true
++++
+
+## Sections
+
+### Why sections?
+
+Web pages generally benefit from having some context associated with them. If they don't, then it's fine to stick them directly under the root of your domain name. These "top-level" pages are standalone and don't need any additional context. Common examples include:
+
+- /about
+- /contact
+- /search
+
+### Defining a section
+
+When defining a section, it should have a clear reason to exist, and it should be defined narrowly enough that it doesn't overlap with any other section. Within each section, typically aim for zero nesting. The aim is for each section to represent a logical bucket into which I can put stuff, and then later be able to easily find that stuff.
+
+### Currently existing sections
+
+- /monologues = self-replies and other passing stream-of-consciousness stuff
+- /theorycrafting = exploring ideas and concepts
+- /essays = writings intended to convince
+
+### Future potential sections
+
+- /posts = a section that i can hook up to a micropub server or something, which i would use for primarily "social media" style use-cases. it's very likely that most things in here will be indieweb post type "note", but i don't actually care what the post type is, and it doesn't actually matter what the post type is. as far as i'm concerned and as far as this section is concerned, they're all posts.
+- /meta = stuff about this website itself, like this document
+- /unstable = stuff that might disappear at any time, kind of a dumping ground
+
+## Slugs
+
+### Slugs are not titles
+
+The slug **SHOULD NOT** be thought of as linked to the title in any way. You can use the title as a suggestion for a slug, but the slug has no bearing on the title. This is because the title can change freely without affecting the slug. They are separate things.
+
+### Slugs should start with the primary subject
+
+The first part of the slug **SHOULD** be the primary subject of whatever the page/article/writing is about. For example, a content piece in `/monologues` with the title "specs aren't enough" may not actually be primarily about "specs". It is in fact about fedi. So the slug should be `fedi-specs-arent-enough` and not `specs-arent-enough`. Note that this can still be ambiguous because it is unclear whether the primary subject is "specs" or "fedi specs". I don't have a good solution for this ambiguity, but it is better to keep "fedi" in there, because a potential reader seeing only `specs-arent-enough` will have no way of knowing that the content is about fedi in particular.
+
+### Slugs should match the folder name
+
+Custom slugs **SHOULD NOT** be set. If it's good enough for your filesystem, it should be good enough for your URI, and vice-versa.
\ No newline at end of file
diff --git a/unified.test.hugo/layouts/_default/_markup/render-blockquote.html b/unified.test.hugo/layouts/_default/_markup/render-blockquote.html
index ae2e0ed..4c87b8b 100644
--- a/unified.test.hugo/layouts/_default/_markup/render-blockquote.html
+++ b/unified.test.hugo/layouts/_default/_markup/render-blockquote.html
@@ -8,10 +8,11 @@
{{- else }}
{{- /* this is a quote */}}
{{- $datapath := (split (.Attributes.card) "/") }}
-{{- $author := .Page.Site.Data.people }}
+{{- $card := .Page.Site.Data.people }}
{{- range $datapath }}
-{{- $author = index $author . }}
+{{- $card = index $card . }}
{{- end }}
+{{- $author := .Attributes.author }}
{{- $content := .Text }}
{{- $cite := .Attributes.cite }}
{{- $title := .Attributes.title }}
@@ -19,6 +20,7 @@
{{- $caption := .Attributes.caption }}
{{- $opts := dict
"ctx" .
+ "card" $card
"author" $author
"content" $content
"cite" $cite
diff --git a/unified.test.hugo/layouts/_default/_markup/render-heading.html b/unified.test.hugo/layouts/_default/_markup/render-heading.html
index eb8f9c2..17b8ee8 100644
--- a/unified.test.hugo/layouts/_default/_markup/render-heading.html
+++ b/unified.test.hugo/layouts/_default/_markup/render-heading.html
@@ -1,6 +1,5 @@
{{.}}
-{{- range .Pages }}
-{{- if .Title }}{{/* indieweb post kind is probably article */}}
-
{{.Title}}
-{{- if isset .Params "summary" }}{{/* only use explicitly-set summaries, not auto-generated ones */ -}}
-
-{{.Summary}}
-{{- end }}{{/* end if isset .Params "summary" */ -}}
-
h-entry URL: {{.}}
+ {{- end }} {{- with .Params.syndication }} {{- end }} -{{/* {{ with .Params.source }} +{{- /* {{ with .Params.source }} {{ $type := (printf "%T" .) }} {{ if eq $type "string"}} {{ if (findRE "^http" .) }} @@ -65,34 +59,13 @@ Published