Skip to content

Commit 27be6d5

Browse files
Update scraper requirement from 0.20.0 to 0.21.0 (#106)
* Update scraper requirement from 0.20.0 to 0.21.0 Updates the requirements on [scraper](https://github.com/causal-agent/scraper) to permit the latest version. - [Release notes](https://github.com/causal-agent/scraper/releases) - [Commits](rust-scraper/scraper@v0.20.0...v0.21.0) --- updated-dependencies: - dependency-name: scraper dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> * bump related deps * fix dependency mess * fmt * fix mut --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Markus Unterwaditzer <[email protected]>
1 parent 0871f88 commit 27be6d5

File tree

5 files changed

+26
-21
lines changed

5 files changed

+26
-21
lines changed

Cargo.toml

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,9 @@ libtest-mimic = "0.8.1"
2222
# https://github.com/bheisler/iai/issues/34
2323
# need to have cache simulation running because of bencher.dev
2424
iai = { git = "https://github.com/sigaloid/iai", rev = "d56a597" }
25+
markup5ever_rcdom = "0.5.0-unofficial"
2526
# required for examples/scraper.rs
26-
scraper = "0.20.0"
27+
scraper = "0.21.0"
2728
argh = "0.1.12"
2829

2930
[features]
@@ -34,13 +35,10 @@ default = ["jetscii"]
3435

3536
# The tree-builder feature contains utilities to use html5ever's DOM and tree
3637
# builder with html5gum's tokenizer.
37-
tree-builder = ["html5ever", "markup5ever_rcdom"]
38+
tree-builder = ["html5ever"]
3839

3940
[dependencies]
40-
# intentionally held back from 0.29 until scraper updates
41-
html5ever = { version = "0.27.0", optional = true }
42-
markup5ever_rcdom = { version = "0.3.0", optional = true }
43-
41+
html5ever = { version = "0.29.0", optional = true }
4442
jetscii = { version = "0.5.1", optional = true }
4543

4644
[[bench]]

examples/build_tree.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,10 @@ fn main() {
6262

6363
let errors = rcdom.errors;
6464

65-
if !errors.is_empty() {
65+
if !errors.borrow().is_empty() {
6666
println!("\nParse errors:");
6767

68-
for err in errors.iter() {
68+
for err in errors.borrow().iter() {
6969
println!(" {}", err);
7070
}
7171
}

examples/scraper.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,9 @@
1414
use std::io::{stdin, Read};
1515

1616
use argh::FromArgs;
17+
use html5ever::interface::tree_builder::TreeSink;
1718
use html5gum::emitters::html5ever::parse_document;
18-
use scraper::{Html, Selector};
19+
use scraper::{Html, HtmlTreeSink, Selector};
1920

2021
/// Read some HTML from stdin and parse it according to the given selector.
2122
#[derive(FromArgs)]
@@ -41,8 +42,9 @@ fn main() {
4142
Html::parse_document(&input)
4243
} else {
4344
let dom = Html::new_document();
44-
let Ok(dom) = parse_document(&input, dom, Default::default());
45-
dom
45+
let tree_sink = HtmlTreeSink::new(dom);
46+
let Ok(tree_sink) = parse_document(&input, tree_sink, Default::default());
47+
tree_sink.finish()
4648
};
4749

4850
let selector = Selector::parse(&cli.selector).unwrap();

src/emitters/html5ever.rs

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -300,24 +300,26 @@ fn map_tokenizer_state(input: Html5everState) -> State {
300300
/// equivalent to the same functions in [html5ever::driver].
301301
///
302302
/// ```
303-
/// use html5ever::{local_name, QualName, ns, namespace_url}; // extern crate html5ever;
304-
/// use scraper::Html; // extern crate scraper;
303+
/// use html5ever::{local_name, interface::TreeSink, QualName, ns, namespace_url}; // extern crate html5ever;
304+
/// use scraper::{HtmlTreeSink, Html}; // extern crate scraper;
305305
///
306306
/// let input = "<h1>hello world</h1>";
307307
///
308308
/// // equivalent to `Html::parse_fragment`
309309
/// let dom = Html::new_fragment();
310-
/// let Ok(dom) = html5gum::emitters::html5ever::parse_fragment(
310+
/// let tree_sink = HtmlTreeSink::new(dom);
311+
/// let Ok(tree_sink) = html5gum::emitters::html5ever::parse_fragment(
311312
/// input,
312-
/// dom,
313+
/// tree_sink,
313314
/// Default::default(),
314315
/// QualName::new(None, ns!(html), local_name!("body")),
315316
/// Vec::new()
316317
/// );
318+
/// let dom: Html = tree_sink.finish();
317319
/// ```
318320
pub fn parse_fragment<'a, R, Sink>(
319321
input: R,
320-
mut sink: Sink,
322+
sink: Sink,
321323
opts: ParseOpts,
322324
context_name: QualName,
323325
context_attrs: Vec<Attribute>,
@@ -326,7 +328,7 @@ where
326328
R: Readable<'a>,
327329
Sink: TreeSink,
328330
{
329-
let context_elem = create_element(&mut sink, context_name, context_attrs);
331+
let context_elem = create_element(&sink, context_name, context_attrs);
330332
parse_fragment_for_element(input, sink, opts, context_elem, None)
331333
}
332334

@@ -363,17 +365,20 @@ where
363365
/// equivalent to the same functions in [html5ever::driver].
364366
///
365367
/// ```rust
366-
/// use scraper::Html; // extern crate scraper;
368+
/// use html5ever::interface::TreeSink; // extern crate html5ever;
369+
/// use scraper::{HtmlTreeSink, Html}; // extern crate scraper;
367370
///
368371
/// let input = "<h1>hello world</h1>";
369372
///
370373
/// // equivalent to `Html::parse_document`
371374
/// let dom = Html::new_document();
372-
/// let Ok(dom) = html5gum::emitters::html5ever::parse_document(
375+
/// let tree_sink = HtmlTreeSink::new(dom);
376+
/// let Ok(tree_sink) = html5gum::emitters::html5ever::parse_document(
373377
/// input,
374-
/// dom,
378+
/// tree_sink,
375379
/// Default::default()
376380
/// );
381+
/// let dom: Html = tree_sink.finish();
377382
/// ```
378383
pub fn parse_document<'a, R, Sink>(
379384
input: R,

tests/html5lib_tree_builder.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ fn build_test(testcase: Testcase, fname: &str, i: usize, scripting: bool) -> Tri
163163
if let Some(ref frag) = testcase.document_fragment {
164164
let frag = frag.trim_end_matches('\n');
165165
let context_name = context_name(frag);
166-
let context_element = create_element(&mut rcdom, context_name, Vec::new());
166+
let context_element = create_element(&rcdom, context_name, Vec::new());
167167
tree_builder = TreeBuilder::new_for_fragment(rcdom, context_element, None, opts);
168168
initial_state = Some(map_tokenizer_state(
169169
tree_builder.tokenizer_state_for_context_elem(),

0 commit comments

Comments
 (0)