aboutsummaryrefslogtreecommitdiffhomepage
path: root/inc/3rdparty/htmlpurifier/HTMLPurifier/Node
diff options
context:
space:
mode:
authorNicolas LÅ“uillet <nicolas.loeuillet@gmail.com>2014-02-21 15:43:14 +0100
committerNicolas LÅ“uillet <nicolas.loeuillet@gmail.com>2014-02-21 15:43:14 +0100
commitd4949327efa15b492cab1bef3fe074290a328a17 (patch)
treee89e0322bb1f1b06d663fd10fdded21bac867e5d /inc/3rdparty/htmlpurifier/HTMLPurifier/Node
parentc9bd17a1007bb78e5de0775efca01df0fb515031 (diff)
downloadwallabag-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')
-rw-r--r--inc/3rdparty/htmlpurifier/HTMLPurifier/Node/Comment.php36
-rw-r--r--inc/3rdparty/htmlpurifier/HTMLPurifier/Node/Element.php59
-rw-r--r--inc/3rdparty/htmlpurifier/HTMLPurifier/Node/Text.php54
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 */
6class 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 */
6class 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 */
12class 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