import * as fs from 'fs'; import * as path from 'path'; import * as vscode from 'vscode'; export function openChangelog(context: vscode.ExtensionContext) { const panel = vscode.window.createWebviewPanel( 'hplToolbox.changelog', 'HPL Toolbox Changelog', vscode.ViewColumn.One, { enableScripts: false } ); const changelogPath = path.join(context.extensionPath, 'CHANGELOG.md'); let markdown = '# Changelog\n\nCHANGELOG.md was not found.'; try { markdown = fs.readFileSync(changelogPath, 'utf8'); } catch { // Keep the fallback text readable in packaged or development installs. } panel.webview.html = getHtml(renderMarkdown(markdown)); } function getHtml(content: string): string { return `
${escapeHtml(line)}
`); } closeList(); return html.join('\n'); } function escapeHtml(value: string): string { return value.replace(/[&<>"']/g, ch => ({ '&': '&', '<': '<', '>': '>', '"': '"', "'": ''', }[ch] ?? ch)); }