![]()  | 
  
Chilkat  HOME  Android™  AutoIt  C  C#  C++  Chilkat2-Python  CkPython  Classic ASP  DataFlex  Delphi DLL  Go  Java  Node.js  Objective-C  PHP Extension  Perl  PowerBuilder  PowerShell  PureBasic  Ruby  SQL Server  Swift  Tcl  Unicode C  Unicode C++  VB.NET  VBScript  Visual Basic 6.0  Visual FoxPro  Xojo Plugin
 
      (PureBasic) Markdown to HTML - Full Document, Custom Theme with Code Syntax HighlightingSee more Markdown ExamplesDemonstrates how to convert a complete Markdown document to HTML using your own custom theme with Cloudfare Prism's code syntax highlighting.Note: This example requires Chilkat v11.2.0 or greater. 
 IncludeFile "CkStringBuilder.pb" IncludeFile "CkJsonObject.pb" Procedure ChilkatExample() success.i = 0 success = 0 options.i = CkJsonObject::ckCreate() If options.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; Instead of specifying a "theme", provide values for the HTML document parts. sbHead.i = CkStringBuilder::ckCreate() If sbHead.i = 0 Debug "Failed to create object." ProcedureReturn EndIf bCrlf.i = 1 CkStringBuilder::ckAppendLine(sbHead,"<head>",bCrlf) CkStringBuilder::ckAppendLine(sbHead,"<style>",bCrlf) CkStringBuilder::ckAppendLine(sbHead,"body {",bCrlf) CkStringBuilder::ckAppendLine(sbHead," font-family: " + Chr(34) + "Segoe UI" + Chr(34) + ", Tahoma, Geneva, Verdana, sans-serif;",bCrlf) CkStringBuilder::ckAppendLine(sbHead,"}",bCrlf) CkStringBuilder::ckAppendLine(sbHead,"</style>",bCrlf) CkStringBuilder::ckAppendLine(sbHead,"</head>",bCrlf) ; Each HTML section can be set individually. CkJsonObject::ckUpdateString(options,"docType","<!DOCTYPE html>") CkJsonObject::ckUpdateString(options,"rootElement","<html lang=" + Chr(34) + "en" + Chr(34) + ">") CkJsonObject::ckUpdateString(options,"head",CkStringBuilder::ckGetAsString(sbHead)) CkJsonObject::ckUpdateString(options,"bodyStart","<body>" + Chr(10) + "<div id=" + Chr(34) + "content" + Chr(34)) CkJsonObject::ckUpdateString(options,"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. CkJsonObject::ckUpdateString(options,"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) + " />") CkJsonObject::ckUpdateString(options,"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>") sbMarkdown.i = CkStringBuilder::ckCreate() If sbMarkdown.i = 0 Debug "Failed to create object." ProcedureReturn EndIf sbHtml.i = CkStringBuilder::ckCreate() If sbHtml.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkStringBuilder::ckLoadFile(sbMarkdown,"qa_data/markdown/test1.md","utf-8") If success = 0 Debug CkStringBuilder::ckLastErrorText(sbMarkdown) CkJsonObject::ckDispose(options) CkStringBuilder::ckDispose(sbHead) CkStringBuilder::ckDispose(sbMarkdown) CkStringBuilder::ckDispose(sbHtml) ProcedureReturn EndIf CkStringBuilder::ckMarkdownToHtml(sbMarkdown,options,sbHtml) CkStringBuilder::ckToCRLF(sbHtml) Debug CkStringBuilder::ckGetAsString(sbHtml) ; 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: ;  | 
  ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.