From 33f58581d06fca5b187dfacd6fc28f3eb2e3e087 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Thu, 1 May 2025 15:10:56 -0700 Subject: [PATCH 1/4] fix(compare): support for Windows newlines and improve formatting --- app/data/markdown-renderer.ts | 12 ++++++------ app/data/markdown.ts | 2 +- app/routes/release/compare.tsx | 35 +++++++++++++++++----------------- 3 files changed, 24 insertions(+), 25 deletions(-) diff --git a/app/data/markdown-renderer.ts b/app/data/markdown-renderer.ts index de10209..d1b9250 100644 --- a/app/data/markdown-renderer.ts +++ b/app/data/markdown-renderer.ts @@ -18,12 +18,12 @@ export const makeMD = (opts: { // Headings const headingSizes = { - '1': 'text-xl font-bold mb-3', - '2': 'text-xl font-semibold mb-3', - '3': 'text-xl font-semibold mb-3', - '4': 'text-xl font-semibold mb-3', - '5': 'text-lg font-medium mb-2', - '6': 'text-base font-medium mb-1', + '1': 'font-bold my-3', + '2': 'font-semibold my-3', + '3': 'font-semibold my-3', + '4': 'font-semibold my-3', + '5': 'font-medium my-2', + '6': 'text-base font-medium my-1', } as const; md.renderer.rules.heading_open = (tokens, idx) => { const level = tokens[idx].tag.slice(1) as '1' | '2' | '3' | '4' | '5' | '6'; diff --git a/app/data/markdown.ts b/app/data/markdown.ts index 655eb0e..58fc95e 100644 --- a/app/data/markdown.ts +++ b/app/data/markdown.ts @@ -50,7 +50,7 @@ export const renderGroupedReleaseNotes = (versions: { version: string; content: groups[key] = []; } for (const { version, content } of versions) { - const headers = content.split(/^## ([A-Za-z ]+)\n/gm).slice(1); + const headers = content.split(/^## ([A-Za-z ]+)(?:\r\n|\n)/gm).slice(1); for (let i = 0; i < headers.length; i += 2) { const groupName = headers[i]; const groupContent = headers[i + 1]; diff --git a/app/routes/release/compare.tsx b/app/routes/release/compare.tsx index 246976e..13b14b1 100644 --- a/app/routes/release/compare.tsx +++ b/app/routes/release/compare.tsx @@ -72,22 +72,21 @@ export const loader = async (args: LoaderFunctionArgs) => { return redirect('/release'); } - const grouped = renderGroupedReleaseNotes( - versionsForNotes.map((version, i) => { - let releaseNotes = githubReleaseNotes[i]!; - const parsed = semverParse(version); - if (parsed?.prerelease.length) { - releaseNotes = releaseNotes?.split(new RegExp(`@${escapeRegExp(version)}\`?.`))[1]; - } - releaseNotes = - releaseNotes?.replace(/# Release Notes for [^\r\n]+(?:(?:\n)|(?:\r\n))/i, '') || - 'Missing...'; - return { - version, - content: releaseNotes, - }; - }), - ); + const rawGroupedNotes = versionsForNotes.map((version, i) => { + let releaseNotes = githubReleaseNotes[i]!; + const parsed = semverParse(version); + if (parsed?.prerelease.length) { + releaseNotes = releaseNotes?.split(new RegExp(`@${escapeRegExp(version)}\`?.`))[1]; + } + releaseNotes = + releaseNotes?.replace(/# Release Notes for [^\r\n]+(?:(?:\n)|(?:\r\n))/i, '') || 'Missing...'; + return { + version, + content: releaseNotes, + }; + }); + + const grouped = renderGroupedReleaseNotes(rawGroupedNotes); return { fromElectronRelease, @@ -234,9 +233,9 @@ export default function CompareReleases() { {Object.keys(grouped).map((groupName) => { return (
-

+

{groupName} -

+