diff options
author | Nicolas LÅ“uillet <nicolas.loeuillet@gmail.com> | 2014-02-21 15:43:14 +0100 |
---|---|---|
committer | Nicolas LÅ“uillet <nicolas.loeuillet@gmail.com> | 2014-02-21 15:43:14 +0100 |
commit | d4949327efa15b492cab1bef3fe074290a328a17 (patch) | |
tree | e89e0322bb1f1b06d663fd10fdded21bac867e5d /inc/3rdparty/htmlpurifier/HTMLPurifier/Node | |
parent | c9bd17a1007bb78e5de0775efca01df0fb515031 (diff) | |
download | wallabag-d4949327efa15b492cab1bef3fe074290a328a17.tar.gz wallabag-d4949327efa15b492cab1bef3fe074290a328a17.tar.zst wallabag-d4949327efa15b492cab1bef3fe074290a328a17.zip |
[add] HTML Purifier added to clean code
Diffstat (limited to 'inc/3rdparty/htmlpurifier/HTMLPurifier/Node')
3 files changed, 149 insertions, 0 deletions
diff --git a/inc/3rdparty/htmlpurifier/HTMLPurifier/Node/Comment.php b/inc/3rdparty/htmlpurifier/HTMLPurifier/Node/Comment.php new file mode 100644 index 00000000..11f3245d --- /dev/null +++ b/inc/3rdparty/htmlpurifier/HTMLPurifier/Node/Comment.php | |||
@@ -0,0 +1,36 @@ | |||
1 | <?php | ||
2 | |||
3 | /** | ||
4 | * Concrete comment node class. | ||
5 | */ | ||
6 | class HTMLPurifier_Node_Comment extends HTMLPurifier_Node | ||
7 | { | ||
8 | /** | ||
9 | * Character data within comment. | ||
10 | * @type string | ||
11 | */ | ||
12 | public $data; | ||
13 | |||
14 | /** | ||
15 | * @type bool | ||
16 | */ | ||
17 | public $is_whitespace = true; | ||
18 | |||
19 | /** | ||
20 | * Transparent constructor. | ||
21 | * | ||
22 | * @param string $data String comment data. | ||
23 | * @param int $line | ||
24 | * @param int $col | ||
25 | */ | ||
26 | public function __construct($data, $line = null, $col = null) | ||
27 | { | ||
28 | $this->data = $data; | ||
29 | $this->line = $line; | ||
30 | $this->col = $col; | ||
31 | } | ||
32 | |||
33 | public function toTokenPair() { | ||
34 | return array(new HTMLPurifier_Token_Comment($this->data, $this->line, $this->col), null); | ||
35 | } | ||
36 | } | ||
diff --git a/inc/3rdparty/htmlpurifier/HTMLPurifier/Node/Element.php b/inc/3rdparty/htmlpurifier/HTMLPurifier/Node/Element.php new file mode 100644 index 00000000..7db4d025 --- /dev/null +++ b/inc/3rdparty/htmlpurifier/HTMLPurifier/Node/Element.php | |||
@@ -0,0 +1,59 @@ | |||
1 | <?php | ||
2 | |||
3 | /** | ||
4 | * Concrete element node class. | ||
5 | */ | ||
6 | class HTMLPurifier_Node_Element extends HTMLPurifier_Node | ||
7 | { | ||
8 | /** | ||
9 | * The lower-case name of the tag, like 'a', 'b' or 'blockquote'. | ||
10 | * | ||
11 | * @note Strictly speaking, XML tags are case sensitive, so we shouldn't | ||
12 | * be lower-casing them, but these tokens cater to HTML tags, which are | ||
13 | * insensitive. | ||
14 | * @type string | ||
15 | */ | ||
16 | public $name; | ||
17 | |||
18 | /** | ||
19 | * Associative array of the node's attributes. | ||
20 | * @type array | ||
21 | */ | ||
22 | public $attr = array(); | ||
23 | |||
24 | /** | ||
25 | * List of child elements. | ||
26 | * @type array | ||
27 | */ | ||
28 | public $children = array(); | ||
29 | |||
30 | /** | ||
31 | * Does this use the <a></a> form or the </a> form, i.e. | ||
32 | * is it a pair of start/end tokens or an empty token. | ||
33 | * @bool | ||
34 | */ | ||
35 | public $empty = false; | ||
36 | |||
37 | public $endCol = null, $endLine = null, $endArmor = array(); | ||
38 | |||
39 | public function __construct($name, $attr = array(), $line = null, $col = null, $armor = array()) { | ||
40 | $this->name = $name; | ||
41 | $this->attr = $attr; | ||
42 | $this->line = $line; | ||
43 | $this->col = $col; | ||
44 | $this->armor = $armor; | ||
45 | } | ||
46 | |||
47 | public function toTokenPair() { | ||
48 | // XXX inefficiency here, normalization is not necessary | ||
49 | if ($this->empty) { | ||
50 | return array(new HTMLPurifier_Token_Empty($this->name, $this->attr, $this->line, $this->col, $this->armor), null); | ||
51 | } else { | ||
52 | $start = new HTMLPurifier_Token_Start($this->name, $this->attr, $this->line, $this->col, $this->armor); | ||
53 | $end = new HTMLPurifier_Token_End($this->name, array(), $this->endLine, $this->endCol, $this->endArmor); | ||
54 | //$end->start = $start; | ||
55 | return array($start, $end); | ||
56 | } | ||
57 | } | ||
58 | } | ||
59 | |||
diff --git a/inc/3rdparty/htmlpurifier/HTMLPurifier/Node/Text.php b/inc/3rdparty/htmlpurifier/HTMLPurifier/Node/Text.php new file mode 100644 index 00000000..f51d861a --- /dev/null +++ b/inc/3rdparty/htmlpurifier/HTMLPurifier/Node/Text.php | |||
@@ -0,0 +1,54 @@ | |||
1 | <?php | ||
2 | |||
3 | /** | ||
4 | * Concrete text token class. | ||
5 | * | ||
6 | * Text tokens comprise of regular parsed character data (PCDATA) and raw | ||
7 | * character data (from the CDATA sections). Internally, their | ||
8 | * data is parsed with all entities expanded. Surprisingly, the text token | ||
9 | * does have a "tag name" called #PCDATA, which is how the DTD represents it | ||
10 | * in permissible child nodes. | ||
11 | */ | ||
12 | class HTMLPurifier_Node_Text extends HTMLPurifier_Node | ||
13 | { | ||
14 | |||
15 | /** | ||
16 | * PCDATA tag name compatible with DTD, see | ||
17 | * HTMLPurifier_ChildDef_Custom for details. | ||
18 | * @type string | ||
19 | */ | ||
20 | public $name = '#PCDATA'; | ||
21 | |||
22 | /** | ||
23 | * @type string | ||
24 | */ | ||
25 | public $data; | ||
26 | /**< Parsed character data of text. */ | ||
27 | |||
28 | /** | ||
29 | * @type bool | ||
30 | */ | ||
31 | public $is_whitespace; | ||
32 | |||
33 | /**< Bool indicating if node is whitespace. */ | ||
34 | |||
35 | /** | ||
36 | * Constructor, accepts data and determines if it is whitespace. | ||
37 | * @param string $data String parsed character data. | ||
38 | * @param int $line | ||
39 | * @param int $col | ||
40 | */ | ||
41 | public function __construct($data, $is_whitespace, $line = null, $col = null) | ||
42 | { | ||
43 | $this->data = $data; | ||
44 | $this->is_whitespace = $is_whitespace; | ||
45 | $this->line = $line; | ||
46 | $this->col = $col; | ||
47 | } | ||
48 | |||
49 | public function toTokenPair() { | ||
50 | return array(new HTMLPurifier_Token_Text($this->data, $this->line, $this->col), null); | ||
51 | } | ||
52 | } | ||
53 | |||
54 | // vim: et sw=4 sts=4 | ||