lynglib: added MiniAST support

lyngweb: better syntax highlighting and code editor
This commit is contained in:
sergeych committed 2025-11-24 00:38:17 +01:00
1 parent 28b961d339
commit ea0ecb1db3
24 files changed
+3095 -218

No files matched your search

+2 -1
View File
@@ -57,7 +57,8 @@ fun DocsPage(
} else {
val text = resp.text().await()
title = extractTitleFromMarkdown(text) ?: path.substringAfterLast('/')
setHtml(renderMarkdown(text))
// Use AST-backed highlighting for code blocks
setHtml(renderMarkdownAsync(text))
}
} catch (t: Throwable) {
setError("Failed to load: $path — ${t.message}")
+12
View File
@@ -314,6 +314,18 @@ fun renderMarkdown(src: String): String =
)
)
// Suspend variant that uses the AST-backed highlighter for Lyng code blocks.
suspend fun renderMarkdownAsync(src: String): String =
net.sergeych.lyngweb.highlightLyngHtmlAsync(
net.sergeych.lyngweb.ensureBootstrapCodeBlocks(
ensureBootstrapTables(
ensureDefinitionLists(
marked.parse(src)
)
)
)
)
// Pure function to render the Reference list HTML from a list of doc paths.
// Returns a Bootstrap-styled <ul> list with links to the docs routes.
fun renderReferenceListHtml(docs: List<String>): String {