Sample code for 30+ languages & platforms
B4X Requires Chilkat v11.2.0+

Markdown to HTML - Full Document, Custom Theme with Code Syntax Highlighting

See more Markdown Examples

Demonstrates how to convert a complete Markdown document to HTML using your own custom theme with Cloudfare Prism's code syntax highlighting.

Chilkat B4X Downloads

B4X
Dim success As Boolean = False

success = False

Dim options As ChilkatJsonObject
options.Initialize

'  Instead of specifying a "theme", provide values for the HTML document parts.

Dim sbHead As ChilkatStringBuilder
sbHead.Initialize
Dim bCrlf As Boolean = True
sbHead.AppendLine("<head>", bCrlf)
sbHead.AppendLine("<style>", bCrlf)
sbHead.AppendLine("body {", bCrlf)
sbHead.AppendLine("  font-family: " & Chr(34) & "Segoe UI" & Chr(34) & ", Tahoma, Geneva, Verdana, sans-serif;", bCrlf)
sbHead.AppendLine("}", bCrlf)
sbHead.AppendLine("</style>", bCrlf)
sbHead.AppendLine("</head>", bCrlf)

'  Each HTML section can be set individually.
options.UpdateString("docType", "<!DOCTYPE html>")
options.UpdateString("rootElement", "<html lang=" & Chr(34) & "en" & Chr(34) & ">")
options.UpdateString("head", sbHead.GetAsString)
options.UpdateString("bodyStart", "<body>" & Chr(10) & "<div id=" & Chr(34) & "content" & Chr(34))
options.UpdateString("bodyEnd", "</div>" & Chr(10) & "</body>")

'  We can add extra content to the bottom of the HTML head and body sections like this:
'  Here we are using the Cloudfare Prism "coy" theme for code syntax higlighting.
options.UpdateString("extraHead", "<link rel=" & Chr(34) & "stylesheet" & Chr(34) & " href=" & Chr(34) & "https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism-coy.min.css" & Chr(34) & " />")
options.UpdateString("extraBody", "<script src=" & Chr(34) & "https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js" & Chr(34) & "></script><script src =" & Chr(34) & "https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/autoloader/prism-autoloader.min.js" & Chr(34) & "></script>")

Dim sbMarkdown As ChilkatStringBuilder
sbMarkdown.Initialize
Dim sbHtml As ChilkatStringBuilder
sbHtml.Initialize

success = sbMarkdown.LoadFile("qa_data/markdown/test1.md", "utf-8")
If success = False Then
    Log(sbMarkdown.LastErrorText)
    Return
End If


sbMarkdown.MarkdownToHtml(options, sbHtml)
sbHtml.ToCRLF

Log(sbHtml.GetAsString)

'  The sample markdown input for this example is identical to the one at Markdown to HTML - Full Document, Raw, where you can view it.

'  Sample HTML output as viewed in a browser:

'  image