2 /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
4 // +----------------------------------------------------------------------+
5 // | Akelos Framework - http://www.akelos.org |
6 // +----------------------------------------------------------------------+
7 // | Copyright (c) 2002-2006, Akelos Media, S.L. & Bermi Ferrer Martinez |
8 // | Released under the GNU Lesser General Public License, see LICENSE.txt|
9 // +----------------------------------------------------------------------+
12 * @package ActiveSupport
13 * @subpackage Converters
14 * @author Bermi Ferrer <bermi a.t akelos c.om>
15 * @copyright Copyright (c) 2002-2006, Akelos Media, S.L. http://www.akelos.org
16 * @license GNU Lesser General Public License <http://www.gnu.org/copyleft/lesser.html>
23 require_once(AK_VENDOR_DIR
.DS
.'TextParsers'.DS
.'html2text.php');
24 $Converter = new html2text(true, 0, false);
25 $markdown = str_replace('__AK:AMP__','&', $Converter->load_string(str_replace('&','__AK:AMP__', $this->source
)));
27 require_once(AK_VENDOR_DIR
.DS
.'TextParsers'.DS
.'smartypants.php');
28 $Smartypants = new SmartyPantsTypographer_Parser();
29 $markdown = Ak
::html_entity_decode(strip_tags($Smartypants->transform($markdown)));
31 return trim($this->_simplifyMarkdown($markdown));
36 function _simplifyMarkdown($markdown)
38 $markdown = trim($markdown);
39 if(strstr($markdown,"\n")){
40 if(preg_match_all('/([ \t]*[#]{1,2})(.*)(\{#[a-z0-9_]+}|$)+/i',$markdown,$matches)){
41 foreach ($matches[0] as $k=>$match){
42 $simple_markdown = trim($matches[2][$k]);
44 if($simple_markdown[0] == '#'){ // h3, h4, h5
45 $markdown = str_replace($match,'##'.$simple_markdown,$markdown);
47 $separator = strlen($matches[1][$k]) === 1 ?
'=' : '-';
48 $simple_markdown .= "\n".str_repeat($separator,strlen($simple_markdown));
49 $markdown = str_replace($match,$simple_markdown,$markdown);