Explorar o código

Update pulldown-cmark

Mark Rousskov %!s(int64=5) %!d(string=hai) anos
pai
achega
0b0538ed3e
Modificáronse 3 ficheiros con 16 adicións e 19 borrados
  1. 5 3
      Cargo.lock
  2. 1 1
      parser/Cargo.toml
  3. 10 15
      parser/src/code_block.rs

+ 5 - 3
Cargo.lock

@@ -765,7 +765,7 @@ name = "parser"
 version = "0.1.0"
 dependencies = [
  "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "pulldown-cmark 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "pulldown-cmark 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -815,11 +815,13 @@ dependencies = [
 
 [[package]]
 name = "pulldown-cmark"
-version = "0.2.0"
+version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)",
+ "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicase 2.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -1644,7 +1646,7 @@ dependencies = [
 "checksum ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
 "checksum proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "9c9e470a8dc4aeae2dee2f335e8f533e2d4b347e1434e5671afc49b054592f27"
 "checksum publicsuffix 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "9bf259a81de2b2eb9850ec990ec78e6a25319715584fd7652b9b26f96fcb1510"
-"checksum pulldown-cmark 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "eef52fac62d0ea7b9b4dc7da092aa64ea7ec3d90af6679422d3d7e0e14b6ee15"
+"checksum pulldown-cmark 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1c205cc82214f3594e2d50686730314f817c67ffa80fe800cf0db78c3c2b9d9e"
 "checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0"
 "checksum quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe"
 "checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"

+ 1 - 1
parser/Cargo.toml

@@ -5,5 +5,5 @@ authors = ["Mark Rousskov <mark.simulacrum@gmail.com>"]
 edition = "2018"
 
 [dependencies]
-pulldown-cmark = "0.2.0"
+pulldown-cmark = "0.6.0"
 log = "0.4"

+ 10 - 15
parser/src/code_block.rs

@@ -9,24 +9,19 @@ pub struct ColorCodeBlocks {
 impl ColorCodeBlocks {
     pub fn new(s: &str) -> ColorCodeBlocks {
         let mut code = Vec::new();
-        let mut parser = Parser::new(s);
-        let mut before_event = parser.get_offset();
-        'outer: while let Some(event) = parser.next() {
-            if let Event::Start(Tag::Code) | Event::Start(Tag::CodeBlock(_)) = event {
-                let start = before_event;
-                loop {
-                    match parser.next() {
-                        Some(Event::End(Tag::Code)) | Some(Event::End(Tag::CodeBlock(_))) => {
-                            let end = parser.get_offset();
-                            code.push(start..end);
-                            break;
-                        }
-                        Some(_) => {}
-                        None => break 'outer,
+        let mut parser = Parser::new(s).into_offset_iter();
+        while let Some((event, range)) = parser.next() {
+            if let Event::Start(Tag::CodeBlock(_)) = event {
+                let start = range.start;
+                while let Some((event, range)) = parser.next() {
+                    if let Event::End(Tag::CodeBlock(_)) = event {
+                        code.push(start..range.end);
+                        break;
                     }
                 }
+            } else if let Event::Code(_) = event {
+                code.push(range);
             }
-            before_event = parser.get_offset();
         }
 
         ColorCodeBlocks { code }