fix: render knip report markdown instead of plain text

The marked.js library was being loaded with defer attribute, causing a race
condition where loadReport() would execute before marked was available.
Changed to synchronous loading and added proper DOMContentLoaded handling
to ensure marked.parse() is available when rendering the report.

Also fixed the reference from window.marked to just marked.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
snomiao
2025-10-17 00:08:48 +00:00
parent 739e880922
commit 949c9de93d

View File

@@ -38,7 +38,7 @@
border: 1px solid #404040;
}
</style>
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js" defer></script>
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
</head>
<body>
<h1>🧹 Knip Code Quality Report</h1>
@@ -61,8 +61,10 @@
const reportText = await response.text()
statusEl.style.display = 'none'
if (window.marked) {
contentEl.innerHTML = window.marked.parse(reportText)
// Wait for marked to be available
if (typeof marked !== 'undefined') {
contentEl.innerHTML = marked.parse(reportText)
} else {
contentEl.innerHTML = `<pre>${reportText}</pre>`
}
@@ -74,7 +76,12 @@
}
}
loadReport()
// Wait for marked library to load before running
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', loadReport)
} else {
loadReport()
}
</script>
</body>
</html>