![]() |
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
(C) 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.
#include <C_CkJsonObject.h> #include <C_CkStringBuilder.h> void ChilkatSample(void) { BOOL success; HCkJsonObject options; HCkStringBuilder sbHead; BOOL bCrlf; HCkStringBuilder sbMarkdown; HCkStringBuilder sbHtml; success = FALSE; success = FALSE; options = CkJsonObject_Create(); // Instead of specifying a "theme", provide values for the HTML document parts. sbHead = CkStringBuilder_Create(); bCrlf = TRUE; CkStringBuilder_AppendLine(sbHead,"<head>",bCrlf); CkStringBuilder_AppendLine(sbHead,"<style>",bCrlf); CkStringBuilder_AppendLine(sbHead,"body {",bCrlf); CkStringBuilder_AppendLine(sbHead," font-family: \"Segoe UI\", Tahoma, Geneva, Verdana, sans-serif;",bCrlf); CkStringBuilder_AppendLine(sbHead,"}",bCrlf); CkStringBuilder_AppendLine(sbHead,"</style>",bCrlf); CkStringBuilder_AppendLine(sbHead,"</head>",bCrlf); // Each HTML section can be set individually. CkJsonObject_UpdateString(options,"docType","<!DOCTYPE html>"); CkJsonObject_UpdateString(options,"rootElement","<html lang=\"en\">"); CkJsonObject_UpdateString(options,"head",CkStringBuilder_getAsString(sbHead)); CkJsonObject_UpdateString(options,"bodyStart","<body>\n<div id=\"content\""); CkJsonObject_UpdateString(options,"bodyEnd","</div>\n</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_UpdateString(options,"extraHead","<link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism-coy.min.css\" />"); CkJsonObject_UpdateString(options,"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>"); sbMarkdown = CkStringBuilder_Create(); sbHtml = CkStringBuilder_Create(); success = CkStringBuilder_LoadFile(sbMarkdown,"qa_data/markdown/test1.md","utf-8"); if (success == FALSE) { printf("%s\n",CkStringBuilder_lastErrorText(sbMarkdown)); CkJsonObject_Dispose(options); CkStringBuilder_Dispose(sbHead); CkStringBuilder_Dispose(sbMarkdown); CkStringBuilder_Dispose(sbHtml); return; } CkStringBuilder_MarkdownToHtml(sbMarkdown,options,sbHtml); CkStringBuilder_ToCRLF(sbHtml); printf("%s\n",CkStringBuilder_getAsString(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.