From: Alyssa Ross <hi@alyssa.is>
To: Valentin Gagarin <valentin@gagarin.work>
Cc: devel@spectrum-os.org
Subject: Re: [PATCH 1/3] Documentation: align Jekyll page style to rest of website
Date: Tue, 09 Jun 2026 13:45:51 +0200 [thread overview]
Message-ID: <87a4t49btc.fsf@alyssa.is> (raw)
In-Reply-To: <20260608164938.290202-5-valentin@gagarin.work>
[-- Attachment #1: Type: text/plain, Size: 5927 bytes --]
Valentin Gagarin <valentin@gagarin.work> writes:
> diff --git a/Documentation/_includes/sitemap.html b/Documentation/_includes/sitemap.html
> new file mode 100644
> index 0000000..cd493f8
> --- /dev/null
> +++ b/Documentation/_includes/sitemap.html
> @@ -0,0 +1,55 @@
> +{% comment %}
> +SPDX-License-Identifier: GPL-3.0-or-later
> +SPDX-FileCopyrightText: 2026 Valentin Gagarin <valentin@gagarin.work>
> +
> +Render a nested sitemap rooted at a given URL prefix. Hierarchy is
> +derived from URL structure: a page is a direct child of prefix P iff
> +its URL starts with P, is not P itself, and contains no further path
> +segments below P.
> +{% endcomment %}
> +
> +{%- assign default_root = "/" -%}
> +{% comment %}
> +`prefix` is the URL of the section to list children of. It must end with "/",
> +which we assume if it is constructed by a directory and contains an index file.
> +{% endcomment %}
> +{%- assign prefix = include.prefix | default: default_root -%}
> +{%- capture inner -%}
> + {%- assign candidates = site.html_pages
> + | where_exp: "p", "p.url contains prefix"
> + | where_exp: "p", "p.url != prefix" -%}
> + {%- comment %}
> + Ordered pages first, ascending. The rest after, in URL order, so output is deterministic.
> + {%- endcomment %}
> + {%- assign ordered = candidates | where_exp: "p", "p.nav_order" | sort: "nav_order" -%}
> + {%- assign unordered = candidates | where_exp: "p", "p.nav_order == nil" | sort: "url" -%}
> + {%- assign sorted = ordered | concat: unordered -%}
> + {%- for p in sorted -%}
> + {%- comment %}
> + `assign` is page-global. A recursive include below may have overwritten `prefix`.
> + {%- endcomment %}
> + {%- assign prefix = include.prefix | default: default_root -%}
> + {%- assign suffix = p.url | remove_first: prefix -%}
> + {%- assign without_slashes = suffix | replace: "/", "" -%}
> + {%- assign slashes = suffix.size | minus: without_slashes.size -%}
> + {%- assign is_index = false -%}
> + {%- if p.name == "index.adoc" -%}{%- assign is_index = true -%}{%- endif -%}
> + {%- assign is_page = false -%}
> + {%- if is_index == false and slashes == 0 -%}{%- assign is_page = true -%}{%- endif -%}
> + {%- assign is_section = false -%}
> + {%- if is_index and slashes == 1 -%}{%- assign is_section = true -%}{%- endif -%}
> + {%- if is_page or is_section %}
> + <li>
> + <a href="{{ p.url | relative_url }}">{{ p.title }}</a>{% if p.description %} — {{ p.description }}{% endif %}
Is this right? I see we have pages with descriptions, but when I look
at the sitemap I don't see any descriptions rendered.
> + {%- if is_section -%}
> + {%- include sitemap.html prefix=p.url -%}
> + {%- endif -%}
> + </li>
> + {%- endif -%}
> + {%- endfor -%}
> +{%- endcapture -%}
> +{%- assign trimmed = inner | strip -%}
> +{%- if trimmed != "" %}
> +<ul>{{ inner }}
> +</ul>
> +{%- endif -%}
> diff --git a/Documentation/_layouts/page.html b/Documentation/_layouts/page.html
> new file mode 100644
> index 0000000..230b601
> --- /dev/null
> +++ b/Documentation/_layouts/page.html
> @@ -0,0 +1,31 @@
> +{% comment %}
> +SPDX-License-Identifier: GPL-3.0-or-later
> +SPDX-FileCopyrightText: 2026 Valentin Gagarin <valentin@gagarin.work>
> +{% endcomment %}
> +<!doctype html>
> +<html lang="en">
> +
> +<head>
> +
> +<meta charset="utf-8">
> +<meta name="viewport" content="width=device-width,initial-scale=1">
> +
> +{% include favicon.html %}
> +<link rel="stylesheet" href="/style.css">
> +
> +<title>{{ page.title }}</title>
> +
> +<body>
> +
> +<nav aria-label="Breadcrumb">
> + <ol>
> + <li><a href="/">Spectrum</a></li>
> + <li><a href="/doc/">Documentation</a></li>
> + <li aria-current="page">{{ page.title }}</li>
This probably ought to be ommitted if the current page is /doc.
Otherwise I see "Spectrum / Documentation / Spectrum Documentation".
(Not a huge deal though — I see that it's fixed in patch #3.)
> diff --git a/Documentation/style.css b/Documentation/style.css
> index f4d4c4e..7f51a0a 100644
> --- a/Documentation/style.css
> +++ b/Documentation/style.css
> @@ -25,3 +25,61 @@ var {
> :target {
> background: yellow;
> }
> +
> +nav[aria-label="Breadcrumb"] ol {
> + list-style: none;
> + padding: 0;
> + display: flex;
> + flex-wrap: wrap;
> +}
> +
> +nav[aria-label="Breadcrumb"] li + li::before {
> + content: "/";
> + padding: 0 0.5em;
> +}
> +
> +:root {
> + --bg: Canvas;
> + --code-bg: whitesmoke;
> +}
> +
> +code {
> + background: var(--code-bg);
> + padding: 0.1em 0.3em;
> +}
> +
> +pre {
> + background: var(--code-bg);
> + padding: 1rem;
> + line-height: 1.5;
> + overflow-x: auto;
> +}
> +
> +pre code {
> + background: none;
> + padding: 0;
> + border-radius: 0;
> +}
> +
> +.admonitionblock {
> + border-left: 0.5rem solid var(--callout-accent, --bg);
> + background: var(--callout-bg, --code-bg);
> + margin: 1rem 0;
Something's off with your indentation here.
> +}
> +
> +.admonitionblock td {
> + padding: 1rem;
> + vertical-align: top;
And here.
> +}
> +
> +.admonitionblock td.icon {
> + white-space: nowrap;
> + color: var(--callout-accent);
> + font-weight: bold;
> +}
> +
> +.admonitionblock.note { --callout-accent: steelblue; --callout-bg: aliceblue; }
> +.admonitionblock.tip { --callout-accent: seagreen; --callout-bg: honeydew; }
> +.admonitionblock.important { --callout-accent: indigo; --callout-bg: ghostwhite; }
> +.admonitionblock.warning { --callout-accent: orangered; --callout-bg: seashell; }
> +.admonitionblock.caution { --callout-accent: red; --callout-bg: mistyrose}
For consistency this should be: ; }
New styles are looking lovely. :)
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]
next prev parent reply other threads:[~2026-06-09 11:46 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-08 16:49 [PATCH 0/3] Documentation: render all pages in one style Valentin Gagarin
2026-06-08 16:49 ` [PATCH 1/3] Documentation: align Jekyll page style to rest of website Valentin Gagarin
2026-06-08 16:49 ` [PATCH 2/3] Documentation: drop Just the Docs Valentin Gagarin
2026-06-08 16:49 ` [PATCH 3/3] Documentation: uniform navigation across all pages Valentin Gagarin
2026-06-08 16:49 ` [PATCH 1/3] Documentation: align Jekyll page style to rest of website Valentin Gagarin
2026-06-09 11:45 ` Alyssa Ross [this message]
2026-06-10 12:12 ` Valentin Gagarin
2026-06-10 12:23 ` Alyssa Ross
2026-06-08 16:49 ` [PATCH 2/3] Documentation: drop Just the Docs Valentin Gagarin
2026-06-09 11:43 ` Alyssa Ross
2026-06-08 16:49 ` [PATCH 3/3] Documentation: uniform navigation across all pages Valentin Gagarin
2026-06-09 11:54 ` Alyssa Ross
2026-06-11 6:37 ` [PATCH v2 1/3] Documentation: align Jekyll page style to rest of website Valentin Gagarin
2026-06-11 6:37 ` [PATCH v2 2/3] Documentation: drop Just the Docs Valentin Gagarin
2026-06-11 6:37 ` [PATCH v2 3/3] Documentation: uniform navigation across all pages Valentin Gagarin
2026-06-12 8:44 ` Alyssa Ross
2026-06-12 8:27 ` [PATCH v2 1/3] Documentation: align Jekyll page style to rest of website Alyssa Ross
2026-06-16 9:35 ` [PATCH v3 0/3] Documentation: render all pages in one style Valentin Gagarin
2026-06-16 9:35 ` [PATCH v3 1/3] Documentation: align Jekyll page style to rest of website Valentin Gagarin
2026-06-16 11:49 ` Alyssa Ross
2026-06-16 12:02 ` Valentin Gagarin
2026-06-17 10:48 ` Alyssa Ross
2026-06-16 9:35 ` [PATCH v3 2/3] Documentation: drop Just the Docs Valentin Gagarin
2026-06-17 10:48 ` Alyssa Ross
2026-06-16 9:35 ` [PATCH v3 3/3] Documentation: uniform navigation across all pages Valentin Gagarin
2026-06-16 12:01 ` Alyssa Ross
2026-06-17 10:48 ` Alyssa Ross
2026-06-16 12:01 ` [PATCH v3 0/3] Documentation: render all pages in one style Alyssa Ross
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87a4t49btc.fsf@alyssa.is \
--to=hi@alyssa.is \
--cc=devel@spectrum-os.org \
--cc=valentin@gagarin.work \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://spectrum-os.org/git/crosvm
https://spectrum-os.org/git/doc
https://spectrum-os.org/git/mktuntap
https://spectrum-os.org/git/nixpkgs
https://spectrum-os.org/git/spectrum
https://spectrum-os.org/git/ucspi-vsock
https://spectrum-os.org/git/www
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).