![]() |
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
(Unicode 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_CkJsonObjectW.h> #include <C_CkStringBuilderW.h> void ChilkatSample(void) { BOOL success; HCkJsonObjectW options; HCkStringBuilderW sbHead; BOOL bCrlf; HCkStringBuilderW sbMarkdown; HCkStringBuilderW sbHtml; success = FALSE; success = FALSE; options = CkJsonObjectW_Create(); // Instead of specifying a "theme", provide values for the HTML document parts. sbHead = CkStringBuilderW_Create(); bCrlf = TRUE; CkStringBuilderW_AppendLine(sbHead,L"<head>",bCrlf); CkStringBuilderW_AppendLine(sbHead,L"<style>",bCrlf); CkStringBuilderW_AppendLine(sbHead,L"body {",bCrlf); CkStringBuilderW_AppendLine(sbHead,L" font-family: \"Segoe UI\", Tahoma, Geneva, Verdana, sans-serif;",bCrlf); CkStringBuilderW_AppendLine(sbHead,L"}",bCrlf); CkStringBuilderW_AppendLine(sbHead,L"</style>",bCrlf); CkStringBuilderW_AppendLine(sbHead,L"</head>",bCrlf); // Each HTML section can be set individually. CkJsonObjectW_UpdateString(options,L"docType",L"<!DOCTYPE html>"); CkJsonObjectW_UpdateString(options,L"rootElement",L"<html lang=\"en\">"); CkJsonObjectW_UpdateString(options,L"head",CkStringBuilderW_getAsString(sbHead)); CkJsonObjectW_UpdateString(options,L"bodyStart",L"<body>\n<div id=\"content\""); CkJsonObjectW_UpdateString(options,L"bodyEnd",L"</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. CkJsonObjectW_UpdateString(options,L"extraHead",L"<link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism-coy.min.css\" />"); CkJsonObjectW_UpdateString(options,L"extraBody",L"<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 = CkStringBuilderW_Create(); sbHtml = CkStringBuilderW_Create(); success = CkStringBuilderW_LoadFile(sbMarkdown,L"qa_data/markdown/test1.md",L"utf-8"); if (success == FALSE) { wprintf(L"%s\n",CkStringBuilderW_lastErrorText(sbMarkdown)); CkJsonObjectW_Dispose(options); CkStringBuilderW_Dispose(sbHead); CkStringBuilderW_Dispose(sbMarkdown); CkStringBuilderW_Dispose(sbHtml); return; } CkStringBuilderW_MarkdownToHtml(sbMarkdown,options,sbHtml); CkStringBuilderW_ToCRLF(sbHtml); wprintf(L"%s\n",CkStringBuilderW_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.