list tags on posts page
This commit is contained in:
parent
42ac9ee2b6
commit
19ad68397b
3 changed files with 57 additions and 47 deletions
|
@ -3,6 +3,7 @@ layout: "base.njk"
|
||||||
eleventyComputed:
|
eleventyComputed:
|
||||||
title: "{{ page.fileSlug | capitalize }}"
|
title: "{{ page.fileSlug | capitalize }}"
|
||||||
---
|
---
|
||||||
|
|
||||||
{%- from "components/collectionList.njk" import collectionList with context -%}
|
{%- from "components/collectionList.njk" import collectionList with context -%}
|
||||||
<main>
|
<main>
|
||||||
<section data-pagefind-body>
|
<section data-pagefind-body>
|
||||||
|
@ -10,6 +11,15 @@ eleventyComputed:
|
||||||
</section>
|
</section>
|
||||||
{% set tag = page.fileSlug %}
|
{% set tag = page.fileSlug %}
|
||||||
{% if collections[tag] %}
|
{% if collections[tag] %}
|
||||||
|
{% if tag === "posts" %}
|
||||||
|
<div style="--totalTags:{{ collections.categories | dictsort | length }}">
|
||||||
|
{%- for tag, data in collections.categories -%}
|
||||||
|
<a class="button tag" style="--tagIndex:{{ collections.categories[tag].id }}" href="/tags/{{ tag | slugify }}/">{{ tag }}
|
||||||
|
<span class="tagCount">{{ data.count }}</span>
|
||||||
|
</a>
|
||||||
|
{%- endfor -%}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
{{ collectionList(tag) }}
|
{{ collectionList(tag) }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</main>
|
</main>
|
|
@ -19,9 +19,9 @@ body {
|
||||||
--c-bg1: oklch(15% 0.05 calc(var(--hue-main) + 30));
|
--c-bg1: oklch(15% 0.05 calc(var(--hue-main) + 30));
|
||||||
--c-bg2: oklch(15% 0.05 calc(var(--hue-main) - 30));
|
--c-bg2: oklch(15% 0.05 calc(var(--hue-main) - 30));
|
||||||
--c-dark: oklch(19.1% 0.005 var(--hue-main));
|
--c-dark: oklch(19.1% 0.005 var(--hue-main));
|
||||||
--c-text-background-light: oklch(45% 0.135 var(--hue-main) / 0.3);
|
--c-text-background: oklch(45% 0.135 var(--hue-main) / 0.3);
|
||||||
--c-text-light: oklch(94% 0.045 calc(var(--hue-main) + 180));
|
--c-text: oklch(94% 0.045 calc(var(--hue-main) + 180));
|
||||||
--c-text-dark: oklch(94% 0.045 calc(var(--hue-main) + 180));
|
--c-text-dim: oklch(94% 0.045 calc(var(--hue-main) + 180) / 0.67);
|
||||||
--tag-luminance: 0.85;
|
--tag-luminance: 0.85;
|
||||||
|
|
||||||
--ratio: 1.333;
|
--ratio: 1.333;
|
||||||
|
@ -55,7 +55,7 @@ body {
|
||||||
"Inter", "Inter Variable", Ubuntu, "Noto Sans", "Fira Sans", Roboto,
|
"Inter", "Inter Variable", Ubuntu, "Noto Sans", "Fira Sans", Roboto,
|
||||||
"Helvetica Neue", "Arial Nova", "Nimbus Sans", Arial, sans-serif;
|
"Helvetica Neue", "Arial Nova", "Nimbus Sans", Arial, sans-serif;
|
||||||
background-color: var(--c-body-background);
|
background-color: var(--c-body-background);
|
||||||
color: var(--c-text-dark);
|
color: var(--c-text);
|
||||||
background-image:
|
background-image:
|
||||||
url(/noise.png),
|
url(/noise.png),
|
||||||
radial-gradient(ellipse at -20% 20vmin, var(--c-bg1), transparent 90%),
|
radial-gradient(ellipse at -20% 20vmin, var(--c-bg1), transparent 90%),
|
||||||
|
@ -68,7 +68,7 @@ body {
|
||||||
|
|
||||||
::selection {
|
::selection {
|
||||||
background: var(--c-highlight);
|
background: var(--c-highlight);
|
||||||
color: var(--c-text-dark);
|
color: var(--c-text);
|
||||||
}
|
}
|
||||||
|
|
||||||
mark {
|
mark {
|
||||||
|
@ -105,7 +105,7 @@ a[href] {
|
||||||
nav label:has(input:focus-visible),
|
nav label:has(input:focus-visible),
|
||||||
nav label:has(input:checked) {
|
nav label:has(input:checked) {
|
||||||
outline: none;
|
outline: none;
|
||||||
color: var(--c-text-dark);
|
color: var(--c-text);
|
||||||
background-color: var(--glowColor);
|
background-color: var(--glowColor);
|
||||||
box-shadow:
|
box-shadow:
|
||||||
0 0 0.5rem var(--glowColor),
|
0 0 0.5rem var(--glowColor),
|
||||||
|
@ -121,18 +121,7 @@ nav label:has(input:checked) {
|
||||||
:is(a[href], button, nav label):focus-visible,
|
:is(a[href], button, nav label):focus-visible,
|
||||||
nav label:has(input:focus-visible) {
|
nav label:has(input:focus-visible) {
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
outline: 2px solid var(--c-text-dark);
|
outline: 2px solid var(--c-text);
|
||||||
}
|
|
||||||
|
|
||||||
.tag {
|
|
||||||
&::before {
|
|
||||||
content: "#";
|
|
||||||
}
|
|
||||||
--glowColor: oklch(var(--tag-luminance) 0.25 calc(25 + 360 * var(--tagIndex, 0) / var(--totalTags, 1)) / 0.3);
|
|
||||||
color: oklch(var(--tag-luminance) 0.25 calc(25 + 360 * var(--tagIndex, 0) / var(--totalTags, 1)) / 0.8);
|
|
||||||
&:hover {
|
|
||||||
color: var(--c-text-dark);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
main p img {
|
main p img {
|
||||||
|
@ -269,6 +258,7 @@ ul.collection {
|
||||||
&::before {
|
&::before {
|
||||||
content: none;
|
content: none;
|
||||||
}
|
}
|
||||||
|
color: var(--c-text-dim);
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
+ li {
|
+ li {
|
||||||
|
@ -312,7 +302,7 @@ sup {
|
||||||
}
|
}
|
||||||
|
|
||||||
body > header {
|
body > header {
|
||||||
color: var(--c-text-dark);
|
color: var(--c-text);
|
||||||
padding: 0 var(--inset) 0;
|
padding: 0 var(--inset) 0;
|
||||||
border-radius: 0.5rem 0.5rem 0 0;
|
border-radius: 0.5rem 0.5rem 0 0;
|
||||||
padding-top: env(safe-area-inset-top, 0);
|
padding-top: env(safe-area-inset-top, 0);
|
||||||
|
@ -371,8 +361,7 @@ body > header > nav {
|
||||||
--c-accent: black;
|
--c-accent: black;
|
||||||
--c-body-background: white;
|
--c-body-background: white;
|
||||||
|
|
||||||
--c-text-light: black;
|
--c-text: black;
|
||||||
--c-text-dark: black;
|
|
||||||
|
|
||||||
--content-width: 100vw;
|
--content-width: 100vw;
|
||||||
}
|
}
|
||||||
|
@ -444,7 +433,7 @@ body > footer {
|
||||||
padding: 0.1rem 0.25rem;
|
padding: 0.1rem 0.25rem;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
border-radius: 0 !important;
|
border-radius: 0 !important;
|
||||||
background-color: var(--c-text-background-light);
|
background-color: var(--c-text-background);
|
||||||
> input[type="radio"] {
|
> input[type="radio"] {
|
||||||
z-index: -2;
|
z-index: -2;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
@ -587,7 +576,7 @@ a.header-anchor {
|
||||||
:not(pre) > code,
|
:not(pre) > code,
|
||||||
pre {
|
pre {
|
||||||
font-family: "Commit Mono", monospace;
|
font-family: "Commit Mono", monospace;
|
||||||
background-color: var(--c-text-background-light);
|
background-color: var(--c-text-background);
|
||||||
padding: 0.1em;
|
padding: 0.1em;
|
||||||
border-radius: 0.5em;
|
border-radius: 0.5em;
|
||||||
}
|
}
|
||||||
|
@ -662,17 +651,21 @@ body .isso-preview {
|
||||||
-45deg,
|
-45deg,
|
||||||
transparent,
|
transparent,
|
||||||
transparent 10px,
|
transparent 10px,
|
||||||
var(--c-text-background-light) 10px,
|
var(--c-text-background) 10px,
|
||||||
var(--c-text-background-light) 20px
|
var(--c-text-background) 20px
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
body .isso-post-action > input, button {
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
body .isso-post-action > input,
|
body .isso-post-action > input,
|
||||||
button, a.button {
|
button, a.button {
|
||||||
color: inherit;
|
display: inline-block;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
background-color: var(--c-text-background-light);
|
background-color: var(--c-text-background);
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
padding: calc(0.5rem + 1px) 0.5rem;
|
padding: 0.5rem;
|
||||||
|
margin: 0 0.2em 0.2em 0;
|
||||||
border-radius: 0.2rem;
|
border-radius: 0.2rem;
|
||||||
border: none;
|
border: none;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
@ -682,8 +675,31 @@ button, a.button {
|
||||||
&:focus-visible {
|
&:focus-visible {
|
||||||
background-color: var(--c-accent);
|
background-color: var(--c-accent);
|
||||||
box-shadow:
|
box-shadow:
|
||||||
0 0 0.5rem var(--c-accent),
|
0 0 0.5rem var(--c-accent),
|
||||||
0 0 1rem var(--c-accent);
|
0 0 1rem var(--c-accent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.tag {
|
||||||
|
display: inline-flex;
|
||||||
|
&::before {
|
||||||
|
content: "#";
|
||||||
|
}
|
||||||
|
--tagLCH: var(--tag-luminance) 0.25 calc(25 + 360 * var(--tagIndex, 0) / var(--totalTags, 1));
|
||||||
|
--glowColor: oklch(var(--tagLCH) / 0.3);
|
||||||
|
--c-text-background: color-mix(in oklch, oklch(var(--tagLCH) / 0.4), #000A 50%);
|
||||||
|
--c-accent: color-mix(in oklch, oklch(var(--tagLCH) / 0.8), #000A 50%);
|
||||||
|
color: oklch(var(--tagLCH) / 0.8);
|
||||||
|
&:hover {
|
||||||
|
color: var(--c-text);
|
||||||
|
}
|
||||||
|
.tagCount {
|
||||||
|
display: inline-flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
font-size: calc(1em / var(--ratio));
|
||||||
|
color: var(--c-text);
|
||||||
|
width: 2em;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,16 +0,0 @@
|
||||||
---
|
|
||||||
layout: base.njk
|
|
||||||
title: Tags
|
|
||||||
permalink: /tags/
|
|
||||||
---
|
|
||||||
|
|
||||||
<main>
|
|
||||||
<ul class="collection" style="--totalTags:{{ collections.categories | dictsort | length }}">
|
|
||||||
{%- for tag, data in collections.categories -%}
|
|
||||||
<li>
|
|
||||||
<a class="tag" style="--tagIndex:{{ collections.categories[tag].id }}" href="/tags/{{ tag | slugify }}">{{ tag }}</a>
|
|
||||||
<aside>{{ data.count }}</aside>
|
|
||||||
</li>
|
|
||||||
{%- endfor -%}
|
|
||||||
</ul>
|
|
||||||
</main>
|
|
Loading…
Add table
Add a link
Reference in a new issue