<?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>'; 
?>
 
 |