| 
<?php/*
 * markdown_to_html.php
 *
 * @(#) $Id: markdown_to_html.php,v 1.2 2014/07/09 05:02:41 mlemos Exp $
 *
 */
 
 require_once('markdown_parser.php');
 require_once('markup_parser.php');
 
 $message_file = ((IsSet($_SERVER['argv']) && count($_SERVER['argv'])>1) ? $_SERVER['argv'][1] : 'test/sample/sample.md');
 $markdown=new markdown_parser_class;
 
 /*  Set to 1 if the you need to track line numbers of errors or element
 *  positions
 */
 $markdown->track_lines = 1;
 
 $parameters=array(
 'File'=>$message_file,
 
 /* Read a markdown from a string instead of a file */
 /* 'Data'=>'Markdown data here',                   */
 );
 
 /*
 * The following lines are for testing purposes.
 * Remove these lines when adapting this example to real applications.
 */
 if(defined('__TEST'))
 {
 if(IsSet($__test_options['parameters']))
 $parameters = $__test_options['parameters'];
 }
 
 if(($success = $markdown->StartParsing($parameters)))
 {
 /*
 * Use the markup class to rewrite parsed markdown tags as HTML
 *
 * http://www.phpclasses.org/secure-html-filter
 *
 */
 $markup = new markup_parser_class;
 
 
 $html = '';
 do
 {
 if(!($success = $markdown->Parse($end, $elements)))
 break;
 
 /*
 *  Rewrite the parsed tags as HTML
 */
 foreach($elements as $element)
 {
 if(!($success = $markup->RewriteElement($element, $element_html)))
 break 2;
 $html .= $element_html;
 }
 }
 while(!$end);
 if($success)
 $success = $markdown->FinishParsing();
 }
 if(!defined('__TEST'))
 echo '<html><head><title>', HtmlSpecialChars($message_file).'</title></head><body>';
 if($success)
 {
 /*
 *  Markdown parsing succeeded, lets output the converted HTML
 */
 echo $html;
 }
 else
 {
 echo '<h1>Markdown parsing error: '.HtmlSpecialChars($markdown->error).' at position '.$markdown->error_position;
 if($markdown->track_lines
 && $markdown->GetPositionLine($markdown->error_position, $line, $column))
 echo ' line '.$line.' column '.$column;
 echo "</h1>\n";
 }
 for($warning = 0, Reset($markdown->warnings); $warning < count($markdown->warnings); Next($markdown->warnings), $warning++)
 {
 $w = Key($markdown->warnings);
 echo '<p>Warning: ', HtmlSpecialChars($markdown->warnings[$w]), ' at position ', $w;
 if($markdown->track_lines
 && $markdown->GetPositionLine($w, $line, $column))
 echo ' line '.$line.' column '.$column;
 echo "</p>\n";
 }
 if(!defined('__TEST'))
 echo '</body></html>';
 ?>
 |