Sample code for 30+ languages & platforms
PHP Extension

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 PHP Extension Downloads

PHP Extension
<?php

include("chilkat.php");

$success = false;

$success = false;

$options = new CkJsonObject();

// Instead of specifying a "theme", provide values for the HTML document parts.

$sbHead = new CkStringBuilder();
$bCrlf = true;
$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>\n<div id=\'content\'');
$options->UpdateString('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.
$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 = new CkStringBuilder();
$sbHtml = new CkStringBuilder();

$success = $sbMarkdown->LoadFile('qa_data/markdown/test1.md','utf-8');
if ($success == false) {
    print $sbMarkdown->lastErrorText() . "\n";
    exit;
}

$sbMarkdown->MarkdownToHtml($options,$sbHtml);
$sbHtml->ToCRLF();

print $sbHtml->getAsString() . "\n";

// 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

?>