DataFlex
DataFlex
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 DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Variant vOptions
Handle hoOptions
Handle hoSbHead
Boolean iBCrlf
Handle hoSbMarkdown
Variant vSbHtml
Handle hoSbHtml
String sTemp1
Move False To iSuccess
Move False To iSuccess
Get Create (RefClass(cComChilkatJsonObject)) To hoOptions
If (Not(IsComObjectCreated(hoOptions))) Begin
Send CreateComObject of hoOptions
End
// Instead of specifying a "theme", provide values for the HTML document parts.
Get Create (RefClass(cComChilkatStringBuilder)) To hoSbHead
If (Not(IsComObjectCreated(hoSbHead))) Begin
Send CreateComObject of hoSbHead
End
Move True To iBCrlf
Get ComAppendLine Of hoSbHead "<head>" iBCrlf To iSuccess
Get ComAppendLine Of hoSbHead "<style>" iBCrlf To iSuccess
Get ComAppendLine Of hoSbHead "body {" iBCrlf To iSuccess
Get ComAppendLine Of hoSbHead ' font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;' iBCrlf To iSuccess
Get ComAppendLine Of hoSbHead "}" iBCrlf To iSuccess
Get ComAppendLine Of hoSbHead "</style>" iBCrlf To iSuccess
Get ComAppendLine Of hoSbHead "</head>" iBCrlf To iSuccess
// Each HTML section can be set individually.
Get ComUpdateString Of hoOptions "docType" "<!DOCTYPE html>" To iSuccess
Get ComUpdateString Of hoOptions "rootElement" '<html lang="en">' To iSuccess
Get ComGetAsString Of hoSbHead To sTemp1
Get ComUpdateString Of hoOptions "head" sTemp1 To iSuccess
Get ComUpdateString Of hoOptions "bodyStart" '<body>' + (character(10)) + '<div id="content"' To iSuccess
Get ComUpdateString Of hoOptions "bodyEnd" "</div>" + (character(10)) + "</body>" To iSuccess
// 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.
Get ComUpdateString Of hoOptions "extraHead" '<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism-coy.min.css" />' To iSuccess
Get ComUpdateString Of hoOptions "extraBody" '<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js"></script><script src ="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/autoloader/prism-autoloader.min.js"></script>' To iSuccess
Get Create (RefClass(cComChilkatStringBuilder)) To hoSbMarkdown
If (Not(IsComObjectCreated(hoSbMarkdown))) Begin
Send CreateComObject of hoSbMarkdown
End
Get Create (RefClass(cComChilkatStringBuilder)) To hoSbHtml
If (Not(IsComObjectCreated(hoSbHtml))) Begin
Send CreateComObject of hoSbHtml
End
Get ComLoadFile Of hoSbMarkdown "qa_data/markdown/test1.md" "utf-8" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoSbMarkdown To sTemp1
Showln sTemp1
Procedure_Return
End
Get pvComObject of hoOptions to vOptions
Get pvComObject of hoSbHtml to vSbHtml
Get ComMarkdownToHtml Of hoSbMarkdown vOptions vSbHtml To iSuccess
Get ComToCRLF Of hoSbHtml To iSuccess
Get ComGetAsString Of hoSbHtml To sTemp1
Showln sTemp1
// 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:
//
End_Procedure