selectolax 0.4.4__cp310-cp310-macosx_10_9_x86_64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- selectolax/__init__.py +8 -0
- selectolax/base.pxi +4 -0
- selectolax/lexbor/attrs.pxi +120 -0
- selectolax/lexbor/node.pxi +1112 -0
- selectolax/lexbor/node_remove.pxi +29 -0
- selectolax/lexbor/selection.pxi +215 -0
- selectolax/lexbor/util.pxi +20 -0
- selectolax/lexbor.c +53768 -0
- selectolax/lexbor.cpython-310-darwin.so +0 -0
- selectolax/lexbor.pxd +599 -0
- selectolax/lexbor.pyi +1248 -0
- selectolax/lexbor.pyx +677 -0
- selectolax/modest/node.pxi +991 -0
- selectolax/modest/selection.pxi +195 -0
- selectolax/modest/util.pxi +20 -0
- selectolax/parser.c +47848 -0
- selectolax/parser.cpython-310-darwin.so +0 -0
- selectolax/parser.pxd +578 -0
- selectolax/parser.pyi +770 -0
- selectolax/parser.pyx +443 -0
- selectolax/py.typed +0 -0
- selectolax/utils.pxi +117 -0
- selectolax-0.4.4.dist-info/METADATA +222 -0
- selectolax-0.4.4.dist-info/RECORD +27 -0
- selectolax-0.4.4.dist-info/WHEEL +6 -0
- selectolax-0.4.4.dist-info/licenses/LICENSE +10 -0
- selectolax-0.4.4.dist-info/top_level.txt +1 -0
|
Binary file
|
selectolax/lexbor.pxd
ADDED
|
@@ -0,0 +1,599 @@
|
|
|
1
|
+
from libc.stdint cimport uint8_t, uint32_t, uintptr_t
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
cdef extern from "lexbor/core/core.h" nogil:
|
|
5
|
+
ctypedef uint32_t lxb_codepoint_t
|
|
6
|
+
ctypedef unsigned char lxb_char_t
|
|
7
|
+
ctypedef unsigned int lxb_status_t
|
|
8
|
+
ctypedef enum lexbor_status_t:
|
|
9
|
+
LXB_STATUS_OK = 0x0000
|
|
10
|
+
LXB_STATUS_ERROR = 0x0001
|
|
11
|
+
LXB_STATUS_ERROR_MEMORY_ALLOCATION
|
|
12
|
+
LXB_STATUS_ERROR_OBJECT_IS_NULL
|
|
13
|
+
LXB_STATUS_ERROR_SMALL_BUFFER
|
|
14
|
+
LXB_STATUS_ERROR_INCOMPLETE_OBJECT
|
|
15
|
+
LXB_STATUS_ERROR_NO_FREE_SLOT
|
|
16
|
+
LXB_STATUS_ERROR_TOO_SMALL_SIZE
|
|
17
|
+
LXB_STATUS_ERROR_NOT_EXISTS
|
|
18
|
+
LXB_STATUS_ERROR_WRONG_ARGS
|
|
19
|
+
LXB_STATUS_ERROR_WRONG_STAGE
|
|
20
|
+
LXB_STATUS_ERROR_UNEXPECTED_RESULT
|
|
21
|
+
LXB_STATUS_ERROR_UNEXPECTED_DATA
|
|
22
|
+
LXB_STATUS_ERROR_OVERFLOW
|
|
23
|
+
LXB_STATUS_CONTINUE
|
|
24
|
+
LXB_STATUS_SMALL_BUFFER
|
|
25
|
+
LXB_STATUS_ABORTED
|
|
26
|
+
LXB_STATUS_STOPPED
|
|
27
|
+
LXB_STATUS_NEXT
|
|
28
|
+
LXB_STATUS_STOP
|
|
29
|
+
|
|
30
|
+
lexbor_str_t* lexbor_str_destroy(lexbor_str_t *str, lexbor_mraw_t *mraw, bint destroy_obj)
|
|
31
|
+
lexbor_str_t* lexbor_str_create()
|
|
32
|
+
lxb_char_t * lexbor_str_data_noi(lexbor_str_t *str)
|
|
33
|
+
|
|
34
|
+
cdef extern from "lexbor/html/html.h" nogil:
|
|
35
|
+
ctypedef unsigned int lxb_html_document_opt_t
|
|
36
|
+
|
|
37
|
+
ctypedef struct lxb_html_tokenizer_t
|
|
38
|
+
ctypedef struct lxb_html_form_element_t
|
|
39
|
+
ctypedef struct lxb_html_head_element_t
|
|
40
|
+
ctypedef struct lxb_html_body_element_t
|
|
41
|
+
ctypedef struct lxb_dom_element_t
|
|
42
|
+
ctypedef struct lexbor_mraw_t
|
|
43
|
+
ctypedef struct lexbor_hash_t
|
|
44
|
+
ctypedef struct lxb_dom_document_type_t
|
|
45
|
+
ctypedef void lxb_dom_interface_t
|
|
46
|
+
ctypedef uintptr_t lxb_tag_id_t
|
|
47
|
+
ctypedef uintptr_t lxb_ns_id_t
|
|
48
|
+
ctypedef lxb_dom_interface_t *(*lxb_dom_interface_destroy_f)(lxb_dom_interface_t *intrfc)
|
|
49
|
+
ctypedef lxb_dom_interface_t *(*lxb_dom_interface_create_f)(lxb_dom_document_t *document, lxb_tag_id_t tag_id,
|
|
50
|
+
lxb_ns_id_t ns)
|
|
51
|
+
|
|
52
|
+
ctypedef struct lxb_dom_event_target_t:
|
|
53
|
+
void *events
|
|
54
|
+
|
|
55
|
+
ctypedef struct lexbor_str_t:
|
|
56
|
+
lxb_char_t *data
|
|
57
|
+
size_t length
|
|
58
|
+
|
|
59
|
+
ctypedef struct lxb_dom_node_t:
|
|
60
|
+
lxb_dom_event_target_t event_target
|
|
61
|
+
|
|
62
|
+
uintptr_t local_name
|
|
63
|
+
uintptr_t prefix
|
|
64
|
+
uintptr_t ns
|
|
65
|
+
|
|
66
|
+
lxb_dom_document_t *owner_document
|
|
67
|
+
|
|
68
|
+
lxb_dom_node_t *next
|
|
69
|
+
lxb_dom_node_t *prev
|
|
70
|
+
lxb_dom_node_t *parent
|
|
71
|
+
lxb_dom_node_t *first_child
|
|
72
|
+
lxb_dom_node_t *last_child
|
|
73
|
+
void *user
|
|
74
|
+
|
|
75
|
+
lxb_dom_node_type_t type
|
|
76
|
+
|
|
77
|
+
ctypedef struct lxb_dom_document_t:
|
|
78
|
+
lxb_dom_node_t node
|
|
79
|
+
|
|
80
|
+
lxb_dom_document_cmode_t compat_mode
|
|
81
|
+
lxb_dom_document_dtype_t type
|
|
82
|
+
|
|
83
|
+
lxb_dom_document_type_t *doctype
|
|
84
|
+
lxb_dom_element_t *element
|
|
85
|
+
|
|
86
|
+
lxb_dom_interface_create_f create_interface
|
|
87
|
+
lxb_dom_interface_destroy_f destroy_interface
|
|
88
|
+
|
|
89
|
+
lexbor_mraw_t *mraw
|
|
90
|
+
lexbor_mraw_t *text
|
|
91
|
+
lexbor_hash_t *tags
|
|
92
|
+
lexbor_hash_t *attrs
|
|
93
|
+
lexbor_hash_t *prefix
|
|
94
|
+
lexbor_hash_t *ns
|
|
95
|
+
void *parser
|
|
96
|
+
void *user
|
|
97
|
+
|
|
98
|
+
bint tags_inherited
|
|
99
|
+
bint ns_inherited
|
|
100
|
+
|
|
101
|
+
bint scripting
|
|
102
|
+
|
|
103
|
+
ctypedef struct lxb_html_document_t:
|
|
104
|
+
lxb_dom_document_t dom_document
|
|
105
|
+
|
|
106
|
+
void *iframe_srcdoc
|
|
107
|
+
|
|
108
|
+
lxb_html_head_element_t *head
|
|
109
|
+
lxb_html_body_element_t *body
|
|
110
|
+
lxb_html_document_ready_state_t ready_state
|
|
111
|
+
lxb_html_document_opt_t opt
|
|
112
|
+
|
|
113
|
+
ctypedef enum lxb_html_document_ready_state_t:
|
|
114
|
+
LXB_HTML_DOCUMENT_READY_STATE_UNDEF = 0x00
|
|
115
|
+
LXB_HTML_DOCUMENT_READY_STATE_LOADING = 0x01
|
|
116
|
+
LXB_HTML_DOCUMENT_READY_STATE_INTERACTIVE = 0x02
|
|
117
|
+
LXB_HTML_DOCUMENT_READY_STATE_COMPLETE = 0x03
|
|
118
|
+
|
|
119
|
+
ctypedef enum lxb_html_parser_state_t:
|
|
120
|
+
LXB_HTML_PARSER_STATE_BEGIN = 0x00
|
|
121
|
+
LXB_HTML_PARSER_STATE_PROCESS = 0x01
|
|
122
|
+
LXB_HTML_PARSER_STATE_END = 0x02
|
|
123
|
+
LXB_HTML_PARSER_STATE_FRAGMENT_PROCESS = 0x03
|
|
124
|
+
LXB_HTML_PARSER_STATE_ERROR = 0x04
|
|
125
|
+
|
|
126
|
+
ctypedef enum lxb_dom_node_type_t:
|
|
127
|
+
LXB_DOM_NODE_TYPE_ELEMENT = 0x01
|
|
128
|
+
LXB_DOM_NODE_TYPE_ATTRIBUTE = 0x02
|
|
129
|
+
LXB_DOM_NODE_TYPE_TEXT = 0x03
|
|
130
|
+
LXB_DOM_NODE_TYPE_CDATA_SECTION = 0x04
|
|
131
|
+
LXB_DOM_NODE_TYPE_ENTITY_REFERENCE = 0x05
|
|
132
|
+
LXB_DOM_NODE_TYPE_ENTITY = 0x06
|
|
133
|
+
LXB_DOM_NODE_TYPE_PROCESSING_INSTRUCTION = 0x07
|
|
134
|
+
LXB_DOM_NODE_TYPE_COMMENT = 0x08
|
|
135
|
+
LXB_DOM_NODE_TYPE_DOCUMENT = 0x09
|
|
136
|
+
LXB_DOM_NODE_TYPE_DOCUMENT_TYPE = 0x0A
|
|
137
|
+
LXB_DOM_NODE_TYPE_DOCUMENT_FRAGMENT = 0x0B
|
|
138
|
+
LXB_DOM_NODE_TYPE_NOTATION = 0x0C
|
|
139
|
+
LXB_DOM_NODE_TYPE_LAST_ENTRY = 0x0D
|
|
140
|
+
|
|
141
|
+
ctypedef enum lxb_dom_document_cmode_t:
|
|
142
|
+
LXB_DOM_DOCUMENT_CMODE_NO_QUIRKS = 0x00
|
|
143
|
+
LXB_DOM_DOCUMENT_CMODE_QUIRKS = 0x01
|
|
144
|
+
LXB_DOM_DOCUMENT_CMODE_LIMITED_QUIRKS = 0x02
|
|
145
|
+
|
|
146
|
+
ctypedef enum lxb_dom_document_dtype_t:
|
|
147
|
+
LXB_DOM_DOCUMENT_DTYPE_UNDEF = 0x00,
|
|
148
|
+
LXB_DOM_DOCUMENT_DTYPE_HTML = 0x01,
|
|
149
|
+
LXB_DOM_DOCUMENT_DTYPE_XML = 0x02
|
|
150
|
+
|
|
151
|
+
ctypedef enum lxb_html_serialize_opt_t:
|
|
152
|
+
LXB_HTML_SERIALIZE_OPT_UNDEF = 0x00
|
|
153
|
+
LXB_HTML_SERIALIZE_OPT_SKIP_WS_NODES = 0x01
|
|
154
|
+
LXB_HTML_SERIALIZE_OPT_SKIP_COMMENT = 0x02
|
|
155
|
+
LXB_HTML_SERIALIZE_OPT_RAW = 0x04
|
|
156
|
+
LXB_HTML_SERIALIZE_OPT_WITHOUT_CLOSING = 0x08
|
|
157
|
+
LXB_HTML_SERIALIZE_OPT_TAG_WITH_NS = 0x10
|
|
158
|
+
LXB_HTML_SERIALIZE_OPT_WITHOUT_TEXT_INDENT = 0x20
|
|
159
|
+
LXB_HTML_SERIALIZE_OPT_FULL_DOCTYPE = 0x40
|
|
160
|
+
|
|
161
|
+
ctypedef struct lexbor_array_t:
|
|
162
|
+
void **list
|
|
163
|
+
size_t size
|
|
164
|
+
size_t length
|
|
165
|
+
|
|
166
|
+
ctypedef struct lexbor_array_obj_t:
|
|
167
|
+
uint8_t *list
|
|
168
|
+
size_t size
|
|
169
|
+
size_t length
|
|
170
|
+
size_t struct_size
|
|
171
|
+
|
|
172
|
+
ctypedef struct lxb_html_tree_pending_table_t
|
|
173
|
+
ctypedef bint lxb_html_tree_insertion_mode_f
|
|
174
|
+
ctypedef lxb_status_t lxb_html_tree_append_attr_f
|
|
175
|
+
|
|
176
|
+
ctypedef struct lxb_html_tree_t:
|
|
177
|
+
|
|
178
|
+
lxb_html_tokenizer_t *tkz_ref
|
|
179
|
+
|
|
180
|
+
lxb_html_document_t *document
|
|
181
|
+
lxb_dom_node_t *fragment
|
|
182
|
+
|
|
183
|
+
lxb_html_form_element_t *form
|
|
184
|
+
|
|
185
|
+
lexbor_array_t *open_elements
|
|
186
|
+
lexbor_array_t *active_formatting
|
|
187
|
+
lexbor_array_obj_t *template_insertion_modes
|
|
188
|
+
|
|
189
|
+
lxb_html_tree_pending_table_t *pending_table
|
|
190
|
+
|
|
191
|
+
lexbor_array_obj_t *parse_errors
|
|
192
|
+
|
|
193
|
+
bint foster_parenting
|
|
194
|
+
bint frameset_ok
|
|
195
|
+
bint scripting
|
|
196
|
+
|
|
197
|
+
lxb_html_tree_insertion_mode_f mode
|
|
198
|
+
lxb_html_tree_insertion_mode_f original_mode
|
|
199
|
+
lxb_html_tree_append_attr_f before_append_attr
|
|
200
|
+
|
|
201
|
+
lxb_status_t status
|
|
202
|
+
|
|
203
|
+
size_t ref_count
|
|
204
|
+
|
|
205
|
+
ctypedef struct lxb_html_parser_t:
|
|
206
|
+
lxb_html_tokenizer_t *tkz
|
|
207
|
+
lxb_html_tree_t *tree
|
|
208
|
+
lxb_html_tree_t *original_tree
|
|
209
|
+
|
|
210
|
+
lxb_dom_node_t *root
|
|
211
|
+
lxb_dom_node_t *form
|
|
212
|
+
|
|
213
|
+
lxb_html_parser_state_t state
|
|
214
|
+
lxb_status_t status
|
|
215
|
+
|
|
216
|
+
size_t ref_count
|
|
217
|
+
|
|
218
|
+
ctypedef struct lxb_html_element_t
|
|
219
|
+
|
|
220
|
+
# Functions
|
|
221
|
+
lxb_html_document_t * lxb_html_document_create()
|
|
222
|
+
lxb_html_element_t * lxb_html_document_create_element(lxb_html_document_t *document,
|
|
223
|
+
const lxb_char_t *local_name, size_t lname_len,
|
|
224
|
+
void *reserved_for_opt)
|
|
225
|
+
lxb_status_t lxb_html_document_parse(lxb_html_document_t *document, const lxb_char_t *html, size_t size)
|
|
226
|
+
lxb_dom_node_t * lxb_html_document_parse_fragment(lxb_html_document_t *document,
|
|
227
|
+
lxb_dom_element_t *element,
|
|
228
|
+
const lxb_char_t *html,
|
|
229
|
+
size_t size)
|
|
230
|
+
lxb_html_body_element_t * lxb_html_document_body_element_noi(lxb_html_document_t *document)
|
|
231
|
+
lxb_html_head_element_t * lxb_html_document_head_element_noi(lxb_html_document_t *document)
|
|
232
|
+
lxb_dom_element_t * lxb_dom_document_element(lxb_dom_document_t *document)
|
|
233
|
+
|
|
234
|
+
lxb_status_t lxb_html_serialize_tree_str(lxb_dom_node_t *node, lexbor_str_t *str)
|
|
235
|
+
lxb_status_t lxb_html_serialize_deep_str(lxb_dom_node_t *node, lexbor_str_t *str)
|
|
236
|
+
lxb_html_element_t* lxb_html_element_inner_html_set(lxb_html_element_t *element,
|
|
237
|
+
const lxb_char_t *html, size_t size)
|
|
238
|
+
|
|
239
|
+
cdef class LexborNode:
|
|
240
|
+
cdef:
|
|
241
|
+
lxb_dom_node_t *node
|
|
242
|
+
public LexborHTMLParser parser
|
|
243
|
+
cdef bint _is_node_type(self, lxb_dom_node_type_t expected_type)
|
|
244
|
+
cdef bint _is_empty_text_node(self, lxb_dom_node_t *node)
|
|
245
|
+
|
|
246
|
+
@staticmethod
|
|
247
|
+
cdef LexborNode new(lxb_dom_node_t *node, LexborHTMLParser parser)
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
cdef class LexborCSSSelector:
|
|
251
|
+
cdef lxb_css_parser_t* parser
|
|
252
|
+
cdef lxb_selectors_t * selectors
|
|
253
|
+
cdef lxb_css_selectors_t * css_selectors
|
|
254
|
+
cdef public list results
|
|
255
|
+
cdef public LexborNode current_node
|
|
256
|
+
cdef int _create_css_parser(self) except -1
|
|
257
|
+
cpdef list find(self, str query, LexborNode node)
|
|
258
|
+
cpdef list find_first(self, str query, LexborNode node)
|
|
259
|
+
cpdef list _find(self, str query, LexborNode node, bint only_first)
|
|
260
|
+
cpdef int any_matches(self, str query, LexborNode node) except -1
|
|
261
|
+
|
|
262
|
+
cdef class LexborHTMLParser:
|
|
263
|
+
cdef lxb_html_document_t *document
|
|
264
|
+
cdef bint _is_fragment
|
|
265
|
+
cdef public bytes raw_html
|
|
266
|
+
cdef LexborCSSSelector _selector
|
|
267
|
+
cdef inline void _new_html_document(self)
|
|
268
|
+
cdef inline lxb_status_t _parse_html_document(self, char *html, size_t html_len) nogil
|
|
269
|
+
cdef inline lxb_status_t _parse_html_fragment(self, char *html, size_t html_len) nogil
|
|
270
|
+
cdef int _parse_html(self, char *html, size_t html_len) except -1
|
|
271
|
+
cdef object cached_script_texts
|
|
272
|
+
cdef object cached_script_srcs
|
|
273
|
+
|
|
274
|
+
@staticmethod
|
|
275
|
+
cdef LexborHTMLParser from_document(lxb_html_document_t * document, bytes raw_html)
|
|
276
|
+
|
|
277
|
+
|
|
278
|
+
cdef extern from "lexbor/dom/dom.h" nogil:
|
|
279
|
+
ctypedef enum lexbor_action_t:
|
|
280
|
+
LEXBOR_ACTION_OK = 0x00
|
|
281
|
+
LEXBOR_ACTION_STOP = 0x01
|
|
282
|
+
LEXBOR_ACTION_NEXT = 0x02
|
|
283
|
+
|
|
284
|
+
ctypedef lexbor_action_t (*lxb_dom_node_simple_walker_f)(lxb_dom_node_t *node, void *ctx)
|
|
285
|
+
|
|
286
|
+
ctypedef struct lxb_dom_character_data_t:
|
|
287
|
+
lxb_dom_node_t node
|
|
288
|
+
lexbor_str_t data
|
|
289
|
+
|
|
290
|
+
ctypedef struct lxb_dom_text_t:
|
|
291
|
+
lxb_dom_character_data_t char_data
|
|
292
|
+
|
|
293
|
+
ctypedef uintptr_t lxb_dom_attr_id_t
|
|
294
|
+
ctypedef struct lxb_dom_collection_t:
|
|
295
|
+
lexbor_array_t array
|
|
296
|
+
lxb_dom_document_t *document
|
|
297
|
+
|
|
298
|
+
ctypedef struct lxb_dom_attr_t:
|
|
299
|
+
lxb_dom_node_t node
|
|
300
|
+
|
|
301
|
+
lxb_dom_attr_id_t upper_name
|
|
302
|
+
lxb_dom_attr_id_t qualified_name
|
|
303
|
+
|
|
304
|
+
lexbor_str_t *value
|
|
305
|
+
|
|
306
|
+
lxb_dom_element_t *owner
|
|
307
|
+
|
|
308
|
+
lxb_dom_attr_t *next
|
|
309
|
+
lxb_dom_attr_t *prev
|
|
310
|
+
|
|
311
|
+
lxb_dom_collection_t * lxb_dom_collection_make(lxb_dom_document_t *document, size_t start_list_size)
|
|
312
|
+
lxb_char_t * lxb_dom_node_text_content(lxb_dom_node_t *node, size_t *len)
|
|
313
|
+
lxb_status_t lxb_dom_node_text_content_set(lxb_dom_node_t *node, const lxb_char_t *content, size_t len)
|
|
314
|
+
bint lxb_dom_node_is_empty(lxb_dom_node_t *node)
|
|
315
|
+
void lxb_dom_node_remove(lxb_dom_node_t *node)
|
|
316
|
+
void * lxb_dom_document_destroy_text_noi(lxb_dom_document_t *document, lxb_char_t *text)
|
|
317
|
+
lxb_dom_node_t * lxb_dom_document_root(lxb_dom_document_t *document)
|
|
318
|
+
lxb_dom_element_t * lxb_dom_interface_element(lxb_dom_node_t *node)
|
|
319
|
+
lxb_char_t * lxb_dom_element_qualified_name(lxb_dom_element_t *element, size_t *len)
|
|
320
|
+
lxb_dom_node_t * lxb_dom_node_destroy(lxb_dom_node_t *node)
|
|
321
|
+
lxb_dom_node_t * lxb_dom_node_destroy_deep(lxb_dom_node_t *root)
|
|
322
|
+
lxb_dom_attr_t * lxb_dom_element_first_attribute_noi(lxb_dom_element_t *element)
|
|
323
|
+
|
|
324
|
+
const lxb_char_t * lxb_dom_attr_local_name_noi(lxb_dom_attr_t *attr, size_t *len)
|
|
325
|
+
const lxb_char_t * lxb_dom_attr_value_noi(lxb_dom_attr_t *attr, size_t *len)
|
|
326
|
+
|
|
327
|
+
lxb_dom_attr_t * lxb_dom_element_set_attribute(lxb_dom_element_t *element,
|
|
328
|
+
const lxb_char_t *qualified_name, size_t qn_len,
|
|
329
|
+
const lxb_char_t *value, size_t value_len)
|
|
330
|
+
lxb_status_t lxb_dom_element_remove_attribute(lxb_dom_element_t *element,
|
|
331
|
+
const lxb_char_t *qualified_name, size_t qn_len)
|
|
332
|
+
lxb_dom_attr_t * lxb_dom_element_attr_by_name(lxb_dom_element_t *element,
|
|
333
|
+
const lxb_char_t *qualified_name, size_t length)
|
|
334
|
+
lxb_tag_id_t lxb_dom_node_tag_id_noi(lxb_dom_node_t *node)
|
|
335
|
+
lxb_dom_node_t * lxb_dom_document_import_node(lxb_dom_document_t *doc, lxb_dom_node_t *node, bint deep)
|
|
336
|
+
void lxb_dom_node_insert_after(lxb_dom_node_t *to, lxb_dom_node_t *node)
|
|
337
|
+
lxb_status_t lxb_dom_node_replace_all(lxb_dom_node_t *parent, lxb_dom_node_t *node)
|
|
338
|
+
void lxb_dom_node_insert_child(lxb_dom_node_t *to, lxb_dom_node_t *node)
|
|
339
|
+
void lxb_dom_node_insert_before(lxb_dom_node_t *to, lxb_dom_node_t *node)
|
|
340
|
+
void lxb_dom_node_insert_after(lxb_dom_node_t *to, lxb_dom_node_t *node)
|
|
341
|
+
lxb_dom_text_t * lxb_dom_document_create_text_node(lxb_dom_document_t *document, const lxb_char_t *data, size_t len)
|
|
342
|
+
void lxb_dom_node_simple_walk(lxb_dom_node_t *root, lxb_dom_node_simple_walker_f walker_cb, void *ctx)
|
|
343
|
+
lxb_dom_node_t* lxb_dom_node_clone(lxb_dom_node_t *node, bint deep)
|
|
344
|
+
|
|
345
|
+
|
|
346
|
+
cdef extern from "lexbor/dom/interfaces/element.h" nogil:
|
|
347
|
+
lxb_status_t lxb_dom_elements_by_tag_name(lxb_dom_element_t *root, lxb_dom_collection_t *collection,
|
|
348
|
+
const lxb_char_t *qualified_name, size_t len)
|
|
349
|
+
|
|
350
|
+
|
|
351
|
+
cdef extern from "lexbor/dom/interfaces/document.h" nogil:
|
|
352
|
+
lxb_html_document_t * lxb_html_document_destroy(lxb_html_document_t *document)
|
|
353
|
+
|
|
354
|
+
|
|
355
|
+
cdef extern from "lexbor/dom/collection.h" nogil:
|
|
356
|
+
size_t lxb_dom_collection_length_noi(lxb_dom_collection_t *col)
|
|
357
|
+
|
|
358
|
+
lxb_dom_element_t * lxb_dom_collection_element_noi(lxb_dom_collection_t *col, size_t idx)
|
|
359
|
+
lxb_dom_collection_t * lxb_dom_collection_destroy(lxb_dom_collection_t *col, bint self_destroy)
|
|
360
|
+
|
|
361
|
+
|
|
362
|
+
cdef extern from "lexbor/css/css.h" nogil:
|
|
363
|
+
ctypedef struct lxb_css_parser_t:
|
|
364
|
+
lxb_css_memory_t* memory
|
|
365
|
+
ctypedef struct lxb_css_syntax_tokenizer_t
|
|
366
|
+
ctypedef struct lxb_css_memory_t
|
|
367
|
+
|
|
368
|
+
lxb_css_parser_t * lxb_css_parser_create()
|
|
369
|
+
lxb_status_t lxb_css_parser_init(lxb_css_parser_t *parser, lxb_css_syntax_tokenizer_t *tkz)
|
|
370
|
+
lxb_css_parser_t * lxb_css_parser_destroy(lxb_css_parser_t *parser, bint self_destroy)
|
|
371
|
+
lxb_css_memory_t * lxb_css_memory_destroy(lxb_css_memory_t *memory, bint self_destroy)
|
|
372
|
+
void lxb_css_selector_list_destroy_memory(lxb_css_selector_list_t *list)
|
|
373
|
+
|
|
374
|
+
|
|
375
|
+
cdef extern from "lexbor/tag/tag.h" nogil:
|
|
376
|
+
ctypedef enum lxb_tag_id_enum_t:
|
|
377
|
+
LXB_TAG__UNDEF = 0x0000
|
|
378
|
+
LXB_TAG__END_OF_FILE = 0x0001
|
|
379
|
+
LXB_TAG__TEXT = 0x0002
|
|
380
|
+
LXB_TAG__DOCUMENT = 0x0003
|
|
381
|
+
LXB_TAG__EM_COMMENT = 0x0004
|
|
382
|
+
LXB_TAG__EM_DOCTYPE = 0x0005
|
|
383
|
+
LXB_TAG_A = 0x0006
|
|
384
|
+
LXB_TAG_ABBR = 0x0007
|
|
385
|
+
LXB_TAG_ACRONYM = 0x0008
|
|
386
|
+
LXB_TAG_ADDRESS = 0x0009
|
|
387
|
+
LXB_TAG_ALTGLYPH = 0x000a
|
|
388
|
+
LXB_TAG_ALTGLYPHDEF = 0x000b
|
|
389
|
+
LXB_TAG_ALTGLYPHITEM = 0x000c
|
|
390
|
+
LXB_TAG_ANIMATECOLOR = 0x000d
|
|
391
|
+
LXB_TAG_ANIMATEMOTION = 0x000e
|
|
392
|
+
LXB_TAG_ANIMATETRANSFORM = 0x000f
|
|
393
|
+
LXB_TAG_ANNOTATION_XML = 0x0010
|
|
394
|
+
LXB_TAG_APPLET = 0x0011
|
|
395
|
+
LXB_TAG_AREA = 0x0012
|
|
396
|
+
LXB_TAG_ARTICLE = 0x0013
|
|
397
|
+
LXB_TAG_ASIDE = 0x0014
|
|
398
|
+
LXB_TAG_AUDIO = 0x0015
|
|
399
|
+
LXB_TAG_B = 0x0016
|
|
400
|
+
LXB_TAG_BASE = 0x0017
|
|
401
|
+
LXB_TAG_BASEFONT = 0x0018
|
|
402
|
+
LXB_TAG_BDI = 0x0019
|
|
403
|
+
LXB_TAG_BDO = 0x001a
|
|
404
|
+
LXB_TAG_BGSOUND = 0x001b
|
|
405
|
+
LXB_TAG_BIG = 0x001c
|
|
406
|
+
LXB_TAG_BLINK = 0x001d
|
|
407
|
+
LXB_TAG_BLOCKQUOTE = 0x001e
|
|
408
|
+
LXB_TAG_BODY = 0x001f
|
|
409
|
+
LXB_TAG_BR = 0x0020
|
|
410
|
+
LXB_TAG_BUTTON = 0x0021
|
|
411
|
+
LXB_TAG_CANVAS = 0x0022
|
|
412
|
+
LXB_TAG_CAPTION = 0x0023
|
|
413
|
+
LXB_TAG_CENTER = 0x0024
|
|
414
|
+
LXB_TAG_CITE = 0x0025
|
|
415
|
+
LXB_TAG_CLIPPATH = 0x0026
|
|
416
|
+
LXB_TAG_CODE = 0x0027
|
|
417
|
+
LXB_TAG_COL = 0x0028
|
|
418
|
+
LXB_TAG_COLGROUP = 0x0029
|
|
419
|
+
LXB_TAG_DATA = 0x002a
|
|
420
|
+
LXB_TAG_DATALIST = 0x002b
|
|
421
|
+
LXB_TAG_DD = 0x002c
|
|
422
|
+
LXB_TAG_DEL = 0x002d
|
|
423
|
+
LXB_TAG_DESC = 0x002e
|
|
424
|
+
LXB_TAG_DETAILS = 0x002f
|
|
425
|
+
LXB_TAG_DFN = 0x0030
|
|
426
|
+
LXB_TAG_DIALOG = 0x0031
|
|
427
|
+
LXB_TAG_DIR = 0x0032
|
|
428
|
+
LXB_TAG_DIV = 0x0033
|
|
429
|
+
LXB_TAG_DL = 0x0034
|
|
430
|
+
LXB_TAG_DT = 0x0035
|
|
431
|
+
LXB_TAG_EM = 0x0036
|
|
432
|
+
LXB_TAG_EMBED = 0x0037
|
|
433
|
+
LXB_TAG_FEBLEND = 0x0038
|
|
434
|
+
LXB_TAG_FECOLORMATRIX = 0x0039
|
|
435
|
+
LXB_TAG_FECOMPONENTTRANSFER = 0x003a
|
|
436
|
+
LXB_TAG_FECOMPOSITE = 0x003b
|
|
437
|
+
LXB_TAG_FECONVOLVEMATRIX = 0x003c
|
|
438
|
+
LXB_TAG_FEDIFFUSELIGHTING = 0x003d
|
|
439
|
+
LXB_TAG_FEDISPLACEMENTMAP = 0x003e
|
|
440
|
+
LXB_TAG_FEDISTANTLIGHT = 0x003f
|
|
441
|
+
LXB_TAG_FEDROPSHADOW = 0x0040
|
|
442
|
+
LXB_TAG_FEFLOOD = 0x0041
|
|
443
|
+
LXB_TAG_FEFUNCA = 0x0042
|
|
444
|
+
LXB_TAG_FEFUNCB = 0x0043
|
|
445
|
+
LXB_TAG_FEFUNCG = 0x0044
|
|
446
|
+
LXB_TAG_FEFUNCR = 0x0045
|
|
447
|
+
LXB_TAG_FEGAUSSIANBLUR = 0x0046
|
|
448
|
+
LXB_TAG_FEIMAGE = 0x0047
|
|
449
|
+
LXB_TAG_FEMERGE = 0x0048
|
|
450
|
+
LXB_TAG_FEMERGENODE = 0x0049
|
|
451
|
+
LXB_TAG_FEMORPHOLOGY = 0x004a
|
|
452
|
+
LXB_TAG_FEOFFSET = 0x004b
|
|
453
|
+
LXB_TAG_FEPOINTLIGHT = 0x004c
|
|
454
|
+
LXB_TAG_FESPECULARLIGHTING = 0x004d
|
|
455
|
+
LXB_TAG_FESPOTLIGHT = 0x004e
|
|
456
|
+
LXB_TAG_FETILE = 0x004f
|
|
457
|
+
LXB_TAG_FETURBULENCE = 0x0050
|
|
458
|
+
LXB_TAG_FIELDSET = 0x0051
|
|
459
|
+
LXB_TAG_FIGCAPTION = 0x0052
|
|
460
|
+
LXB_TAG_FIGURE = 0x0053
|
|
461
|
+
LXB_TAG_FONT = 0x0054
|
|
462
|
+
LXB_TAG_FOOTER = 0x0055
|
|
463
|
+
LXB_TAG_FOREIGNOBJECT = 0x0056
|
|
464
|
+
LXB_TAG_FORM = 0x0057
|
|
465
|
+
LXB_TAG_FRAME = 0x0058
|
|
466
|
+
LXB_TAG_FRAMESET = 0x0059
|
|
467
|
+
LXB_TAG_GLYPHREF = 0x005a
|
|
468
|
+
LXB_TAG_H1 = 0x005b
|
|
469
|
+
LXB_TAG_H2 = 0x005c
|
|
470
|
+
LXB_TAG_H3 = 0x005d
|
|
471
|
+
LXB_TAG_H4 = 0x005e
|
|
472
|
+
LXB_TAG_H5 = 0x005f
|
|
473
|
+
LXB_TAG_H6 = 0x0060
|
|
474
|
+
LXB_TAG_HEAD = 0x0061
|
|
475
|
+
LXB_TAG_HEADER = 0x0062
|
|
476
|
+
LXB_TAG_HGROUP = 0x0063
|
|
477
|
+
LXB_TAG_HR = 0x0064
|
|
478
|
+
LXB_TAG_HTML = 0x0065
|
|
479
|
+
LXB_TAG_I = 0x0066
|
|
480
|
+
LXB_TAG_IFRAME = 0x0067
|
|
481
|
+
LXB_TAG_IMAGE = 0x0068
|
|
482
|
+
LXB_TAG_IMG = 0x0069
|
|
483
|
+
LXB_TAG_INPUT = 0x006a
|
|
484
|
+
LXB_TAG_INS = 0x006b
|
|
485
|
+
LXB_TAG_ISINDEX = 0x006c
|
|
486
|
+
LXB_TAG_KBD = 0x006d
|
|
487
|
+
LXB_TAG_KEYGEN = 0x006e
|
|
488
|
+
LXB_TAG_LABEL = 0x006f
|
|
489
|
+
LXB_TAG_LEGEND = 0x0070
|
|
490
|
+
LXB_TAG_LI = 0x0071
|
|
491
|
+
LXB_TAG_LINEARGRADIENT = 0x0072
|
|
492
|
+
LXB_TAG_LINK = 0x0073
|
|
493
|
+
LXB_TAG_LISTING = 0x0074
|
|
494
|
+
LXB_TAG_MAIN = 0x0075
|
|
495
|
+
LXB_TAG_MALIGNMARK = 0x0076
|
|
496
|
+
LXB_TAG_MAP = 0x0077
|
|
497
|
+
LXB_TAG_MARK = 0x0078
|
|
498
|
+
LXB_TAG_MARQUEE = 0x0079
|
|
499
|
+
LXB_TAG_MATH = 0x007a
|
|
500
|
+
LXB_TAG_MENU = 0x007b
|
|
501
|
+
LXB_TAG_META = 0x007c
|
|
502
|
+
LXB_TAG_METER = 0x007d
|
|
503
|
+
LXB_TAG_MFENCED = 0x007e
|
|
504
|
+
LXB_TAG_MGLYPH = 0x007f
|
|
505
|
+
LXB_TAG_MI = 0x0080
|
|
506
|
+
LXB_TAG_MN = 0x0081
|
|
507
|
+
LXB_TAG_MO = 0x0082
|
|
508
|
+
LXB_TAG_MS = 0x0083
|
|
509
|
+
LXB_TAG_MTEXT = 0x0084
|
|
510
|
+
LXB_TAG_MULTICOL = 0x0085
|
|
511
|
+
LXB_TAG_NAV = 0x0086
|
|
512
|
+
LXB_TAG_NEXTID = 0x0087
|
|
513
|
+
LXB_TAG_NOBR = 0x0088
|
|
514
|
+
LXB_TAG_NOEMBED = 0x0089
|
|
515
|
+
LXB_TAG_NOFRAMES = 0x008a
|
|
516
|
+
LXB_TAG_NOSCRIPT = 0x008b
|
|
517
|
+
LXB_TAG_OBJECT = 0x008c
|
|
518
|
+
LXB_TAG_OL = 0x008d
|
|
519
|
+
LXB_TAG_OPTGROUP = 0x008e
|
|
520
|
+
LXB_TAG_OPTION = 0x008f
|
|
521
|
+
LXB_TAG_OUTPUT = 0x0090
|
|
522
|
+
LXB_TAG_P = 0x0091
|
|
523
|
+
LXB_TAG_PARAM = 0x0092
|
|
524
|
+
LXB_TAG_PATH = 0x0093
|
|
525
|
+
LXB_TAG_PICTURE = 0x0094
|
|
526
|
+
LXB_TAG_PLAINTEXT = 0x0095
|
|
527
|
+
LXB_TAG_PRE = 0x0096
|
|
528
|
+
LXB_TAG_PROGRESS = 0x0097
|
|
529
|
+
LXB_TAG_Q = 0x0098
|
|
530
|
+
LXB_TAG_RADIALGRADIENT = 0x0099
|
|
531
|
+
LXB_TAG_RB = 0x009a
|
|
532
|
+
LXB_TAG_RP = 0x009b
|
|
533
|
+
LXB_TAG_RT = 0x009c
|
|
534
|
+
LXB_TAG_RTC = 0x009d
|
|
535
|
+
LXB_TAG_RUBY = 0x009e
|
|
536
|
+
LXB_TAG_S = 0x009f
|
|
537
|
+
LXB_TAG_SAMP = 0x00a0
|
|
538
|
+
LXB_TAG_SCRIPT = 0x00a1
|
|
539
|
+
LXB_TAG_SECTION = 0x00a2
|
|
540
|
+
LXB_TAG_SELECT = 0x00a3
|
|
541
|
+
LXB_TAG_SLOT = 0x00a4
|
|
542
|
+
LXB_TAG_SMALL = 0x00a5
|
|
543
|
+
LXB_TAG_SOURCE = 0x00a6
|
|
544
|
+
LXB_TAG_SPACER = 0x00a7
|
|
545
|
+
LXB_TAG_SPAN = 0x00a8
|
|
546
|
+
LXB_TAG_STRIKE = 0x00a9
|
|
547
|
+
LXB_TAG_STRONG = 0x00aa
|
|
548
|
+
LXB_TAG_STYLE = 0x00ab
|
|
549
|
+
LXB_TAG_SUB = 0x00ac
|
|
550
|
+
LXB_TAG_SUMMARY = 0x00ad
|
|
551
|
+
LXB_TAG_SUP = 0x00ae
|
|
552
|
+
LXB_TAG_SVG = 0x00af
|
|
553
|
+
LXB_TAG_TABLE = 0x00b0
|
|
554
|
+
LXB_TAG_TBODY = 0x00b1
|
|
555
|
+
LXB_TAG_TD = 0x00b2
|
|
556
|
+
LXB_TAG_TEMPLATE = 0x00b3
|
|
557
|
+
LXB_TAG_TEXTAREA = 0x00b4
|
|
558
|
+
LXB_TAG_TEXTPATH = 0x00b5
|
|
559
|
+
LXB_TAG_TFOOT = 0x00b6
|
|
560
|
+
LXB_TAG_TH = 0x00b7
|
|
561
|
+
LXB_TAG_THEAD = 0x00b8
|
|
562
|
+
LXB_TAG_TIME = 0x00b9
|
|
563
|
+
LXB_TAG_TITLE = 0x00ba
|
|
564
|
+
LXB_TAG_TR = 0x00bb
|
|
565
|
+
LXB_TAG_TRACK = 0x00bc
|
|
566
|
+
LXB_TAG_TT = 0x00bd
|
|
567
|
+
LXB_TAG_U = 0x00be
|
|
568
|
+
LXB_TAG_UL = 0x00bf
|
|
569
|
+
LXB_TAG_VAR = 0x00c0
|
|
570
|
+
LXB_TAG_VIDEO = 0x00c1
|
|
571
|
+
LXB_TAG_WBR = 0x00c2
|
|
572
|
+
LXB_TAG_XMP = 0x00c3
|
|
573
|
+
LXB_TAG__LAST_ENTRY = 0x00c4
|
|
574
|
+
|
|
575
|
+
|
|
576
|
+
cdef extern from "lexbor/selectors/selectors.h" nogil:
|
|
577
|
+
ctypedef struct lxb_css_selectors_t
|
|
578
|
+
|
|
579
|
+
ctypedef struct lxb_selectors_t
|
|
580
|
+
ctypedef struct lxb_css_selector_list_t
|
|
581
|
+
ctypedef struct lxb_css_selector_specificity_t
|
|
582
|
+
ctypedef lxb_status_t (*lxb_selectors_cb_f)(lxb_dom_node_t *node, lxb_css_selector_specificity_t *spec, void *ctx)
|
|
583
|
+
ctypedef enum lxb_selectors_opt_t:
|
|
584
|
+
LXB_SELECTORS_OPT_DEFAULT = 0x00
|
|
585
|
+
LXB_SELECTORS_OPT_MATCH_ROOT = 1 << 1
|
|
586
|
+
LXB_SELECTORS_OPT_MATCH_FIRST = 1 << 2
|
|
587
|
+
|
|
588
|
+
void lxb_selectors_opt_set(lxb_selectors_t *selectors, lxb_selectors_opt_t opt)
|
|
589
|
+
lxb_css_selectors_t * lxb_css_selectors_create()
|
|
590
|
+
lxb_status_t lxb_css_selectors_init(lxb_css_selectors_t *selectors)
|
|
591
|
+
void lxb_css_parser_selectors_set(lxb_css_parser_t *parser, lxb_css_selectors_t *selectors)
|
|
592
|
+
lxb_css_selector_list_t * lxb_css_selectors_parse(lxb_css_parser_t *parser, const lxb_char_t *data, size_t length)
|
|
593
|
+
lxb_css_selectors_t * lxb_css_selectors_destroy(lxb_css_selectors_t *selectors, bint self_destroy)
|
|
594
|
+
|
|
595
|
+
lxb_selectors_t * lxb_selectors_create()
|
|
596
|
+
lxb_status_t lxb_selectors_init(lxb_selectors_t *selectors)
|
|
597
|
+
lxb_selectors_t * lxb_selectors_destroy(lxb_selectors_t *selectors, bint self_destroy)
|
|
598
|
+
lxb_status_t lxb_selectors_find(lxb_selectors_t *selectors, lxb_dom_node_t *root,
|
|
599
|
+
lxb_css_selector_list_t *list, lxb_selectors_cb_f cb, void *ctx)
|