| <?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',␊ |
| );␊ |
| }␊ |