<?php /* SVN FILE: $Id: _HamlMarkdownFilter.php 51 2010-04-14 12:05:03Z chris.l.yates $ */ /**

* Markdown Filter for {@link http://haml-lang.com/ Haml} class file.
* This filter is an abstract filter that must be extended.
* 
* @author                      Chris Yates <chris.l.yates@gmail.com>
* @copyright           Copyright (c) 2010 PBM Web Development
* @license                     http://phamlp.googlecode.com/files/license.txt
* @package                     PHamlP
* @subpackage  Haml.filters
*/

/**

* Markdown Filter for {@link http://haml-lang.com/ Haml} class.
* Parses the text with Markdown.
* 
* This is an abstract class that must be extended and the init() method
* implemented to provide the vendorPath if the vendor class is not imported
* elsewhere in the application (e.g. by a framework) and vendorClass if the
* default class name is not correct.
* @package                     PHamlP
* @subpackage  Haml.filters
*/

abstract class _HamlMarkdownFilter extends HamlBaseFilter {

/**
 * @var string Path to Markdown Parser
 */
protected $vendorPath;
/**
 * @var string Markdown class
 * Override this value if the class name is different in your environment
 */
protected $vendorClass = 'MarkdownExtra_Parser';

/**
 * Child classes must implement this method.
 * Typically the child class will set $vendorPath and $vendorClass
 */
public function init() {}

/**
 * Run the filter
 * @param string text to filter
 * @return string filtered text
 */
public function run($text) {
        return '<?php   '.(!empty($this->vendorPath)?'require_once "'.$this->vendorPath.'";':'').'$markdown___=new '.$this->vendorClass.'();echo  $markdown___->safeTransform("'.preg_replace(HamlParser::MATCH_INTERPOLATION, '".\1."', $text).'");?>';
}

}