| [ Index ] |
PHP Cross Reference of Akelos Framework |
[Summary view] [Print] [Text view]
1 <?php 2 /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */ 3 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 // +----------------------------------------------------------------------+ 10 11 /** 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> 17 */ 18 19 class AkHtmlToText 20 { 21 function convert() 22 { 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))); 26 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))); 30 31 return trim($this->_simplifyMarkdown($markdown)); 32 } 33 34 35 36 function _simplifyMarkdown($markdown) 37 { 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]); 43 if($match[0] == '#'){ 44 if($simple_markdown[0] == '#'){ // h3, h4, h5 45 $markdown = str_replace($match,'##'.$simple_markdown,$markdown); 46 }else{ 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); 50 } 51 } 52 } 53 } 54 } 55 return $markdown; 56 } 57 } 58 59 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Mon Oct 27 12:43:49 2008 | Cross-referenced by PHPXref 0.6 |