]> git.lizzy.rs Git - rust.git/commitdiff
Bump pulldown-cmark
authorLaurențiu Nicola <lnicola@dend.ro>
Tue, 13 Oct 2020 17:31:23 +0000 (20:31 +0300)
committerLaurențiu Nicola <lnicola@dend.ro>
Tue, 13 Oct 2020 17:41:49 +0000 (20:41 +0300)
Cargo.lock
crates/ide/Cargo.toml
crates/ide/src/doc_links.rs

index b890b6e19f2b5187e0a647e6fefc59d01f8be0e0..bcd89f3a838543cc3c3af5cc2350f7d9bcedc906 100644 (file)
@@ -1191,9 +1191,9 @@ dependencies = [
 
 [[package]]
 name = "pulldown-cmark"
-version = "0.7.2"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca36dea94d187597e104a5c8e4b07576a8a45aa5db48a65e12940d3eb7461f55"
+checksum = "ffade02495f22453cd593159ea2f59827aae7f53fa8323f756799b670881dcf8"
 dependencies = [
  "bitflags",
  "memchr",
@@ -1202,9 +1202,9 @@ dependencies = [
 
 [[package]]
 name = "pulldown-cmark-to-cmark"
-version = "5.0.0"
+version = "6.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32accf4473121d8c0b508ca5673363703762d6cc59cf25af1df48f653346f736"
+checksum = "e8f2b9878102358ec65434fdd1a9a161f8648bb2f531acc9260e4d094c96de23"
 dependencies = [
  "pulldown-cmark",
 ]
index f0257403d20a378d64e461336056985c42875ebb..29dc9a6a8e34d78b5321a23c74fd3255d44cb1c3 100644 (file)
@@ -16,8 +16,8 @@ itertools = "0.9.0"
 log = "0.4.8"
 rustc-hash = "1.1.0"
 oorandom = "11.1.2"
-pulldown-cmark-to-cmark = "5.0.0"
-pulldown-cmark = {version = "0.7.2", default-features = false}
+pulldown-cmark-to-cmark = "6.0.0"
+pulldown-cmark = { version = "0.8.0", default-features = false }
 url = "2.1.1"
 
 stdx = { path = "../stdx", version = "0.0.0" }
index 06af36b73e1cd33a451801baf7f384e252b90eac..db3f911c82f0a2d9e9f1998ca5e1f805cf00e945 100644 (file)
@@ -1,9 +1,10 @@
 //! Resolves and rewrites links in markdown documentation.
 
+use std::convert::TryFrom;
 use std::iter::once;
 
 use itertools::Itertools;
-use pulldown_cmark::{CowStr, Event, LinkType, Options, Parser, Tag};
+use pulldown_cmark::{BrokenLink, CowStr, Event, InlineStr, LinkType, Options, Parser, Tag};
 use pulldown_cmark_to_cmark::{cmark_with_options, Options as CmarkOptions};
 use url::Url;
 
 
 /// Rewrite documentation links in markdown to point to an online host (e.g. docs.rs)
 pub fn rewrite_links(db: &RootDatabase, markdown: &str, definition: &Definition) -> String {
-    let doc = Parser::new_with_broken_link_callback(
-        markdown,
-        Options::empty(),
-        Some(&|label, _| Some((/*url*/ label.to_string(), /*title*/ label.to_string()))),
-    );
+    let mut cb = |link: BrokenLink| {
+        Some((
+            /*url*/ link.reference.to_owned().into(),
+            /*title*/ link.reference.to_owned().into(),
+        ))
+    };
+    let doc = Parser::new_with_broken_link_callback(markdown, Options::empty(), Some(&mut cb));
 
     let doc = map_links(doc, |target, title: &str| {
         // This check is imperfect, there's some overlap between valid intra-doc links
@@ -66,11 +69,11 @@ pub fn remove_links(markdown: &str) -> String {
     let mut opts = Options::empty();
     opts.insert(Options::ENABLE_FOOTNOTES);
 
-    let doc = Parser::new_with_broken_link_callback(
-        markdown,
-        opts,
-        Some(&|_, _| Some((String::new(), String::new()))),
-    );
+    let mut cb = |_: BrokenLink| {
+        let empty = InlineStr::try_from("").unwrap();
+        Some((CowStr::Inlined(empty.clone()), CowStr::Inlined(empty)))
+    };
+    let doc = Parser::new_with_broken_link_callback(markdown, opts, Some(&mut cb));
     let doc = doc.filter_map(move |evt| match evt {
         Event::Start(Tag::Link(link_type, ref target, ref title)) => {
             if link_type == LinkType::Inline && target.contains("://") {