Delphi ActiveX
Delphi ActiveX
Markdown to HTML - Full Document, Custom Theme with Code Syntax Highlighting
See more Markdown Examples
Demonstrates how to convert a complete Markdown document to HTML using your own custom theme with Cloudfare Prism's code syntax highlighting.Chilkat Delphi ActiveX Downloads
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB;
...
procedure TForm1.Button1Click(Sender: TObject);
var
success: Integer;
options: TChilkatJsonObject;
sbHead: TChilkatStringBuilder;
bCrlf: Integer;
sbMarkdown: TChilkatStringBuilder;
sbHtml: TChilkatStringBuilder;
begin
success := 0;
success := 0;
options := TChilkatJsonObject.Create(Self);
// Instead of specifying a "theme", provide values for the HTML document parts.
sbHead := TChilkatStringBuilder.Create(Self);
bCrlf := 1;
sbHead.AppendLine('<head>',bCrlf);
sbHead.AppendLine('<style>',bCrlf);
sbHead.AppendLine('body {',bCrlf);
sbHead.AppendLine(' font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;',bCrlf);
sbHead.AppendLine('}',bCrlf);
sbHead.AppendLine('</style>',bCrlf);
sbHead.AppendLine('</head>',bCrlf);
// Each HTML section can be set individually.
options.UpdateString('docType','<!DOCTYPE html>');
options.UpdateString('rootElement','<html lang="en">');
options.UpdateString('head',sbHead.GetAsString());
options.UpdateString('bodyStart','<body>' + #10 + '<div id="content"');
options.UpdateString('bodyEnd','</div>' + #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.
options.UpdateString('extraHead','<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism-coy.min.css" />');
options.UpdateString('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 := TChilkatStringBuilder.Create(Self);
sbHtml := TChilkatStringBuilder.Create(Self);
success := sbMarkdown.LoadFile('qa_data/markdown/test1.md','utf-8');
if (success = 0) then
begin
Memo1.Lines.Add(sbMarkdown.LastErrorText);
Exit;
end;
sbMarkdown.MarkdownToHtml(options.ControlInterface,sbHtml.ControlInterface);
sbHtml.ToCRLF();
Memo1.Lines.Add(sbHtml.GetAsString());
// 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:
//
end;