Sample code for 30+ languages & platforms
Delphi DLL

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 Delphi DLL Downloads

Delphi DLL
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, JsonObject, StringBuilder;

...

procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
options: HCkJsonObject;
sbMarkdown: HCkStringBuilder;
sbHtml: HCkStringBuilder;

begin
success := False;

success := False;

// Select the pre-defined "ChatGPT" style.
options := CkJsonObject_Create();
CkJsonObject_UpdateString(options,'theme','ChatGPT');

// We can also set an option for the max-width, which by default is "72ch".
CkJsonObject_UpdateString(options,'ChatGPT.max-width','120ch');

// We can add extra content to the bottom of the HTML head and body sections like this:
// Here we are using the "tomorrow" theme.
CkJsonObject_UpdateString(options,'extraHead','<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism-tomorrow.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) then
  begin
    Memo1.Lines.Add(CkStringBuilder__lastErrorText(sbMarkdown));
    Exit;
  end;

CkStringBuilder_MarkdownToHtml(sbMarkdown,options,sbHtml);
CkStringBuilder_ToCRLF(sbHtml);

Memo1.Lines.Add(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:

// image

CkJsonObject_Dispose(options);
CkStringBuilder_Dispose(sbMarkdown);
CkStringBuilder_Dispose(sbHtml);

end;