Commit f12304e4b7
Unsigned ci/build: success ci/lint: success
Layout: unified · split
content/templates/base.html +1 −1
| @@ -75,7 +75,7 @@ | ||
| 75 | 75 | <p><time datetime="{{ page.date_iso }}">{{ page.date_iso }}</time>{% if page.excerpt %} · {{ page.excerpt }}{% endif %}</p> |
| 76 | 76 | {%- endif %} |
| 77 | 77 | {%- if page.tags %} |
| 78 | <p>{% for tag in page.tags %}<a href="{{ root }}tags/{{ tag }}.html">#{{ tag }}</a> {% endfor %}</p> | |
| 78 | <p class="tags">:{% for tag in page.tags %}<a href="{{ root }}tags/{{ tag }}.html">{{ tag }}</a>:{% endfor %}</p> | |
| 79 | 79 | {%- endif %} |
| 80 | 80 | {#- Blog posts add a reply footer inside this block; see post.html, which the |
| 81 | 81 | [[pages]] rule in orgo.toml selects for everything under blog/. #} |
theme/static/styles.css +59 −22
| @@ -1,40 +1,77 @@ | ||
| 1 | body { max-width: 800px; margin: 0 auto; padding: 1rem; } | |
| 2 | a, a:visited { color: #0000ff; } | |
| 3 | nav ul { list-style: none; padding: 0; display: flex; flex-direction: row; } | |
| 4 | nav ul li { padding-right: 0.5rem;} | |
| 1 | :root { | |
| 2 | --bg: #fbfaf6; --fg: #2b2b2b; --muted: #77746d; --link: #2a5db0; --rule: #e2ded3; | |
| 3 | --h1: #6a3a99; --h2: #2e6b3c; --h3: #8a4b00; --tag: #9b5a00; --block: #f0ede4; | |
| 4 | --mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace; | |
| 5 | } | |
| 6 | body { max-width: 800px; margin: 0 auto; padding: 1rem; background-color: var(--bg); color: var(--fg); font-family: var(--mono); font-size: 0.9rem; line-height: 1.6; } | |
| 7 | h1, h2, h3, h4 { font-size: 1em; font-weight: bold; margin: 1.5rem 0 0.75rem; } | |
| 8 | h1 { color: var(--fg); } | |
| 9 | h1::before { content: "#+title: "; color: var(--muted); font-weight: normal; } | |
| 10 | h2 { color: var(--h1); } | |
| 11 | h2::before { content: "* "; } | |
| 12 | h3 { color: var(--h2); } | |
| 13 | h3::before { content: "** "; } | |
| 14 | h4 { color: var(--h3); } | |
| 15 | h4::before { content: "*** "; } | |
| 16 | a, a:visited { color: var(--link); text-underline-offset: 2px; } | |
| 17 | nav ul { list-style: none; padding: 0; display: flex; flex-direction: row; flex-wrap: wrap; } | |
| 18 | nav ul li { padding-right: 1ch; } | |
| 19 | nav ul li::after { content: " |"; color: var(--muted); } | |
| 20 | nav ul li:last-child::after { content: ""; } | |
| 21 | ul { padding-left: 2ch; } | |
| 22 | ul > li { list-style: none; } | |
| 23 | ul > li::before { content: "- "; margin-left: -2ch; color: var(--muted); } | |
| 24 | nav li::before, .post-list li::before, .detour-list li::before { content: none; } | |
| 5 | 25 | img { max-width: 100%; } |
| 26 | time { color: var(--muted); white-space: nowrap; } | |
| 27 | time::before { content: "<"; } | |
| 28 | time::after { content: ">"; } | |
| 29 | .tags, .tags a, .tags a:visited { color: var(--tag); text-decoration: none; } | |
| 6 | 30 | .post-list { padding: 0; padding-inline-start: 0; } |
| 7 | .post-list-item { display: flex; list-style: none; align-items: baseline; } | |
| 8 | .post-list-item time { padding-right: 0.5rem; white-space: nowrap; } | |
| 31 | .post-list-item { display: flex; list-style: none; align-items: baseline; gap: 1ch; } | |
| 9 | 32 | .post-list-item a { flex-grow: 1; white-space: normal; } |
| 10 | .post-list-year { list-style: none; margin-top: 1rem; margin-bottom: 0.5rem; font-weight: bold; } | |
| 33 | .post-list-year { list-style: none; margin-top: 1rem; margin-bottom: 0.5rem; font-weight: bold; color: var(--h1); } | |
| 34 | .post-list-year::before { content: "* "; } | |
| 11 | 35 | .skip-link { display: none; } |
| 12 | 36 | table { border-collapse: collapse; } |
| 13 | table, th, td { border: 1px solid #ccc; } | |
| 37 | table, th, td { border: 1px solid var(--rule); } | |
| 14 | 38 | th, td { padding: 0.25rem 0.5rem; text-align: left; } |
| 15 | footer { margin: 2rem 0;} | |
| 16 | pre, blockquote { margin: 1rem 0; padding: 0.5rem; background-color: #eee; } | |
| 39 | footer { margin: 2rem 0; color: var(--muted); } | |
| 40 | pre, blockquote { margin: 1rem 0; padding: 0.5rem 1ch 0.5rem 3ch; } | |
| 41 | pre, blockquote, .detour, .seealso { background-color: var(--block); } | |
| 17 | 42 | pre { overflow: auto; white-space: pre; } |
| 43 | pre::before { content: "#+begin_src"; display: block; margin-left: -2ch; color: var(--muted); } | |
| 44 | pre::after { content: "#+end_src"; display: block; margin-left: -2ch; color: var(--muted); } | |
| 45 | blockquote::before { content: "#+begin_quote"; display: block; margin-left: -2ch; color: var(--muted); } | |
| 46 | blockquote::after { content: "#+end_quote"; display: block; margin-left: -2ch; color: var(--muted); } | |
| 18 | 47 | blockquote p { margin: 0; margin-bottom: 1rem; } |
| 19 | 48 | blockquote p:last-child { margin-bottom: 0; } |
| 20 | code { color: #942192; } | |
| 21 | /* The metadata block on a detour post. currentColor for the rule, so the dark scheme | |
| 22 | below needs no override. */ | |
| 23 | .detour { border-left: 3px solid currentColor; padding: .5rem 1rem; margin: 1rem 0 2rem; font-size: .95em; } | |
| 49 | code { color: var(--tag); } | |
| 50 | figcaption { color: var(--muted); } | |
| 51 | /* The metadata block on a detour post, shown as a property drawer. */ | |
| 52 | .detour { margin: 1rem 0 2rem; padding: 0.5rem 1ch; } | |
| 53 | .detour::before { content: ":PROPERTIES:"; color: var(--muted); } | |
| 54 | .detour::after { content: ":END:"; color: var(--muted); } | |
| 24 | 55 | .detour dl { margin: 0; } |
| 25 | .detour dt { font-weight: bold; } | |
| 26 | .detour dd { margin: 0 0 .4rem 0; } | |
| 56 | .detour dt { display: inline; color: var(--tag); } | |
| 57 | .detour dt::before, .detour dt::after { content: ":"; } | |
| 58 | .detour dd { display: inline; margin: 0 0 0 1ch; } | |
| 59 | .detour dd::after { content: ""; display: block; } | |
| 27 | 60 | .detour-list { padding-inline-start: 0; } |
| 28 | 61 | .detour-list li { list-style: none; margin-bottom: .75rem; } |
| 29 | .detour-meta { display: block; font-size: .95em; } | |
| 62 | .detour-meta { display: block; color: var(--muted); } | |
| 63 | /* #+begin_seealso: a line of related links under a section. */ | |
| 64 | .seealso { margin: 1rem 0; padding: 0.5rem 1ch; } | |
| 65 | .seealso::before { content: "#+begin_seealso"; display: block; color: var(--muted); } | |
| 66 | .seealso::after { content: "#+end_seealso"; display: block; color: var(--muted); } | |
| 67 | .seealso p { margin: 0 0 0 2ch; } | |
| 30 | 68 | /* Blocks are coloured by syntax.css, so this is only the fallback for the tokens it |
| 31 | 69 | leaves unclassified: the highlight theme's own foreground rather than inline code's. */ |
| 32 | 70 | pre code { color: #323232; } |
| 33 | 71 | @media (prefers-color-scheme: dark) { |
| 34 | body { background-color: #181a1b; color: #cccccc; } | |
| 35 | a, a:visited { color: #68A9F8; } | |
| 36 | code { color: #ff68e1; } | |
| 37 | pre, blockquote { background-color: #000; } | |
| 72 | :root { | |
| 73 | --bg: #0b0c0e; --fg: #d6d6d0; --muted: #8a8b90; --link: #7fb0f0; --rule: #2a2b30; | |
| 74 | --h1: #c79bf2; --h2: #8fcf9a; --h3: #f0c27a; --tag: #e0a85a; --block: #17181c; | |
| 75 | } | |
| 38 | 76 | pre code { color: #c0c5ce; } |
| 39 | table, th, td { border-color: #444; } | |
| 40 | 77 | } |