1
0
Fork 0
mirror of https://github.com/lise-henry/crowbook synced 2024-05-10 04:26:22 +02:00

Update comrak

This commit is contained in:
Lizzie Crowdagger 2023-07-27 14:58:32 +02:00
parent e729eb191d
commit 9285b5f3e7
4 changed files with 48 additions and 176 deletions

144
Cargo.lock generated
View File

@ -2,15 +2,6 @@
# It is not intended for manual editing.
version = 3
[[package]]
name = "addr2line"
version = "0.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b"
dependencies = [
"gimli",
]
[[package]]
name = "adler"
version = "1.0.2"
@ -72,21 +63,6 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
[[package]]
name = "backtrace"
version = "0.3.66"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cab84319d616cfb654d03394f38ab7e6f0919e181b1b57e1fd15e7fb4077d9a7"
dependencies = [
"addr2line",
"cc",
"cfg-if",
"libc",
"miniz_oxide",
"object",
"rustc-demangle",
]
[[package]]
name = "base64"
version = "0.13.0"
@ -169,10 +145,11 @@ version = "0.4.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73"
dependencies = [
"js-sys",
"libc",
"num-integer",
"num-traits",
"time 0.1.44",
"wasm-bindgen",
"winapi 0.3.9",
]
@ -225,9 +202,9 @@ dependencies = [
[[package]]
name = "comrak"
version = "0.17.0"
version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "54b9638d96f93f8bf7b050f7505ba0d82b8267f601965b08faa0eb4882a9bba9"
checksum = "482aa5695bca086022be453c700a40c02893f1ba7098a2c88351de55341ae894"
dependencies = [
"clap",
"entities",
@ -358,7 +335,7 @@ dependencies = [
"tempdir",
"textwrap",
"url",
"uuid 1.1.2",
"uuid",
"walkdir 2.3.2",
"yaml-rust",
]
@ -446,35 +423,20 @@ version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5320ae4c3782150d900b79807611a59a99fc9a1d61d686faafc24b93fc8d7ca"
[[package]]
name = "env_logger"
version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"
dependencies = [
"atty",
"humantime",
"log 0.4.17",
"regex 1.7.0",
"termcolor",
]
[[package]]
name = "epub-builder"
version = "0.5.0"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c6663e4a14bc563ac3a6af97daf1bd854463913bed3278f3b9a0930ad263f874"
checksum = "8f8b607f95b941c07a724ccd9264cce99632911d5cf96ec76bb56976485c1d9c"
dependencies = [
"chrono",
"env_logger",
"error-chain",
"eyre",
"html-escape",
"lazy_static 1.4.0",
"log 0.4.17",
"mustache",
"regex 1.7.0",
"once_cell",
"tempdir",
"uuid 0.8.2",
"uuid",
"zip",
]
@ -500,13 +462,13 @@ dependencies = [
]
[[package]]
name = "error-chain"
version = "0.12.4"
name = "eyre"
version = "0.6.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc"
checksum = "4c2b6b5a29c02cdc822728b7d7b8ae1bab3e3b05d44522770ddd49722eeac7eb"
dependencies = [
"backtrace",
"version_check",
"indenter",
"once_cell",
]
[[package]]
@ -643,15 +605,9 @@ checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6"
dependencies = [
"cfg-if",
"libc",
"wasi 0.11.0+wasi-snapshot-preview1",
"wasi",
]
[[package]]
name = "gimli"
version = "0.26.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d"
[[package]]
name = "h2"
version = "0.3.13"
@ -738,12 +694,6 @@ version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421"
[[package]]
name = "humantime"
version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
[[package]]
name = "hyper"
version = "0.14.20"
@ -815,6 +765,12 @@ dependencies = [
"unicode-normalization",
]
[[package]]
name = "indenter"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683"
[[package]]
name = "indexmap"
version = "1.9.1"
@ -994,7 +950,7 @@ checksum = "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf"
dependencies = [
"libc",
"log 0.4.17",
"wasi 0.11.0+wasi-snapshot-preview1",
"wasi",
"windows-sys 0.36.1",
]
@ -1135,15 +1091,6 @@ version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e25be21376a772d15f97ae789845340a9651d3c4246ff5ebb6a2b35f9c37bd31"
[[package]]
name = "object"
version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "21158b2c33aa6d4561f1c0a6ea283ca92bc54802a93b263e910746d679a7eb53"
dependencies = [
"memchr",
]
[[package]]
name = "once_cell"
version = "1.13.0"
@ -1299,7 +1246,7 @@ dependencies = [
"indexmap",
"line-wrap",
"serde",
"time 0.3.11",
"time",
"xml-rs",
]
@ -1648,12 +1595,6 @@ version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca136c6f6d53a2de7264bb392ea7c1f83357e00d131a24275b1661ea1c23c3af"
[[package]]
name = "rustc-demangle"
version = "0.1.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342"
[[package]]
name = "rustc-serialize"
version = "0.3.24"
@ -1801,7 +1742,7 @@ checksum = "48dfff04aade74dd495b007c831cd6f4e0cee19c344dd9dc0884c0289b70a786"
dependencies = [
"log 0.4.17",
"termcolor",
"time 0.3.11",
"time",
]
[[package]]
@ -2005,17 +1946,6 @@ dependencies = [
"lazy_static 1.4.0",
]
[[package]]
name = "time"
version = "0.1.44"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255"
dependencies = [
"libc",
"wasi 0.10.0+wasi-snapshot-preview1",
"winapi 0.3.9",
]
[[package]]
name = "time"
version = "0.3.11"
@ -2216,15 +2146,6 @@ version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5190c9442dcdaf0ddd50f37420417d219ae5261bbf5db120d0f9bab996c9cba1"
[[package]]
name = "uuid"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7"
dependencies = [
"getrandom",
]
[[package]]
name = "uuid"
version = "1.1.2"
@ -2278,12 +2199,6 @@ dependencies = [
"try-lock",
]
[[package]]
name = "wasi"
version = "0.10.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
[[package]]
name = "wasi"
version = "0.11.0+wasi-snapshot-preview1"
@ -2544,12 +2459,13 @@ dependencies = [
[[package]]
name = "zip"
version = "0.5.13"
version = "0.6.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "93ab48844d61251bb3835145c521d88aa4031d7139e8485990f60ca911fa0815"
checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261"
dependencies = [
"byteorder",
"crc32fast",
"thiserror",
"time 0.1.44",
"crossbeam-utils",
"flate2",
"time",
]

View File

@ -49,7 +49,7 @@ crowbook-intl = "0.2"
[dependencies]
mime_guess = "2"
comrak = "0.17"
comrak = "0.18"
yaml-rust = "0.4"
mustache = "0.9"
uuid = { version = "1", features = ["v4"] }

View File

@ -1,4 +1,4 @@
// Copyright (C) 2016 Élisabeth HENRY.
// Copyright (C) 2016-2023 Élisabeth HENRY.
//
// This file is part of Crowbook.
//
@ -367,15 +367,6 @@ impl From<mustache::Error> for Error {
}
}
/// Implement our error from epub_maker::Error
impl From<epub_builder::Error> for Error {
fn from(err: epub_builder::Error) -> Error {
Error::render(
Source::empty(),
lformat!("error during EPUB generation: {error}", error = err),
)
}
}
impl From<FromUtf8Error> for Error {
fn from(err: FromUtf8Error) -> Error {

View File

@ -1,5 +1,5 @@
// Copyright (C) 2016-2022 Élisabeth HENRY.
// Copyright (C) 2016-2023 Élisabeth HENRY.
//
// This file is part of Crowbook.
//
@ -271,7 +271,7 @@ impl Parser {
NodeValue::FrontMatter(ref v) => {
if let Some(yaml) = yaml_block {
// We can add the frontmatter to the yaml block
yaml.push_str(std::str::from_utf8(v)?);
yaml.push_str(v);
}
vec![]
},
@ -288,19 +288,13 @@ impl Parser {
NodeValue::DescriptionTerm => vec![Token::DescriptionTerm(inner)],
NodeValue::DescriptionDetails => vec![Token::DescriptionDetails(inner)],
NodeValue::CodeBlock(ref block) => {
let info = String::from_utf8(block.info.clone()).map_err(|_| {
Error::parser(&self.source, lformat!("Codeblock contains invalid UTF-8"))
})?;
let code = String::from_utf8(block.literal.clone()).map_err(|_| {
Error::parser(&self.source, lformat!("Codeblock contains invalid UTF-8"))
})?;
let info = block.info.clone();
let code = block.literal.clone();
self.features.codeblock = true;
vec![Token::CodeBlock(info, code)]
}
NodeValue::HtmlBlock(ref block) => {
let text = String::from_utf8(block.literal.clone()).map_err(|_| {
Error::parser(&self.source, lformat!("HTML block contains invalid UTF-8"))
})?;
let text = block.literal.clone();
if self.html_as_text {
vec![Token::Str(text)]
} else {
@ -309,9 +303,7 @@ impl Parser {
}
}
NodeValue::HtmlInline(ref html) => {
let text = String::from_utf8(html.clone()).map_err(|_| {
Error::parser(&self.source, lformat!("HTML block contains invalid UTF-8"))
})?;
let text = html.clone();
if self.html_as_text {
vec![Token::Str(text)]
} else {
@ -329,37 +321,23 @@ impl Parser {
NodeValue::Heading(ref heading) => vec![Token::Header(heading.level as i32, inner)],
NodeValue::ThematicBreak => vec![Token::Rule],
NodeValue::FootnoteDefinition(ref def) => {
let reference = String::from_utf8(def.clone()).map_err(|_| {
Error::parser(
&self.source,
lformat!("Footnote definition contains invalid UTF-8"),
)
})?;
let reference = def.clone();
vec![Token::FootnoteDefinition(reference, inner)]
}
NodeValue::Text(ref text) => {
let text = String::from_utf8(text.clone()).map_err(|_| {
Error::parser(
&self.source,
lformat!("Markdown file contains invalid UTF-8"),
)
})?;
let text = text.clone();
vec![Token::Str(text)]
}
NodeValue::Code(ref code) => {
let text = String::from_utf8(code.literal.clone()).map_err(|_| {
Error::parser(
&self.source,
lformat!("Markdown file contains invalid UTF-8"),
)
})?;
let text = code.literal.clone();
vec![Token::Code(text)]
}
NodeValue::SoftBreak => vec![Token::SoftBreak],
NodeValue::LineBreak => vec![Token::HardBreak],
NodeValue::Emph => vec![Token::Emphasis(inner)],
NodeValue::TaskItem(checked) => {
NodeValue::TaskItem(c) => {
self.features.taskitem = true;
let checked = if c.is_some() { true } else { false };
vec![Token::TaskItem(checked, inner)]
}
NodeValue::Strong => vec![Token::Strong(inner)],
@ -370,31 +348,18 @@ impl Parser {
NodeValue::Superscript => vec![Token::Superscript(inner)],
NodeValue::Link(ref link) => {
self.features.url = true;
let url = String::from_utf8(link.url.clone()).map_err(|_| {
Error::parser(&self.source, lformat!("Link URL contains invalid UTF-8"))
})?;
let title = String::from_utf8(link.title.clone()).map_err(|_| {
Error::parser(&self.source, lformat!("Link title contains invalid UTF-8"))
})?;
let url = link.url.clone();
let title = link.title.clone();
vec![Token::Link(url, title, inner)]
}
NodeValue::Image(ref link) => {
self.features.image = true;
let url = String::from_utf8(link.url.clone()).map_err(|_| {
Error::parser(&self.source, lformat!("Image URL contains invalid UTF-8"))
})?;
let title = String::from_utf8(link.title.clone()).map_err(|_| {
Error::parser(&self.source, lformat!("Image title contains invalid UTF-8"))
})?;
let url = link.url.clone();
let title = link.title.clone();
vec![Token::Image(url, title, inner)]
}
NodeValue::FootnoteReference(ref name) => {
let name = String::from_utf8(name.clone()).map_err(|_| {
Error::parser(
&self.source,
lformat!("Footnote reference contains invalid UTF-8"),
)
})?;
let name = name.clone();
vec![Token::FootnoteReference(name)]
}