Sample code for 30+ languages & platforms
DataFlex

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

See more Markdown Examples

Demonstrates how to convert a complete Markdown document to HTML using the pre-defined "ChatGPT" theme but also with Cloudfare Prism's code syntax highlighting.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Variant vOptions
    Handle hoOptions
    Handle hoSbMarkdown
    Variant vSbHtml
    Handle hoSbHtml
    String sTemp1

    Move False To iSuccess

    Move False To iSuccess

    // Select the pre-defined "ChatGPT" style.
    Get Create (RefClass(cComChilkatJsonObject)) To hoOptions
    If (Not(IsComObjectCreated(hoOptions))) Begin
        Send CreateComObject of hoOptions
    End
    Get ComUpdateString Of hoOptions "theme" "ChatGPT" To iSuccess

    // We can also set an option for the max-width, which by default is "72ch".
    Get ComUpdateString Of hoOptions "ChatGPT.max-width" "120ch" To iSuccess

    // We can add extra content to the bottom of the HTML head and body sections like this:
    // Here we are using the "tomorrow" theme.
    Get ComUpdateString Of hoOptions "extraHead" '<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism-tomorrow.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:

    // image


End_Procedure