feat(releases): rework overview and detail pages - #440
Merged
Conversation
Draw the timeline axis once per year group so it runs through without gaps, and put the latest release on it instead of pulling it out. Cards now show a change summary derived from the changelog frontmatter and a badge for maintenance-only releases, replacing the sentence-length highlight chips. Drops the grid overlay, blur blobs and pulsing dot from the featured card, and the dead animationDelay from ReleaseCard.
Extract the markdown renderers, the changelog terminal and a new sticky table of contents into components, and replace the two 170-line if-chains for section icons and colours with a lookup table. Section headings now use lucide icons in a single brand colour instead of emoji plus nine unrelated palettes. Fixes three rendering bugs on the way: internal note links went through target=_blank and forced a full page reload, a single image per paragraph put a figure inside a p element, and remark-gfm was missing so tables and strikethrough never rendered. Release metadata now also sets description and Open Graph tags.
The highlights of the last three releases had grown into full sentences and up to six entries, which does not work in a chip layout. Cut them down to at most four short labels, matching the earlier releases.
The onResolved subscriber scrolled to the top of the page on every resolved navigation, including a change of the hash alone. In-page anchor links therefore raced the browser's own scroll to the target, and which one won depended on timing, so links appeared to work sometimes and jump back to the top otherwise. Only reset the scroll when the path changes.
…hors Four defects, all in the table of contents added with the detail page rework: Anchor ids were handed out from a counter advanced during render. React renders a component more than once, so the counter ran ahead and ids landed on the wrong headings or ran out entirely. Ids are now keyed by the heading's line in the markdown source, which does not depend on how often a heading renders. The sticky navigation had no room to move because align-items: start kept the aside at the height of its content instead of the row, and the main element's overflow: hidden made it the scroll container. The aside now stretches and main clips on the x axis only. Anchors landed 272px down because scroll-mt-28 added to the scroll-padding of 160px that the html element already carries. Dropped the extra margin. The active entry was derived from a narrow observation band, which a jump longer than the band skips. It is now derived from scroll position.
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.