| <?php␊ | 
| /* -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */␊ | 
| /*␊ | 
| # ***** BEGIN LICENSE BLOCK *****␊ | 
| # This file is part of InDefero, an open source project management application.␊ | 
| # Copyright (C) 2008 Céondo Ltd and contributors.␊ | 
| #␊ | 
| # InDefero is free software; you can redistribute it and/or modify␊ | 
| # it under the terms of the GNU General Public License as published by␊ | 
| # the Free Software Foundation; either version 2 of the License, or␊ | 
| # (at your option) any later version.␊ | 
| #␊ | 
| # InDefero is distributed in the hope that it will be useful,␊ | 
| # but WITHOUT ANY WARRANTY; without even the implied warranty of␊ | 
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the␊ | 
| # GNU General Public License for more details.␊ | 
| #␊ | 
| # You should have received a copy of the GNU General Public License␊ | 
| # along with this program; if not, write to the Free Software␊ | 
| # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA␊ | 
| #␊ | 
| # ***** END LICENSE BLOCK ***** */␊ | 
| /* -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */␊ | 
| /*␊ | 
| # ***** BEGIN LICENSE BLOCK *****␊ | 
| # This file is part of InDefero, an open source project management application.␊ | 
| # Copyright (C) 2008 Céondo Ltd and contributors.␊ | 
| #␊ | 
| # InDefero is free software; you can redistribute it and/or modify␊ | 
| # it under the terms of the GNU General Public License as published by␊ | 
| # the Free Software Foundation; either version 2 of the License, or␊ | 
| # (at your option) any later version.␊ | 
| #␊ | 
| # InDefero is distributed in the hope that it will be useful,␊ | 
| # but WITHOUT ANY WARRANTY; without even the implied warranty of␊ | 
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the␊ | 
| # GNU General Public License for more details.␊ | 
| #␊ | 
| # You should have received a copy of the GNU General Public License␊ | 
| # along with this program; if not, write to the Free Software␊ | 
| # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA␊ | 
| #␊ | 
| # ***** END LICENSE BLOCK ***** */␊ | 
| ␊ | 
| /**␊ | 
| * Strict class to only allow entities.␊ | 
| */␊ | 
| /**␊ | 
| * Should be renamed MarkdownPostfilter.␊ | 
| */␊ | 
| class IDF_Template_MarkdownPrefilter extends Pluf_Text_HTML_Filter␊ | 
| {␊ | 
| public $allowed = array();␊ | 
| public $always_close = array();␊ | 
| public $remove_blanks = array();␊ | 
| public $allowed_entities = array(␊ | 
| 'amp',␊ | 
| 'gt',␊ | 
|  | 
| 'upsih', ␊ | 
| 'piv',␊ | 
| );␊ | 
| ␊ | 
| public $allowed = array(␊ | 
| 'img' => array('src', 'class', 'alt', 'height', 'width'),␊ | 
| 'strong' => array(),␊ | 
| 'em' => array(),␊ | 
| 'b' => array(),␊ | 
| 'i' => array(),␊ | 
| 'ul' => array(),␊ | 
| 'ol' => array(),␊ | 
| 'li' => array(),␊ | 
| 'p' => array('align', 'class'),␊ | 
| 'div' => array('align', 'class'),␊ | 
| 'br' => array(),␊ | 
| 'pre' => array(),␊ | 
| 'table' => array('summary'),␊ | 
| 'caption' => array(),␊ | 
| 'tr' => array(),␊ | 
| 'td' => array('style'),␊ | 
| 'h1' => array(),␊ | 
| 'h2' => array(),␊ | 
| 'h3' => array(),␊ | 
| 'hr' => array(),␊ | 
| 'address' => array(),␊ | 
| 'a' => array('href', 'title', 'rel'),␊ | 
| 'blockquote' => array(),␊ | 
| );␊ | 
| // tags which should always be self-closing (e.g. "<img />")␊ | 
| public $no_close = array(␊ | 
| 'img',␊ | 
| 'br',␊ | 
| 'hr',␊ | 
| );␊ | 
| ␊ | 
| // tags which must always have seperate opening and closing tags␊ | 
| // (e.g. "<b></b>")␊ | 
| public $always_close = array(␊ | 
| 'strong',␊ | 
| 'em',␊ | 
| 'b',␊ | 
| 'i',␊ | 
| 'ul',␊ | 
| 'ol',␊ | 
| 'li',␊ | 
| 'p',␊ | 
| 'table',␊ | 
| 'caption',␊ | 
| 'tr',␊ | 
| 'td',␊ | 
| 'span',␊ | 
| 'a',␊ | 
| 'blockquote',␊ | 
| 'pre',␊ | 
| 'iframe',␊ | 
| 'h1', 'h2', 'h3', 'address'␊ | 
| );␊ | 
| // attributes which should be checked for valid protocols␊ | 
| public $protocol_attributes = array(␊ | 
| 'src',␊ | 
| 'href',␊ | 
| );␊ | 
| // protocols which are allowed␊ | 
| public $allowed_protocols = array(␊ | 
| 'http',␊ | 
| 'https',␊ | 
| 'ftp',␊ | 
| 'mailto',␊ | 
| );␊ | 
| // tags which should be removed if they contain no content␊ | 
| // (e.g. "<b></b>" or "<b />")␊ | 
| public $remove_blanks = array(␊ | 
| 'p',␊ | 
| 'strong',␊ | 
| 'em',␊ | 
| 'caption',␊ | 
| 'li',␊ | 
| 'span',␊ | 
| );␊ | 
| }␊ |