diff --git a/unified.test.hugo/assets/styles/common.scss b/unified.test.hugo/assets/styles/common.scss index 2952db8..9909ccf 100644 --- a/unified.test.hugo/assets/styles/common.scss +++ b/unified.test.hugo/assets/styles/common.scss @@ -11,14 +11,28 @@ @import "components/table-of-contents"; @import "components/site-header"; +@import "components/site-footer"; // default layout @import "layouts/_default/list"; @import "components/feed-header"; +@import "components/feed-permalink"; @import "components/feed-entries"; +@import "components/feed-entry"; +@import "components/feed-entry-compact"; @import "components/feed-entry-in-series"; + @import "layouts/_default/single"; +@import "components/article"; +@import "components/article-header"; +@import "components/article-authors"; +@import "components/article-published-datetime"; +@import "components/in-reply-to-prepend"; +@import "components/article-tags"; +@import "components/article-permalink"; +@import "components/article-syndication-list"; +@import "components/article-series-list"; @import "features/content"; @import "layouts/_default/_markup/render-heading"; @@ -26,12 +40,10 @@ @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 "components/alt-formats"; @import "features/footnotes"; diff --git a/unified.test.hugo/assets/styles/common/base.scss b/unified.test.hugo/assets/styles/common/base.scss index 70c47e9..1a8049f 100644 --- a/unified.test.hugo/assets/styles/common/base.scss +++ b/unified.test.hugo/assets/styles/common/base.scss @@ -1,5 +1,5 @@ :root { - --site-max-width: 120ch; + --site-max-width: 100em; } html { @@ -51,4 +51,8 @@ Containers are an immediate child
, purely for constraining width. .container { padding: 0 2em; } +} + +.nobr { + display: inline-block; } \ No newline at end of file diff --git a/unified.test.hugo/assets/styles/common/colors.scss b/unified.test.hugo/assets/styles/common/colors.scss index 50c4346..9990a46 100644 --- a/unified.test.hugo/assets/styles/common/colors.scss +++ b/unified.test.hugo/assets/styles/common/colors.scss @@ -15,6 +15,7 @@ --ui-overlay-transparent: hsla(210, 100%, 87.5%, 0.4); --ui-overlay-text: var(--ui-text); --ui-overlay-highlight: hsl(210, 100%, 80%); + --ui-overlay-deemphasized: hsl(210, 100%, 95%); } @media (prefers-color-scheme: dark) { @@ -35,5 +36,6 @@ --ui-overlay-transparent: hsla(210, 100%, 20%, 0.25); --ui-overlay-text: var(--ui-text); --ui-overlay-highlight: hsl(210, 100%, 27.5%); + --ui-overlay-deemphasized: hsl(210, 100%, 5%); } } \ No newline at end of file diff --git a/unified.test.hugo/assets/styles/common/elements.scss b/unified.test.hugo/assets/styles/common/elements.scss index 54086c4..ab9165b 100644 --- a/unified.test.hugo/assets/styles/common/elements.scss +++ b/unified.test.hugo/assets/styles/common/elements.scss @@ -51,6 +51,16 @@ figcaption { padding-block: 1em; padding-inline: 1em; } +figure img { + display: block; + margin: 0 auto; + width: 100%; +} +figure img ~ figcaption { + background: var(--ui-overlay); + color: var(--ui-overlay-text); + text-align: center; +} /* extra style and flair */ code { background: var(--ui-overlay); diff --git a/unified.test.hugo/assets/styles/common/typography.scss b/unified.test.hugo/assets/styles/common/typography.scss index e3aebdb..3c3d824 100644 --- a/unified.test.hugo/assets/styles/common/typography.scss +++ b/unified.test.hugo/assets/styles/common/typography.scss @@ -2,7 +2,7 @@ h1 {font-size: 2.027rem} h2 {font-size: 1.802rem} h3 {font-size: 1.602rem} h4 {font-size: 1.424rem} -h5 {font-size: 1.266rem} +h5, .subtitle {font-size: 1.266rem} h6 {font-size: 1.125rem} h1, h2, h3, h4, h5, h6 { line-height: 1.2; diff --git a/unified.test.hugo/assets/styles/components/alt-formats.scss b/unified.test.hugo/assets/styles/components/alt-formats.scss index 3ab79ae..bda6df6 100644 --- a/unified.test.hugo/assets/styles/components/alt-formats.scss +++ b/unified.test.hugo/assets/styles/components/alt-formats.scss @@ -1,12 +1,36 @@ .alt-formats { .path, .mediaType {font-family: monospace;} - p { + &-hint { margin-block-end: 0; + 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,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9IndoaXRlIiBkPSJNOS44IDE0LjVoMS42bC44LTIuM2gzLjY1bC44IDIuM2gxLjU1bC0zLjQtOWgtMS42em0yLjg1LTMuNmwxLjMtMy43NWguMWwxLjMgMy43NXpNOCAxOHEtLjgyNSAwLTEuNDEyLS41ODdUNiAxNlY0cTAtLjgyNS41ODgtMS40MTJUOCAyaDEycS44MjUgMCAxLjQxMy41ODhUMjIgNHYxMnEwIC44MjUtLjU4NyAxLjQxM1QyMCAxOHptLTQgNHEtLjgyNSAwLTEuNDEyLS41ODdUMiAyMFY2aDJ2MTRoMTR2MnoiLz48L3N2Zz4=); + width: 1em; + height: 1em; + padding: 0.25em; + border-radius: 100em; + background-repeat: no-repeat; + background-size: 60%; + background-position-x: 45%; + background-position-y: 55%; + margin-inline-end: 0.5em; + } } .alt-formats-list { margin-block-start: 0; + list-style: none; &-item { margin-block: 0; + margin-inline-start: 2em; a {} } } diff --git a/unified.test.hugo/assets/styles/components/article-authors.scss b/unified.test.hugo/assets/styles/components/article-authors.scss new file mode 100644 index 0000000..ae3e0c6 --- /dev/null +++ b/unified.test.hugo/assets/styles/components/article-authors.scss @@ -0,0 +1,9 @@ +.article-authors-hint { + display: none; +} +.article-authors { + list-style: none; +} +.article-author { + margin: 0; +} \ No newline at end of file diff --git a/unified.test.hugo/assets/styles/components/article-header.scss b/unified.test.hugo/assets/styles/components/article-header.scss new file mode 100644 index 0000000..69bd73f --- /dev/null +++ b/unified.test.hugo/assets/styles/components/article-header.scss @@ -0,0 +1,17 @@ +.article-header { + hr { + display: none; + } +} +.article-title { + margin-block-start: 0; + line-height: 1.15; + letter-spacing: -0.022rem; +} +.article-summary { + font-style: italic; + font-size: 1.215rem; + line-height: 1.15; + letter-spacing: -0.022rem; + margin-block-start: 0.5rem; +} \ No newline at end of file diff --git a/unified.test.hugo/assets/styles/components/article-permalink.scss b/unified.test.hugo/assets/styles/components/article-permalink.scss new file mode 100644 index 0000000..4f15fc8 --- /dev/null +++ b/unified.test.hugo/assets/styles/components/article-permalink.scss @@ -0,0 +1,23 @@ +.article-permalink { + 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,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9IndoaXRlIiBkPSJNMyAzdjE4aDE4VjN6bTE1IDE1SDZ2LTFoMTJ6bTAtMkg2di0xaDEyem0wLTRINlY2aDEyeiIvPjwvc3ZnPg==); + width: 1em; + height: 1em; + padding: 0.25em; + border-radius: 100em; + background-repeat: no-repeat; + background-position-x: 50%; + background-position-y: 47.5%; + margin-inline-end: 0.5em; + } +} \ No newline at end of file diff --git a/unified.test.hugo/assets/styles/components/article-published-datetime.scss b/unified.test.hugo/assets/styles/components/article-published-datetime.scss new file mode 100644 index 0000000..9d046bb --- /dev/null +++ b/unified.test.hugo/assets/styles/components/article-published-datetime.scss @@ -0,0 +1,29 @@ +.article-published-datetime { + .time { + + } + .date { + + } + 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,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9IndoaXRlIiBkPSJNMTIgMkExMCAxMCAwIDAgMCAyIDEyYTEwIDEwIDAgMCAwIDEwIDEwYTEwIDEwIDAgMCAwIDEwLTEwQTEwIDEwIDAgMCAwIDEyIDJtNC4yIDE0LjJMMTEgMTNWN2gxLjV2NS4ybDQuNSAyLjd6Ii8+PC9zdmc+); + width: 1em; + height: 1em; + padding: 0.25em; + border-radius: 100em; + background-repeat: no-repeat; + background-position-x: 50%; + background-position-y: 47.5%; + margin-inline-end: 0.5em; + } +} \ 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/article-series-list.scss similarity index 83% rename from unified.test.hugo/assets/styles/components/series-list.scss rename to unified.test.hugo/assets/styles/components/article-series-list.scss index 6916651..53c1112 100644 --- a/unified.test.hugo/assets/styles/components/series-list.scss +++ b/unified.test.hugo/assets/styles/components/article-series-list.scss @@ -6,12 +6,13 @@ } .series-list { list-style: none; - padding-inline-start: 1em; + padding-inline-start: 0em; .current-post { font-weight: bold; } .series-post { margin-block: 0.5em; + margin-inline-start: 0; &__part { margin-inline-end: 0.5em; } diff --git a/unified.test.hugo/assets/styles/components/article-syndication-list.scss b/unified.test.hugo/assets/styles/components/article-syndication-list.scss new file mode 100644 index 0000000..f7676b9 --- /dev/null +++ b/unified.test.hugo/assets/styles/components/article-syndication-list.scss @@ -0,0 +1,32 @@ +.article-syndication-hint { + margin-block-end: 0; + 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,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9IndoaXRlIiBkPSJNMTcgMjJxLTEuMjUgMC0yLjEyNS0uODc1VDE0IDE5cTAtLjE1LjA3NS0uN0w3LjA1IDE0LjJxLS40LjM3NS0uOTI1LjU4OFQ1IDE1cS0xLjI1IDAtMi4xMjUtLjg3NVQyIDEydC44NzUtMi4xMjVUNSA5cS42IDAgMS4xMjUuMjEzdC45MjUuNTg3bDcuMDI1LTQuMXEtLjA1LS4xNzUtLjA2Mi0uMzM3VDE0IDVxMC0xLjI1Ljg3NS0yLjEyNVQxNyAydDIuMTI1Ljg3NVQyMCA1dC0uODc1IDIuMTI1VDE3IDhxLS42IDAtMS4xMjUtLjIxM1QxNC45NSA3LjJsLTcuMDI1IDQuMXEuMDUuMTc1LjA2My4zMzhUOCAxMnQtLjAxMi4zNjN0LS4wNjMuMzM3bDcuMDI1IDQuMXEuNC0uMzc1LjkyNS0uNTg3VDE3IDE2cTEuMjUgMCAyLjEyNS44NzVUMjAgMTl0LS44NzUgMi4xMjVUMTcgMjIiLz48L3N2Zz4=); + width: 1em; + height: 1em; + padding: 0.25em; + border-radius: 100em; + background-repeat: no-repeat; + background-position: center; + margin-inline-end: 0.5em; + } +} +.article-syndication-list { + margin-block-start: 0; + list-style: none; + &-item { + margin-block: 0; + margin-inline-start: 2em; + .u-syndication {} + } +} \ No newline at end of file diff --git a/unified.test.hugo/assets/styles/components/article-tags.scss b/unified.test.hugo/assets/styles/components/article-tags.scss new file mode 100644 index 0000000..7cc74d8 --- /dev/null +++ b/unified.test.hugo/assets/styles/components/article-tags.scss @@ -0,0 +1,24 @@ +.article-tags { + 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,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9IndoaXRlIiBkPSJNNS41IDdBMS41IDEuNSAwIDAgMSA0IDUuNUExLjUgMS41IDAgMCAxIDUuNSA0QTEuNSAxLjUgMCAwIDEgNyA1LjVBMS41IDEuNSAwIDAgMSA1LjUgN20xNS45MSA0LjU4bC05LTlDMTIuMDUgMi4yMiAxMS41NSAyIDExIDJINGMtMS4xMSAwLTIgLjg5LTIgMnY3YzAgLjU1LjIyIDEuMDUuNTkgMS40MWw4Ljk5IDljLjM3LjM2Ljg3LjU5IDEuNDIuNTlzMS4wNS0uMjMgMS40MS0uNTlsNy03Yy4zNy0uMzYuNTktLjg2LjU5LTEuNDFjMC0uNTYtLjIzLTEuMDYtLjU5LTEuNDIiLz48L3N2Zz4=); + width: 1em; + height: 1em; + padding: 0.25em; + border-radius: 100em; + background-repeat: no-repeat; + background-position-x: 55%; + background-position-y: 55%; + background-size: 60%; + margin-inline-end: 0.5em; + } +} \ No newline at end of file diff --git a/unified.test.hugo/assets/styles/components/article.scss b/unified.test.hugo/assets/styles/components/article.scss new file mode 100644 index 0000000..03ef75e --- /dev/null +++ b/unified.test.hugo/assets/styles/components/article.scss @@ -0,0 +1,69 @@ +.article { + h1 {font-size: 1.476rem} + h2 {font-size: 1.383rem} + h3 {font-size: 1.296rem} + h4 {font-size: 1.215rem} + h5 {font-size: 1.138rem} + h6 {font-size: 1.067rem} + + &-footer { + hr { + display: none; + } + } +} + +.article[has-toc] { + padding-block-end: 4em; + > .table-of-contents {display: none;} + #toc-toggle { + display: none; + &:checked ~ .table-of-contents { + display: block; + position: fixed; + z-index: 10; + inset-block-end: 6em; + 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; + @include shadow-low; + padding-inline: 1em; + > .container { + padding: 0; + } + } + } + label[for="toc-toggle"] { + position: fixed; + inset-block-end: 1em; + inset-inline-end: 1em; + z-index: 5; + background: var(--ui-overlay); + padding: 1em; + border-radius: 100em; + inline-size: 6em; + display: flex; + justify-content: center; + @include shadow-low; + } + #toc-toggle ~ label[for="toc-toggle"] { + + } + #toc-toggle:checked ~ label[for="toc-toggle"] { + + } + #toc-toggle__label-hide { + display: none; + } + #toc-toggle:checked ~ #toc-toggle__label-hide { + display: flex; + } + #toc-toggle:checked ~ #toc-toggle__label-show { + display: none; + } +} \ No newline at end of file diff --git a/unified.test.hugo/assets/styles/components/feed-entries.scss b/unified.test.hugo/assets/styles/components/feed-entries.scss index d0160be..acaa6aa 100644 --- a/unified.test.hugo/assets/styles/components/feed-entries.scss +++ b/unified.test.hugo/assets/styles/components/feed-entries.scss @@ -1,12 +1,15 @@ .feed-entries { inline-size: 100%; - max-inline-size: 80ch; - margin-inline: auto; &-list { list-style: none; padding-inline-start: 0; + margin-block: 0; &-item { margin-inline-start: 0; + margin-block: 2em; + &:first-child { + margin-block-start: 0; + } } } } \ No newline at end of file diff --git a/unified.test.hugo/assets/styles/components/feed-entry-compact.scss b/unified.test.hugo/assets/styles/components/feed-entry-compact.scss new file mode 100644 index 0000000..048c673 --- /dev/null +++ b/unified.test.hugo/assets/styles/components/feed-entry-compact.scss @@ -0,0 +1,27 @@ +.feed-entry-compact { + border-left: 0.25em solid var(--ui-overlay); + padding-left: 1em; + border-top: 0.25em solid var(--ui-overlay); + padding-top: 1em; + &__header { + + } + &__title { + font-size: 1rem; + margin: 0; + line-height: 2; + } + &__summary { + grid-area: summary; + } + &__footer { + + } + &__date { + margin: 0; + line-height: 1; + &:after { + content: ': ' + } + } +} \ No newline at end of file diff --git a/unified.test.hugo/assets/styles/components/feed-entry-in-series.scss b/unified.test.hugo/assets/styles/components/feed-entry-in-series.scss index 3b17b4a..da53388 100644 --- a/unified.test.hugo/assets/styles/components/feed-entry-in-series.scss +++ b/unified.test.hugo/assets/styles/components/feed-entry-in-series.scss @@ -1,23 +1,28 @@ .feed-entry-in-series { + background: var(--ui-overlay); + padding: 1em; &__header {} &__part { margin: 0; - font-size: 1em; display: inline-block; + font-variant: small-caps; } &__title { margin: 0; - font-size: 1em; - display: inline-grid; - place-items: center; + display: grid; + place-items: start; + margin-block-end: 0.5em; a { display: grid; } } &__summary { - font-style: italic; + font-size: 1rem } &__date { margin: 0; } + &__readmore { + margin-block-end: 0; + } } \ No newline at end of file diff --git a/unified.test.hugo/assets/styles/components/feed-entry.scss b/unified.test.hugo/assets/styles/components/feed-entry.scss new file mode 100644 index 0000000..3888e7a --- /dev/null +++ b/unified.test.hugo/assets/styles/components/feed-entry.scss @@ -0,0 +1,17 @@ +.feed-entry { + &__header { + + } + &__title { + margin-block-start: 0; + } + &__summary { + + } + &__footer { + + } + &__date { + + } +} \ No newline at end of file diff --git a/unified.test.hugo/assets/styles/components/feed-header.scss b/unified.test.hugo/assets/styles/components/feed-header.scss index 0b5635f..53aae54 100644 --- a/unified.test.hugo/assets/styles/components/feed-header.scss +++ b/unified.test.hugo/assets/styles/components/feed-header.scss @@ -2,8 +2,6 @@ hr {display: none;} .container { inline-size: 100%; - max-inline-size: 80ch; - margin-inline: auto; } } .feed-title { @@ -13,7 +11,15 @@ letter-spacing: -0.022rem; grid-area: title; } -.feed-author {} +.feed-authors-hint { + display: none; +} +.feed-authors { + list-style: none; +} +.feed-author { + margin: 0; +} .feed-summary { font-style: italic; font-size: 1.266rem; diff --git a/unified.test.hugo/assets/styles/components/feed-permalink.scss b/unified.test.hugo/assets/styles/components/feed-permalink.scss new file mode 100644 index 0000000..cebeff4 --- /dev/null +++ b/unified.test.hugo/assets/styles/components/feed-permalink.scss @@ -0,0 +1,23 @@ +.feed-permalink { + 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,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9IndoaXRlIiBkPSJNNSAyMXEtLjgyNSAwLTEuNDEyLS41ODdUMyAxOXQuNTg4LTEuNDEyVDUgMTd0MS40MTMuNTg4VDcgMTl0LS41ODcgMS40MTNUNSAyMW0xMiAwcTAtMi45MjUtMS4xLTUuNDYydC0zLTQuNDM4dC00LjQzNy0zVDMgN1Y0cTMuNTUgMCA2LjYyNSAxLjMyNXQ1LjQgMy42NXQzLjY1IDUuNFQyMCAyMXptLTYgMHEwLTEuNjc1LS42MjUtMy4xMTNUOC42NSAxNS4zNXQtMi41MzctMS43MjVUMyAxM3YtM3EyLjMgMCA0LjI4OC44NjN0My40ODcgMi4zNjJ0Mi4zNjMgMy40ODhUMTQgMjF6Ii8+PC9zdmc+); + width: 1em; + height: 1em; + padding: 0.25em; + border-radius: 100em; + background-repeat: no-repeat; + background-position-x: 60%; + background-position-y: 40%; + margin-inline-end: 0.5em; + } +} \ 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/components/in-reply-to-prepend.scss similarity index 91% rename from unified.test.hugo/assets/styles/layouts/partials/mf2/u-in-reply-to.scss rename to unified.test.hugo/assets/styles/components/in-reply-to-prepend.scss index 7d2ce01..08a59c8 100644 --- a/unified.test.hugo/assets/styles/layouts/partials/mf2/u-in-reply-to.scss +++ b/unified.test.hugo/assets/styles/components/in-reply-to-prepend.scss @@ -16,7 +16,8 @@ padding: 0.25em; border-radius: 100em; background-repeat: no-repeat; - background-position: center; + background-position-x: center; + background-position-y: 45%; margin-inline-end: 0.5em; } } \ 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 d6e1705..2f8ca47 100644 --- a/unified.test.hugo/assets/styles/components/quote-block.scss +++ b/unified.test.hugo/assets/styles/components/quote-block.scss @@ -56,7 +56,10 @@ background: var(--ui-overlay-transparent); } &__header { - padding-block: 1em; + padding-block-start: 1em; + } + &__header:has(&__card) { + padding-block-end: 1em; } &__content, &__footer { padding-block-end: 1em; diff --git a/unified.test.hugo/assets/styles/components/site-footer.scss b/unified.test.hugo/assets/styles/components/site-footer.scss new file mode 100644 index 0000000..b7c3f93 --- /dev/null +++ b/unified.test.hugo/assets/styles/components/site-footer.scss @@ -0,0 +1,31 @@ +.site-footer { + hr { + display: none; + } + .on-this-site { + h2 { + font-size: 1.383rem; + margin: 0; + } + h3 { + font-size: 1.296rem; + margin: 0; + } + ul { + list-style: none; + margin: 0; + display: flex; + flex-flow: row wrap; + gap: 0em 1em; + } + li { + margin: 0; + } + } + .on-this-site-sections { + + } + .on-this-site-taxonomies { + + } +} \ 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 deleted file mode 100644 index 64e3131..0000000 --- a/unified.test.hugo/assets/styles/components/syndication-list.scss +++ /dev/null @@ -1,10 +0,0 @@ -.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/skip-links.scss b/unified.test.hugo/assets/styles/features/skip-links.scss index 02e7a51..e06fdb9 100644 --- a/unified.test.hugo/assets/styles/features/skip-links.scss +++ b/unified.test.hugo/assets/styles/features/skip-links.scss @@ -5,9 +5,9 @@ body { } .back-to-top { - position: absolute; + inset-block-end: 1em; - inset-inline-start: -12em; + inset-inline-start: 1em; transition: 0.25s all ease-in; background: var(--ui-overlay); color: var(--ui-overlay-text) !important; @@ -20,8 +20,7 @@ body { .skip-to-items { position: absolute; - inset-block-start: -5em; - inset-inline-start: 1em; + inset-block-start: -10em; transition: all 0.25s ease-in; background: var(--ui-overlay); color: var(--ui-overlay-text) !important; @@ -32,9 +31,9 @@ body { } } -.skip-syndication { +.skip-metadata { position: absolute; - inset-block-start: -5em; + inset-block-start: -10em; inset-inline-start: 1em; transition: 0.25s all ease-in; background: var(--ui-overlay); @@ -45,6 +44,6 @@ body { inset-block-start: 1em; } &:before { - content: "Skip syndication information"; + content: "Skip further metadata"; } } \ 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 5127e80..d8d090f 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 @@ -1,24 +1,14 @@ .rendered-heading { - display: grid; - grid-template-columns: 1fr auto; - gap: 0.5em; &:is(h2) { - border-block-end: 1px solid var(--ui-text-muted); + border-block-end: 1px solid var(--ui-overlay); padding-block-end: 1rem; } &__text { - grid-column: 1; + } &__anchor-link { - grid-column: 2; - line-height: 1em; - margin-block-start: 0.15em; - display: grid; - place-items: center; - align-self: start; &:before { - content: "[link]"; - display: inline-block; + content: "ยง link"; 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 3b9db46..d89d2e1 100644 --- a/unified.test.hugo/assets/styles/layouts/_default/list.scss +++ b/unified.test.hugo/assets/styles/layouts/_default/list.scss @@ -1,3 +1,2 @@ .layout-_default-list { - } \ No newline at end of file diff --git a/unified.test.hugo/assets/styles/layouts/_default/single.scss b/unified.test.hugo/assets/styles/layouts/_default/single.scss index 7a30953..8e9cd05 100644 --- a/unified.test.hugo/assets/styles/layouts/_default/single.scss +++ b/unified.test.hugo/assets/styles/layouts/_default/single.scss @@ -1,203 +1,73 @@ -.layout-_default-single { - .page-header { - hr {display: none;} - .container { - max-inline-size: 80ch; - margin-inline: auto; - } - } - .page-title { - margin-block-start: 0; - font-size: 2.025rem; - line-height: 1.15; - letter-spacing: -0.022rem; - grid-area: title; - } - .page-summary { - font-style: italic; - font-size: 1.266rem; - line-height: 1.15; - letter-spacing: -0.022rem; - margin-block-start: 0.5rem; - grid-area: summary; - } - .page-author { - grid-area: author; - margin-block: 0; - } - .page-date { - grid-area: date; - margin-block-end: 0; - .date {display: inline-block;} - } - .page-inreplyto { - display: grid; - grid-template-columns: auto 1fr; - gap: 0.5em; - align-items: center; - .reply-icon { - background: var(--ui-overlay); - display: inline-block; - inline-size: 1em; - block-size: 1em; - padding: 0.25em; - border-radius: 100em; - } - } - .page-tags { - .page-tag { - font-family: monospace; - } - } - .page-permalink { - margin-block-end: 0; - align-self: end; - .u-url {font-family: monospace;} - } - .page-syndication { - - } - .page-series { - hr {display: none;} - // background: var(--ui-overlay); - // color: var(--ui-overlay-text); - .container { - max-inline-size: 80ch; - margin-inline: auto; - } - } - .page-content { - inline-size: 100%; - max-inline-size: 80ch; - margin-inline: auto; - } - .page-footer { - hr {display: none;} - inline-size: 100%; - max-inline-size: 80ch; - margin-inline: auto; - } - .page[has-toc] { - padding-block-end: 4em; - } - .page > .table-of-contents { - display: none; - } - #toc-toggle { - display: none; - &:checked ~ .table-of-contents { - display: block; - position: fixed; - z-index: 10; - inset-block-end: 6em; - 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; - @include shadow-low; - padding-inline: 1em; - > .container { - padding: 0; - } - } - } - label[for="toc-toggle"] { - position: fixed; - inset-block-end: 1em; - inset-inline-end: 1em; - z-index: 5; - background: var(--ui-overlay); - padding: 1em; - border-radius: 100em; - inline-size: 6em; - display: flex; - justify-content: center; - @include shadow-low; - } - #toc-toggle ~ label[for="toc-toggle"] { - } - #toc-toggle:checked ~ label[for="toc-toggle"] { - } - #toc-toggle__label-hide { - display: none; - } - #toc-toggle:checked ~ #toc-toggle__label-hide { - display: flex; - } - #toc-toggle:checked ~ #toc-toggle__label-show { - display: none; - } - @media (min-width: 400px) { - .container { - padding: 0 2em; - } - } - @media (min-width: 60rem) { - label[for="toc-toggle"] { - display: none; - } - .container {padding: 0;} - .page[has-toc] { - display: grid; - grid-template-columns: 1fr minmax(37em, 80ch) minmax(17em, 20em) 1fr; - grid-template-rows: auto auto auto; - gap: 2em; - padding-block-end: unset; - .page-header { - grid-column: 1 / span 4; - grid-row: 1; - display: grid; - grid-template-columns: 1fr minmax(37em, 80ch) minmax(17em, 20em) 1fr; - gap: 2em; - .container { - max-width: unset; - grid-column: 2 / span 2; - } - } - .table-of-contents { - display: block; - grid-column: 3; - grid-row: 2 / span 2; - position: sticky; - inset-block-start: 2em; - align-self: start; - justify-self: start; - max-width: unset; - border-inline-start: thin solid var(--ui-overlay); - padding-inline: 2em; - max-height: 90vh; - overflow-y: auto; - scrollbar-color: var(--ui-text) var(--ui-overlay); - &::-webkit-scrollbar-thumb { - background-color: var(--ui-text) - } - &::-webkit-scrollbar-track { - background-color: var(--ui-overlay) - } - } - .page-content { - grid-column: 2; - grid-row: 2; - max-width: unset; - padding-block-start: 0.5rem; - padding-block-end: 0; - .toc { - display: none; - } - } - .page-footer { - grid-column: 2; - grid-row: 3; - max-width: unset; - #footnotes h2 {margin-block-start: 0;} - padding-block: 0; - } - } - } -} \ No newline at end of file + +// .page[has-toc] { +// padding-block-end: 4em; +// } +// .page > .table-of-contents { +// display: none; +// } + +// @media (min-width: 400px) { +// .container { +// padding: 0 2em; +// } +// } +// @media (min-width: 60rem) { +// label[for="toc-toggle"] { +// display: none; +// } +// .page[has-toc] { +// inline-size: 100%; +// max-inline-size: var(--site-max-width); +// margin-inline: auto; +// display: grid; +// grid-template-columns: minmax(37em, 1fr) minmax(17em, 20em); +// grid-template-rows: auto auto auto; +// gap: 2em; +// padding-block-end: unset; +// .page-header { +// grid-column: 1 / span 2; +// grid-row: 1; +// } +// .table-of-contents { +// display: block; +// grid-column: 2; +// grid-row: 2; +// position: sticky; +// inset-block-start: 2em; +// align-self: start; +// justify-self: start; +// max-width: unset; +// border-inline-start: thin solid var(--ui-overlay); +// padding-inline: 2em; +// max-height: 90vh; +// overflow-y: auto; +// scrollbar-color: var(--ui-text) var(--ui-overlay); +// &::-webkit-scrollbar-thumb { +// background-color: var(--ui-text) +// } +// &::-webkit-scrollbar-track { +// background-color: var(--ui-overlay) +// } +// } +// .page-content { +// grid-column: 1; +// grid-row: 2; +// max-width: unset; +// padding-block-start: 0.5rem; +// padding-block-end: 0; +// .toc { +// display: none; +// } +// } +// .page-footer { +// grid-column: 1; +// grid-row: 3; +// max-width: unset; +// #footnotes h2 {margin-block-start: 0;} +// padding-block: 0; +// } +// } +// } +// } \ No newline at end of file diff --git a/unified.test.hugo/assets/styles/layouts/wiki/list.scss b/unified.test.hugo/assets/styles/layouts/wiki/list.scss index e9c2131..0564b5f 100644 --- a/unified.test.hugo/assets/styles/layouts/wiki/list.scss +++ b/unified.test.hugo/assets/styles/layouts/wiki/list.scss @@ -13,12 +13,14 @@ } } - .section-title { - font-size: 2em; + .section-header { border-block-end: 1px solid var(--ui-text-muted); padding-block-end: 0.5em; + } + .section-title { + font-size: 2em; margin-block-start: 0; - margin-block-end: 1em; + margin-block-end: 0; } .subsections-title, .subpages-title { diff --git a/unified.test.hugo/content/_dump/articles/att-ftc-fcc-doublespeak/index.md b/unified.test.hugo/content/_dump/articles/att-ftc-fcc-doublespeak/index.md index 5d1800a..1e085e2 100644 --- a/unified.test.hugo/content/_dump/articles/att-ftc-fcc-doublespeak/index.md +++ b/unified.test.hugo/content/_dump/articles/att-ftc-fcc-doublespeak/index.md @@ -23,14 +23,14 @@ src = "opengraph.jpg" The FTC is suing AT&T over its mobile data policies, particularly throttling "unlimited" customers. [AT&T filed a motion to dismiss this suit](https://arstechnica.com/tech-policy/2015/01/att-defends-unlimited-data-throttling-says-the-ftc-cant-stop-it/), saying that since AT&T is a common carrier, they fall under the jurisdiction of the FCC instead.
-Ars Technica headline, January 8, 2015: AT&T defends unlimited data throttling, says the FTC can't stop it +Per an Ars Technica headline, January 8, 2015: AT&T defends unlimited data throttling, says the FTC can't stop it.
"You have no power here. Only the FCC can stop us."
Except just a few days later, [AT&T tells the FCC](https://arstechnica.com/information-technology/2015/01/att-tells-fcc-it-cant-treat-mobile-data-as-a-common-carrier-service/) that mobile data doesn't fall under common carrier rules, and cannot be regulated without Title II.
-Ars Technica headline, January 9, 2015: AT&T tells FCC it can't treat mobile data as a common carrier service. +Per an Ars Technica headline, January 9, 2015: AT&T tells FCC it can't treat mobile data as a common carrier service.
"You can't stop us. You don't have that power."
diff --git a/unified.test.hugo/content/_dump/articles/perfect-unified-messaging-client/index.md b/unified.test.hugo/content/_dump/articles/perfect-unified-messaging-client/index.md index 65059ee..8bf7193 100644 --- a/unified.test.hugo/content/_dump/articles/perfect-unified-messaging-client/index.md +++ b/unified.test.hugo/content/_dump/articles/perfect-unified-messaging-client/index.md @@ -1,9 +1,9 @@ +++ title = "What makes a unified messaging client perfect?" summary = "A rant in which I focus on what I like and hate about messaging apps, the characteristics I would implement if I were designing the perfect unified mobile messenger, and which current offerings are the closest to perfect." -date = 2014-08-08T12:00:00-06:00 -tags = [] -categories = [] +date = 2014-08-08T12:00:00-05:00 +tags = ["unified messaging", "communication"] +streams = [] [[params.syndication]] name = "Medium" url = "https://medium.com/trwnh/what-makes-a-unified-messaging-client-perfect-322a83e3aa64" diff --git a/unified.test.hugo/content/kb/_index.md b/unified.test.hugo/content/kb/_index.md index f7ba421..3e374b8 100644 --- a/unified.test.hugo/content/kb/_index.md +++ b/unified.test.hugo/content/kb/_index.md @@ -1,2 +1,3 @@ +++ +title = "wiki" +++ \ No newline at end of file diff --git a/unified.test.hugo/content/kb/activitypub/confusion/_index.md b/unified.test.hugo/content/kb/activitypub/confusion/_index.md index f7ba421..da003be 100644 --- a/unified.test.hugo/content/kb/activitypub/confusion/_index.md +++ b/unified.test.hugo/content/kb/activitypub/confusion/_index.md @@ -1,2 +1,3 @@ +++ +summary = "things that need clarification. could be improved by a rewrite." +++ \ No newline at end of file diff --git a/unified.test.hugo/content/kb/activitypub/confusion/attachment-vs-tag.md b/unified.test.hugo/content/kb/activitypub/confusion/attachment-vs-tag.md new file mode 100644 index 0000000..cc71984 --- /dev/null +++ b/unified.test.hugo/content/kb/activitypub/confusion/attachment-vs-tag.md @@ -0,0 +1,15 @@ +i personally see attachment as a way to append sidecar things, similar to how in email you would say "i have attached..." or "see attached for..." + +i see tag as a way to generically list a bunch of related things, similar to how you might say "see also..." + +attachment is "included" in the object, while the tag is not; it is just a "reference". but it's a reference without a relation. + +attachment is a kind of "here's some stuff i'm including with my object because you might/probably need to do something with it". in that sense, it's similar to instrument on an Activity, but less specific (and also available to non-Activity objects). you attach something as (fundamentally) "part of" the current object. + +tag is a kind of "these things may be considered relevant so i'm "tagging" a reference to them". in that sense, it's similar to context on an Object, but far less specific (and without the purpose or meaning imparted by context). you tag something as (fundamentally) "related to" the current object. + +things that (are intended to) go in attachment are usually some kind of media, but there's no universal processing rules for what to do when you encounter something with an attachment. i think hubzilla used to treat attachment as "show this thing below the content" at some point? so before FEP-e232 they would just put a Note in attachment. this is kind of like attaching an email as a file to some other email. note that this isn't the same semantically as "quoting", but it relies on display-specific implementation logic to serve a similar purpose. + +things that (are intended to) go in tag are usually some kind of taxonomy. there's no universal processing rules here either, but the expectation is that you can use them taxonomically to link to other related objects. for example, i might tag an Image with a Person, as a way of saying that the Person is related to the Image. i might filter some set of objects for all objects that include that have a tag of that Person. + +see also [tag-for-actual-taxonomy]({{< relref "tag-for-actual-taxonomy" >}}) \ No newline at end of file diff --git a/unified.test.hugo/content/kb/todo-apps.md b/unified.test.hugo/content/kb/wrong/todo-apps.md similarity index 97% rename from unified.test.hugo/content/kb/todo-apps.md rename to unified.test.hugo/content/kb/wrong/todo-apps.md index 1701d6e..930edb6 100644 --- a/unified.test.hugo/content/kb/todo-apps.md +++ b/unified.test.hugo/content/kb/wrong/todo-apps.md @@ -1,5 +1,4 @@ +++ -tags = ["wrong"] +++ i kinda don't like most todo apps because they don't really mesh with how i think. maybe i just don't vibe with the GTD-inspired flow most apps use. the only app i've seen do tasks/todos in an actually useful way is Things 3 for iOS. diff --git a/unified.test.hugo/content/monologues/_index.md b/unified.test.hugo/content/monologues/_index.md index 1f08af0..8c20cb4 100644 --- a/unified.test.hugo/content/monologues/_index.md +++ b/unified.test.hugo/content/monologues/_index.md @@ -4,6 +4,8 @@ name = "~a | monologues" summary = "assorted musings. mostly a compilation of times i replied to myself on social media or in chat. what you see here is minimally curated and lightly formatted. it might disappear at any time or be upgraded to a proper or formal writing at some point." [pagination] pagerSize = 100 +[params] +compactEntries = true +++ [[rejected outtakes]](misc) \ No newline at end of file diff --git a/unified.test.hugo/content/monologues/activitypub-tag-microsyntax-mistakes/index.md b/unified.test.hugo/content/monologues/activitypub-tag-microsyntax-mistakes/index.md index 505e648..c491649 100644 --- a/unified.test.hugo/content/monologues/activitypub-tag-microsyntax-mistakes/index.md +++ b/unified.test.hugo/content/monologues/activitypub-tag-microsyntax-mistakes/index.md @@ -1,10 +1,10 @@ +++ title = "microsyntaxes in fedi were probably a mistake" -summary = "i am... moderately worried that we might be doubling down on a fundamentally flawed abstraction here [...] in effect, by specifying fallback behavior and representations, we are actually **making it harder for your average consumer to understand** [...] a whole swathe of other functionality that relies on them processing the `content` in such a way that transforms it." +summary = "i am... *moderately worried* that we might be doubling down on a fundamentally flawed abstraction here [...] in effect, by specifying fallback behavior and representations, we are actually **making it harder for your average consumer to understand** [...] a whole swathe of other functionality that relies on them processing the `content` in such a way that transforms it." date = 2024-11-08T10:48:00-06:00 -draft = true -streams = ["all"] +streams = [] tags = [] +source = "https://github.com/mastodon/draft-feps/pull/3#discussion_r1834717926" +++ > the `name` and federated `content` do not match @@ -75,7 +75,7 @@ in plain english, "this Image is related to Sally". we might get clever and pars for the issue of "quote tags" where the "quote" is part of the content, we are not really saying that "this Note is related to this Link", but rather we are saying "this facet of `content` (as indicated by `name`?) should be marked up as a `Link` with a `preview`." specifically, the `preview` might be an Object that is a "post". but this is only one way of doing it. -i am... moderately worried that we might be doubling down on a fundamentally flawed abstraction here. +i am... *moderately worried* that we might be doubling down on a fundamentally flawed abstraction here. i think we should give more consideration to what the expected behavior of producers and consumers might be here. for example, might we say that producers are expected to mark up a "quote" in such a way that the consumer doesn't have to parse the `content` for microsyntaxes? because i think we might be overloading `tag` in a way that is detrimental to future uses that are more "proper" to what it's supposed to mean. diff --git a/unified.test.hugo/content/monologues/vcard-date-range-on-contact-info/index.md b/unified.test.hugo/content/monologues/vcard-date-range-on-contact-info/index.md index cbc183d..0d24595 100644 --- a/unified.test.hugo/content/monologues/vcard-date-range-on-contact-info/index.md +++ b/unified.test.hugo/content/monologues/vcard-date-range-on-contact-info/index.md @@ -1,6 +1,6 @@ +++ -title = "" -summary = "" +title = "date ranges on contact info (address, phone, email)" +summary = "Addresses are not owned. They are leased [...] People move houses all the time, so their address changes. In the same way, people change digital addresses like phone numbers [...] \"X was using this phone number between 2011-01-01 and 2015-06-01.\" For messaging archives you can now reliably dereference a phone number to a contact name, without having to worry about who has the phone number *now*." date = 2019-08-20T02:09:00-05:00 source = "https://mastodon.social/@trwnh/102648053339382526" tags = ["wrong"] diff --git a/unified.test.hugo/content/monologues/web-fully-responsive-design/index.md b/unified.test.hugo/content/monologues/web-fully-responsive-design/index.md index f2aba1b..a728c5a 100644 --- a/unified.test.hugo/content/monologues/web-fully-responsive-design/index.md +++ b/unified.test.hugo/content/monologues/web-fully-responsive-design/index.md @@ -2,6 +2,7 @@ title = "fully responsive web design" summary = "my pipe dream is to redesign my website to be fully responsive -- not across mere pixel widths, but by aspect ratio and overall size" date = 2018-04-22T10:42:00-05:00 +updated = 2024-11-11T05:58:10-06:00 source = "https://mastodon.social/@trwnh/99903847448978099" +++ @@ -9,4 +10,36 @@ my pipe dream is to redesign my website to be fully responsive -- not across mer does anyone consider what their website looks like when it's fullscreened across one of those samsung 3840x1080 monitors? probably not, and why would you? -but i do \ No newline at end of file +but i do + +--- + +## refinement + +let's say the base case is when the aspect ratio is square + +you can set width-based breakpoints as usual, but logically extend your approach to multiple different media query sets + +- one height-based breakpoint for when there is less than some minimum required height? ("too small" mode) +- one for when there is less than a square aspect ratio (landscape mode) +- one for everything beyond that (portrait mode) + +so you might have for example assuming liberal use of breakpoints: + +- min-width 320, min-height 320 +- min-width 400, min-height 320 +- min-width 400, min-height 400 +- min-width 480, min-height 320 +- min-width 480, min-height 480 +- min-width 600, min-height 320 +- min-width 600, min-height 600 +- min-width 800 +- min-width 960 +- min-width 1150 +- min-width 1320 +- min-width 1560 +- ... + +notice we stopped taking height into account past a certain point, because we are assuming the page content is flowing vertically and will overflow the viewport in the vertical direction. if we were designing a site that flowed horizontally then we would continue in the height axis (and perhaps cap off the width queries at some point instead). + +for more extreme widths it becomes more interesting to consider those horizontal flows although it should be recognized that this is niche. \ No newline at end of file diff --git a/unified.test.hugo/content/monologues/web-personal-websites/index.md b/unified.test.hugo/content/monologues/web-personal-websites/index.md index 0344239..1d15269 100644 --- a/unified.test.hugo/content/monologues/web-personal-websites/index.md +++ b/unified.test.hugo/content/monologues/web-personal-websites/index.md @@ -1,6 +1,6 @@ +++ -title = "" -summary = "" +title = "i wish personal websites were more personal" +summary = "when i say \"personal website\" i do not mean a portfolio. i do not mean a page for potential employers to hire you. i mean like a place to be yourself and how to express yourself to others." date = 2023-01-02T04:51:00-06:00 source = [ "https://mastodon.social/@trwnh/109593314053174200", diff --git a/unified.test.hugo/content/series/_index.md b/unified.test.hugo/content/series/_index.md new file mode 100644 index 0000000..1d3f4f2 --- /dev/null +++ b/unified.test.hugo/content/series/_index.md @@ -0,0 +1,4 @@ ++++ +title = "series" +summary = "content pages that follow up on each other" ++++ \ No newline at end of file diff --git a/unified.test.hugo/content/tags/_content.gotmpl b/unified.test.hugo/content/tags/_content.gotmpl.disabled similarity index 87% rename from unified.test.hugo/content/tags/_content.gotmpl rename to unified.test.hugo/content/tags/_content.gotmpl.disabled index 72a8021..fff2c9b 100644 --- a/unified.test.hugo/content/tags/_content.gotmpl +++ b/unified.test.hugo/content/tags/_content.gotmpl.disabled @@ -16,6 +16,7 @@ "path" .id "kind" "term" }} + {{/* TODO: kind=term causes a "term is empty" error */}} {{ $.Store.Set (urlize $id) true }}{{/* mark this tag as already having a page */}} {{ $.AddPage $page }} @@ -29,6 +30,7 @@ "path" . "kind" "term" }} + {{/* TODO: kind=term causes a "term is empty" error */}} {{ $.Store.Set (urlize .) true }}{{/* mark this tag as already having a page */}} {{ $.AddPage $page }} {{ end }} diff --git a/unified.test.hugo/content/tags/_index.md b/unified.test.hugo/content/tags/_index.md index e69de29..3c677b9 100644 --- a/unified.test.hugo/content/tags/_index.md +++ b/unified.test.hugo/content/tags/_index.md @@ -0,0 +1,4 @@ ++++ +title = "tags" +summary = "terms and keywords that are related to a page." ++++ \ No newline at end of file diff --git a/unified.test.hugo/content/test.md b/unified.test.hugo/content/test.md deleted file mode 100644 index fdcb53e..0000000 --- a/unified.test.hugo/content/test.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -layout = "page" -+++ - -test \ No newline at end of file diff --git a/unified.test.hugo/content/theorycrafting/social-web-networking-contacts-consent/index.md b/unified.test.hugo/content/theorycrafting/social-web-networking-contacts-consent/index.md new file mode 100644 index 0000000..7626fe2 --- /dev/null +++ b/unified.test.hugo/content/theorycrafting/social-web-networking-contacts-consent/index.md @@ -0,0 +1,16 @@ ++++ +title = "how to handle networking in a social web" +summary = "you should be able to make a new social app without starting over on network effects. the key is in consenting to people messaging you, but separately being able to signal interest in specific subsets of messages." +date = 2024-11-10T03:56:12-06:00 +toc = true +draft = true +streams = ["all"] +tags = [] ++++ + +## problem statement + +You want to manage your network of contacts separately from all other apps -- this is the "bsky problem" where the data for apps is tied up in records which are stored in repos that are validated against schemas and namespaced to lexicons. + +When starting a new networked app (anything where messages or publishing might be involved), you want to be able to bootstrap off of your existing network of contacts and followers. + diff --git a/unified.test.hugo/content/theorycrafting/social-web-posts-contexts-audiences-protocol-unified-model/index.md b/unified.test.hugo/content/theorycrafting/social-web-posts-contexts-audiences-protocol-unified-model/index.md index e127364..cc19423 100644 --- a/unified.test.hugo/content/theorycrafting/social-web-posts-contexts-audiences-protocol-unified-model/index.md +++ b/unified.test.hugo/content/theorycrafting/social-web-posts-contexts-audiences-protocol-unified-model/index.md @@ -1,5 +1,5 @@ +++ -title = "so you want to make a social communication protocol" +title = "social web foundations: defining posts, contexts, and audiences" summary = "looking at prior art and synthesizing a data model that makes sense as the foundation for a protocol" date = 2024-10-20T03:58:55-05:00 toc = true @@ -7,8 +7,6 @@ autonumbering = false draft = true streams = ["all"] tags = ["activitypub", "activity streams", "as2", "fedi", "indieweb", "social web", "social networking", "social media", "social communication", "social"] -series = "fedi and the social web 2024" -series_part = "3" +++ ## Things vs References diff --git a/unified.test.hugo/data/tags/as2.json b/unified.test.hugo/data/tags/as2.json index b168ef2..d969ef0 100644 --- a/unified.test.hugo/data/tags/as2.json +++ b/unified.test.hugo/data/tags/as2.json @@ -8,5 +8,6 @@ "id": "as2", "name": "Activity Streams 2.0", "summary": "This specification details a model for representing potential and completed activities using the JSON format. It is intended to be used with vocabularies that detail the structure of activities, and define specific types of activities.", - "alsoKnownAs": ["activitystreams", "activity streams 2.0"] + "alsoKnownAs": ["activitystreams", "activity streams 2.0", "activity streams"], + "url": "activitystreams" } \ No newline at end of file diff --git a/unified.test.hugo/hugo.toml b/unified.test.hugo/hugo.toml index 11ef710..3cc3175 100644 --- a/unified.test.hugo/hugo.toml +++ b/unified.test.hugo/hugo.toml @@ -49,7 +49,7 @@ suffixes = ["atom"] suffixes = ["jsonfeed"] # not a standard but whatever [mediaTypes."application/jf2feed+json"] -suffixes = ["json"] +suffixes = ["jf2feed"] [mediaTypes."application/activity+json"] suffixes = ["as2"] # not a standard but whatever @@ -91,6 +91,12 @@ tag = "tags" series = "series" stream = "streams" -[params.author] # TODO: what other params make sense here? should probably also allow setting this in .Site.Data or maybe even in a /people taxonomy? +[params] +summary = "trwnh.com is the personal site of a" +themeColor = "#001a33" +icon = "/.assets/icon.png" + +[[params.author]] name = "a" -# url = "" \ No newline at end of file +url = "https://trwnh.com" +icon = "/.assets/icon.png" \ No newline at end of file diff --git a/unified.test.hugo/layouts/_default/_markup/render-heading.html b/unified.test.hugo/layouts/_default/_markup/render-heading.html index 17b8ee8..dac9393 100644 --- a/unified.test.hugo/layouts/_default/_markup/render-heading.html +++ b/unified.test.hugo/layouts/_default/_markup/render-heading.html @@ -1,5 +1,5 @@ {{- /* chomp whitespace */ -}} -{{.Text | safeHTML}}{{- /* chomp whitespace */ -}} +{{.Text | safeHTML}} {{/* chomp whitespace */ -}} {{- /* chomp whitespace */ -}} diff --git a/unified.test.hugo/layouts/_default/list.html b/unified.test.hugo/layouts/_default/list.html index ce7b3aa..9f7f0fa 100644 --- a/unified.test.hugo/layouts/_default/list.html +++ b/unified.test.hugo/layouts/_default/list.html @@ -4,12 +4,7 @@ {{- define "body" }} {{ partial "site-header.html" . }} -
-{{ "" | safeHTML }} -{{ partial "components/feed-header.html" . }} -{{ $pages := .RegularPages }} -{{ partial "components/feed-entries.html" $pages }} -
+{{ partial "components/feed.html" (dict "ctx" .) }} {{ partial "site-footer.html" . }} {{- end }} \ No newline at end of file diff --git a/unified.test.hugo/layouts/_default/list.jsonfeed b/unified.test.hugo/layouts/_default/list.jsonfeed index e9e6328..e44a07a 100644 --- a/unified.test.hugo/layouts/_default/list.jsonfeed +++ b/unified.test.hugo/layouts/_default/list.jsonfeed @@ -11,16 +11,16 @@ {{- /* next_url = allows for pagination but i don't think i have to worry about that yet. TODO:?*/}} "icon": "https://trwnh.com/.assets/icon.png", {{- /* TODO: make this variable (512x512?) */}} "favicon": "https://trwnh.com/.assets/icon.png", {{- /* TODO: make this variable and also 64x64 */}} - "authors": [ {{- /* TODO: make this variable and also loopable? */}} + "authors": [ {{- /* TODO: make it variable and loopable */}} { - "name": {{ (or .Params.author.name .Site.Params.author.name ) | jsonify }}, - "url": {{ (or .Params.author.url .Site.Params.author.url .Site.Home.Permalink .Site.BaseURL) | jsonify }}, + "name": "a", + "url": "https://trwnh.com", "avatar": "https://trwnh.com/.assets/icon.png" {{- /* TODO: make this variable (512x512?) */}} } ], - "author": { {{- /* TODO: make this variable */}} - "name": {{ (or .Params.author.name .Site.Params.author.name ) | jsonify }}, - "url": {{ (or .Params.author.url .Site.Params.author.url .Site.Home.Permalink .Site.BaseURL) | jsonify }}, + "author": { {{- /* TODO: make it variable */}} + "name": "a", + "url": "https://trwnh.com", "avatar": "https://trwnh.com/.assets/icon.png" {{- /* TODO: make this variable (512x512?) */}} }, "language": {{ (or .Language.LanguageCode .Site.Language.LanguageCode) | jsonify }}, @@ -61,14 +61,14 @@ {{- end }}, "authors": [ {{- /* TODO: make this variable and also loopable? or should this be omitted since it's implied by the top-level prop? maybe omit it only when it's equal? */}} { - "name": {{ (or .Params.author.name .Site.Params.author.name ) | jsonify }}, - "url": {{ (or .Params.author.url .Site.Params.author.url .Site.Home.Permalink .Site.BaseURL) | jsonify }}, + "name": "a", + "url": "https://trwnh.com", "avatar": "https://trwnh.com/.assets/icon.png" {{- /* TODO: make this variable (512x512?) */}} } ], "author": { {{- /* TODO: make this variable? or should this be omitted since it's implied by the top-level prop? maybe omit it only when it's equal? */}} - "name": {{ (or .Params.author.name .Site.Params.author.name ) | jsonify }}, - "url": {{ (or .Params.author.url .Site.Params.author.url .Site.Home.Permalink .Site.BaseURL) | jsonify }}, + "name": "a", + "url": "https://trwnh.com", "avatar": "https://trwnh.com/.assets/icon.png" {{- /* TODO: make this variable (512x512?) */}} } {{- with .Params.tags }}, diff --git a/unified.test.hugo/layouts/_default/single.html b/unified.test.hugo/layouts/_default/single.html index 1103ab7..38f5547 100644 --- a/unified.test.hugo/layouts/_default/single.html +++ b/unified.test.hugo/layouts/_default/single.html @@ -6,102 +6,7 @@ {{ partial "site-header.html" . }}
-{{ "" | safeHTML }} -
- -{{- if .Params.series }} -{{ "" | safeHTML }} - -{{- end }} -{{- if .Params.toc }} -{{ "" | safeHTML }} - - - -{{ partial "components/table-of-contents.html" . }} -{{- end }} -{{ "" | safeHTML }} -
-
-{{ replaceRE `(?s)
-
-{{ "" | safeHTML }} -
-
-
-{{- with (index (.RawContent | .RenderString | findRE `(?s)
-

Footnotes

-{{ . | replaceRE `
\n` "" | replaceRE `↩︎` "Return to text" | safeHTML -}} - -{{- end }} -
-
-
-{{ "" | safeHTML }} +{{ partial "components/article.html" . }}
{{ partial "site-footer.html" . }} diff --git a/unified.test.hugo/layouts/_default/sitemap.html b/unified.test.hugo/layouts/_default/sitemap.html index e91a06f..8b9b8a0 100644 --- a/unified.test.hugo/layouts/_default/sitemap.html +++ b/unified.test.hugo/layouts/_default/sitemap.html @@ -14,7 +14,7 @@

most recently updated