diff --git a/Cargo.lock b/Cargo.lock index f72aa04..14d0a71 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -101,7 +101,7 @@ checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" [[package]] name = "avplan" -version = "0.2.0" +version = "0.2.1" dependencies = [ "catena-cli", "clap", @@ -126,7 +126,7 @@ checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5" [[package]] name = "bibclean" -version = "0.2.0" +version = "0.2.1" dependencies = [ "catena-cli", "clap", @@ -143,7 +143,7 @@ dependencies = [ [[package]] name = "bibfetch" -version = "0.2.0" +version = "0.2.1" dependencies = [ "catena-cli", "clap", @@ -196,7 +196,7 @@ dependencies = [ [[package]] name = "bookmeta" -version = "0.2.0" +version = "0.2.1" dependencies = [ "catena-cli", "clap", @@ -210,7 +210,7 @@ dependencies = [ [[package]] name = "booksniff" -version = "0.2.0" +version = "0.2.1" dependencies = [ "catena-cli", "clap", @@ -250,7 +250,7 @@ checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" [[package]] name = "catena" -version = "0.2.0" +version = "0.2.1" dependencies = [ "bibclean", "bibfetch", @@ -277,7 +277,7 @@ dependencies = [ [[package]] name = "catena-cli" -version = "0.2.0" +version = "0.2.1" dependencies = [ "clap", "clap_mangen", @@ -312,7 +312,7 @@ checksum = "4e7648175b45a9a48536d676f68d918270699102aa8dab5496df06904c914600" [[package]] name = "chunkmd" -version = "0.2.0" +version = "0.2.1" dependencies = [ "catena-cli", "clap", @@ -334,7 +334,7 @@ dependencies = [ [[package]] name = "citefind" -version = "0.2.0" +version = "0.2.1" dependencies = [ "catena-cli", "chunkmd", @@ -399,7 +399,7 @@ dependencies = [ [[package]] name = "colophon" -version = "0.2.0" +version = "0.2.1" dependencies = [ "bibclean", "catena-cli", @@ -448,7 +448,7 @@ dependencies = [ [[package]] name = "corpus-core" -version = "0.2.0" +version = "0.2.1" dependencies = [ "schemars", "serde", @@ -492,7 +492,7 @@ dependencies = [ [[package]] name = "cuekit" -version = "0.2.0" +version = "0.2.1" dependencies = [ "corpus-core", "regex", @@ -504,7 +504,7 @@ dependencies = [ [[package]] name = "cuenorm" -version = "0.2.0" +version = "0.2.1" dependencies = [ "catena-cli", "clap", @@ -514,7 +514,7 @@ dependencies = [ [[package]] name = "cuepack" -version = "0.2.0" +version = "0.2.1" dependencies = [ "catena-cli", "clap", @@ -525,7 +525,7 @@ dependencies = [ [[package]] name = "cueseg" -version = "0.2.0" +version = "0.2.1" dependencies = [ "catena-cli", "clap", @@ -612,7 +612,7 @@ dependencies = [ [[package]] name = "emb" -version = "0.2.0" +version = "0.2.1" dependencies = [ "catena-cli", "clap", @@ -876,7 +876,7 @@ dependencies = [ [[package]] name = "idnorm" -version = "0.2.0" +version = "0.2.1" dependencies = [ "bibclean", "catena-cli", @@ -942,7 +942,7 @@ dependencies = [ [[package]] name = "langid" -version = "0.2.0" +version = "0.2.1" dependencies = [ "catena-cli", "clap", @@ -1022,7 +1022,7 @@ dependencies = [ [[package]] name = "mdscrub" -version = "0.2.0" +version = "0.2.1" dependencies = [ "catena-cli", "clap", @@ -1034,7 +1034,7 @@ dependencies = [ [[package]] name = "mdsplit" -version = "0.2.0" +version = "0.2.1" dependencies = [ "catena-cli", "clap", @@ -1113,7 +1113,7 @@ checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" [[package]] name = "pdfgutter" -version = "0.2.0" +version = "0.2.1" dependencies = [ "catena-cli", "clap", @@ -1126,7 +1126,7 @@ dependencies = [ [[package]] name = "pdftriage" -version = "0.2.0" +version = "0.2.1" dependencies = [ "catena-cli", "clap", @@ -1370,7 +1370,7 @@ checksum = "323c417e1d9665a65b263ec744ba09030cfb277e9daa0b018a4ab62e57bc8189" [[package]] name = "rrf" -version = "0.2.0" +version = "0.2.1" dependencies = [ "catena-cli", "clap", @@ -1517,7 +1517,7 @@ dependencies = [ [[package]] name = "seriesof" -version = "0.2.0" +version = "0.2.1" dependencies = [ "catena-cli", "clap", @@ -1634,7 +1634,7 @@ checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca" [[package]] name = "textkit" -version = "0.2.0" +version = "0.2.1" dependencies = [ "regex", "tiktoken-rs", @@ -1724,7 +1724,7 @@ checksum = "fd3ca314f692efd6c868f8408f53fe444634a845f96c028b97d35f6a1f79f0ee" [[package]] name = "tocfind" -version = "0.2.0" +version = "0.2.1" dependencies = [ "catena-cli", "clap", diff --git a/Cargo.toml b/Cargo.toml index 69734f3..dc077a4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,39 +3,39 @@ resolver = "3" members = ["crates/*"] [workspace.package] -version = "0.2.0" +version = "0.2.1" edition = "2024" rust-version = "1.85" license = "MPL-2.0" repository = "https://git.pumpin.online/funkpower/catena" [workspace.dependencies] -catena-cli = { path = "crates/catena-cli", version = "0.2.0" } -corpus-core = { path = "crates/corpus-core", version = "0.2.0" } -cuekit = { path = "crates/cuekit", version = "0.2.0" } -textkit = { path = "crates/textkit", version = "0.2.0" } -chunkmd = { path = "crates/chunkmd", version = "0.2.0" } -mdscrub = { path = "crates/mdscrub", version = "0.2.0" } -mdsplit = { path = "crates/mdsplit", version = "0.2.0" } -pdftriage = { path = "crates/pdftriage", version = "0.2.0" } -cuenorm = { path = "crates/cuenorm", version = "0.2.0" } -cueseg = { path = "crates/cueseg", version = "0.2.0" } -rrf = { path = "crates/rrf", version = "0.2.0" } -cuepack = { path = "crates/cuepack", version = "0.2.0" } -bibclean = { path = "crates/bibclean", version = "0.2.0" } -avplan = { path = "crates/avplan", version = "0.2.0" } -pdfgutter = { path = "crates/pdfgutter", version = "0.2.0" } -catena = { path = "crates/bindings", version = "0.2.0" } -seriesof = { path = "crates/seriesof", version = "0.2.0" } -idnorm = { path = "crates/idnorm", version = "0.2.0" } -bibfetch = { path = "crates/bibfetch", version = "0.2.0" } -bookmeta = { path = "crates/bookmeta", version = "0.2.0" } -langid = { path = "crates/langid", version = "0.2.0" } -tocfind = { path = "crates/tocfind", version = "0.2.0" } -booksniff = { path = "crates/booksniff", version = "0.2.0" } -citefind = { path = "crates/citefind", version = "0.2.0" } -colophon = { path = "crates/colophon", version = "0.2.0" } -emb = { path = "crates/emb", version = "0.2.0" } +catena-cli = { path = "crates/catena-cli", version = "0.2.1" } +corpus-core = { path = "crates/corpus-core", version = "0.2.1" } +cuekit = { path = "crates/cuekit", version = "0.2.1" } +textkit = { path = "crates/textkit", version = "0.2.1" } +chunkmd = { path = "crates/chunkmd", version = "0.2.1" } +mdscrub = { path = "crates/mdscrub", version = "0.2.1" } +mdsplit = { path = "crates/mdsplit", version = "0.2.1" } +pdftriage = { path = "crates/pdftriage", version = "0.2.1" } +cuenorm = { path = "crates/cuenorm", version = "0.2.1" } +cueseg = { path = "crates/cueseg", version = "0.2.1" } +rrf = { path = "crates/rrf", version = "0.2.1" } +cuepack = { path = "crates/cuepack", version = "0.2.1" } +bibclean = { path = "crates/bibclean", version = "0.2.1" } +avplan = { path = "crates/avplan", version = "0.2.1" } +pdfgutter = { path = "crates/pdfgutter", version = "0.2.1" } +catena = { path = "crates/bindings", version = "0.2.1" } +seriesof = { path = "crates/seriesof", version = "0.2.1" } +idnorm = { path = "crates/idnorm", version = "0.2.1" } +bibfetch = { path = "crates/bibfetch", version = "0.2.1" } +bookmeta = { path = "crates/bookmeta", version = "0.2.1" } +langid = { path = "crates/langid", version = "0.2.1" } +tocfind = { path = "crates/tocfind", version = "0.2.1" } +booksniff = { path = "crates/booksniff", version = "0.2.1" } +citefind = { path = "crates/citefind", version = "0.2.1" } +colophon = { path = "crates/colophon", version = "0.2.1" } +emb = { path = "crates/emb", version = "0.2.1" } clap = { version = "4", features = ["derive"] } clap_mangen = "0.3" diff --git a/crates/colophon/src/title.rs b/crates/colophon/src/title.rs index 9dafe66..4853573 100644 --- a/crates/colophon/src/title.rs +++ b/crates/colophon/src/title.rs @@ -36,7 +36,9 @@ static BARE_DATE: LazyLock = LazyLock::new(|| Regex::new(r"(?i)^\d{1,4}\s*(bc|ad|bce|ce)?\.?$").expect("a valid pattern")); /// `Copyright © 2013 by`, `\u{a9} 2013 Richard Swinburne`, `Copyright 1971 by`. static COPYRIGHT_NOTICE: LazyLock = LazyLock::new(|| { - Regex::new(r"(?i)(\u{a9}|\(c\)|copyright)\s*(\u{a9}|\(c\))?\s*(1[0-9]|20)\d{2}") + // The year need not follow the symbol directly: "(c) Alfredo Ferrarin + // 2004" puts the holder between them, and was read as a title. + Regex::new(r"(?i)(\u{a9}|\(c\)|copyright)[^\n]{0,60}?(1[0-9]|20)\d{2}") .expect("a valid pattern") }); /// `Edited by`, with whoever it was set on the line beneath. @@ -413,6 +415,8 @@ mod furniture_tests { "12 INDEX", "Translated from the French by Willard R. Trask", "Copyright © 2013 by Barry Davies, BEM", + "© Alfredo Ferrarin 2004", + "\u{a9} Cambridge University Press 2011", "[PART ONE:", "Piper Verlag GmbH, Munich", "Vol. 11. HENRY JAMES, JR.",