Server Migration Notice (31/10/2026) — New SSH Host Keys (git.kb28.ch)
Following the server migration on 31/10/2026, the SSH host keys for git.kb28.ch have changed. If you encounter the REMOTE HOST IDENTIFICATION HAS CHANGED warning during git pull or git push, run the following command to directly replace the old key in your ~/.ssh/known_hosts file:
Official New SSH Key Fingerprints:
- ED25519:
SHA256:UrTJ+OdOKicPnL+6EgOHGlFSBm9KA+kBGMpKtoUBIOA
- ECDSA:
SHA256:qne+wTzSr8k5KIuEtXNYz9/LYed4eOMSmxzgMZ4g+KI
- RSA:
SHA256:eaVzvSUlo66pMayLMHL/cWg4zoPui3LmLOWKm0XX22g
Problem
Descriptions and values are drawn as a single line that never wraps. A diagram is
scaled to fit the width it is rendered into, so the longest label is what decides
that scale — one long description makes the whole diagram, bit cells and indices
included, shrink until that line fits.
Before —
config.config(), in a document 700pt wide:After —
config.config(description-width: 460), same schema, same page:What the option does
description-widthwraps labels at that width, so the length of a description nolonger decides how large the diagram is drawn. Values wrap at the same right edge as
the description they belong to. It composes with
left-labels,force-descs-on-sideandltr-bits.Wrapping means a label is no longer one line tall, so labels can no longer be spaced
by a fixed line height. Each is now offset by the height it actually occupies,
measured before it is placed. That is why
rendergained acontextblock.Compatibility
The option defaults to
none, which keeps the single-line behaviour on the originalcode paths.
Any thoughts on this change?
Yes it looks very nice
I've skimmed the changes and it seems alright to me, I've just been quite busy this week and haven't had the time to review it
Will do asap
Nice addition, just a few things, mainly some adjustments to the documentation
@@ -26,6 +26,7 @@/// - full-page (bool): If true, the page will be resized to fit the diagram and take the background color/// - all-bit-i (bool): If true, all bit indices will be rendered, otherwise, only the ends of each range will be displayed/// - ltr-bits (bool): If true, bits are placed with the LSB on the left instead of the right/// - description-width (float | none): If set, descriptions and values wrap at this width instead of being drawn on a single lineSeparator between types should be a comma for Tidy to parse it correctly
@@ -203,6 +203,36 @@ For values depending on other ranges, see #link(<format-dependencies>)[Dependenc}```=== Wrapping descriptions <format-description-width>I'm not sure this is the best place to put this section. This chapter is rather dedicated to the schema definition format.
I think we should put config related stuff in the Config chapter (which could be renamed instead of only talking about Config presets)
@@ -206,0 +228,4 @@occupies, so wrapping onto several lines does not make labels overlap.```typschema.render(sch, config: config.config(description-width: 300))Missing a
#at the start of the line@@ -158,0 +193,4 @@// to its left edge: exactly the box width when wrapping, an estimate from// the character count otherwisetxt-x -= if config.description-width == none {range_.description.len() * config.default-font-size / 2ptCould we use
measureinstead?ab3ccfcceatof4c3fc7f61Good points! I think I've addressed all of them.
Regarding changing to
measure, I agree it's better, but note that it's changing the default behavior rather than whendescription-widthis actually set. I kept that as a separate commit, so it's up to you if you want it as part of this PR or as a separate one.I agree but I do think it is for the better
Thank you for your contribution!