From ab1987df371766a9be4cb18a547eae9c9e393b88 Mon Sep 17 00:00:00 2001 From: Arnold HAO Date: Sun, 3 May 2026 13:50:19 +0800 Subject: [PATCH] fix release notes show --- src/main/settings-service.ts | 24 ++++++- src/renderer/src/App.tsx | 118 +++++++++++++++++++++++++++++++- src/renderer/src/styles/app.css | 23 +++++++ 3 files changed, 161 insertions(+), 4 deletions(-) diff --git a/src/main/settings-service.ts b/src/main/settings-service.ts index 7e7fbf1..d8b9657 100644 --- a/src/main/settings-service.ts +++ b/src/main/settings-service.ts @@ -911,8 +911,12 @@ function normalizeReleaseNotes(releaseNotes: unknown): string { } function stripReleaseNotesBoilerplate(releaseNotes: string): string { - return releaseNotes - .replace(/\r\n?/g, '\n') + const normalized = releaseNotes.replace(/\r\n?/g, '\n') + if (isHtmlReleaseNotes(normalized)) { + return stripHtmlReleaseNotesBoilerplate(normalized) + } + + return normalized .replace( /[\s\S]*?/gi, '' @@ -920,3 +924,19 @@ function stripReleaseNotesBoilerplate(releaseNotes: string): string { .replace(/^\s*##\s+版本变更\s*\/\s*Changelog\s*\n+/i, '') .trim() } + +function isHtmlReleaseNotes(releaseNotes: string): boolean { + return /<\/?(?:h[1-6]|p|ul|ol|li|a|code|pre|blockquote|table|thead|tbody|tr|th|td|hr|br|strong|em)\b/i.test( + releaseNotes + ) +} + +function stripHtmlReleaseNotesBoilerplate(releaseNotes: string): string { + const changelogHeading = /]*>\s*版本变更\s*\/\s*Changelog\s*<\/h[1-6]>/i.exec( + releaseNotes + ) + if (changelogHeading) { + return releaseNotes.slice(changelogHeading.index + changelogHeading[0].length).trim() + } + return releaseNotes.trim() +} diff --git a/src/renderer/src/App.tsx b/src/renderer/src/App.tsx index 2634823..04761f2 100644 --- a/src/renderer/src/App.tsx +++ b/src/renderer/src/App.tsx @@ -1,6 +1,6 @@ import { useCallback, useEffect, useId, useLayoutEffect, useRef, useState } from 'react' import { createPortal } from 'react-dom' -import type { JSX, ReactNode } from 'react' +import type { JSX, MouseEvent as ReactMouseEvent, ReactNode } from 'react' import { AlertCircle, @@ -1026,7 +1026,7 @@ function AboutTab(props: {
- +