obsidian-export/Cargo.toml

79 lines
2.0 KiB
TOML
Raw Normal View History

2020-11-28 13:14:50 +01:00
[package]
name = "obsidian-export"
2023-12-03 17:38:24 +01:00
version = "23.12.0"
2020-11-28 13:14:50 +01:00
authors = ["Nick Groenen <nick@groenen.me>"]
edition = "2018"
license = "BSD-2-Clause-Patent"
2020-11-28 13:14:50 +01:00
readme = "README.md"
repository = "https://github.com/zoni/obsidian-export"
documentation = "https://docs.rs/obsidian-export"
description = """
Rust library and associated CLI program to export an Obsidian vault to regular Markdown.
"""
categories = ["command-line-utilities", "text-processing"]
keywords = ["markdown", "obsidian"]
[lib]
name = "obsidian_export"
path = "src/lib.rs"
[[bin]]
name = "obsidian-export"
path = "src/main.rs"
doc = false
2020-11-28 13:14:50 +01:00
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
eyre = "0.6.9"
2022-11-05 14:20:24 +01:00
gumdrop = "0.8.1"
ignore = "0.4.21"
2020-11-28 13:14:50 +01:00
lazy_static = "1.4.0"
matter = "0.1.0-alpha4"
pathdiff = "0.2.1"
percent-encoding = "2.3.1"
pulldown-cmark = "0.9.3"
pulldown-cmark-to-cmark = "11.0.2"
2023-09-23 10:23:09 +02:00
rayon = "1.8.0"
regex = "1.10.2"
serde_yaml = "0.9.27"
slug = "0.1.5"
2023-09-22 11:43:30 +02:00
snafu = "0.7.5"
New: apply unicode normalization while resolving notes The unicode standard allows for certain (visually) identical characters to be represented in different ways. For example the character ä may be represented as a single combined codepoint "Latin Small Letter A with Diaeresis" (U+00E4) or by the combination of "Latin Small Letter A" (U+0061) followed by "Combining Diaeresis" (U+0308). When encoded with UTF-8, these are represented as respectively the two bytes 0xC3 0xA4, and the three bytes 0x61 0xCC 0x88. A user linking to notes with these characters in their titles would expect these two variants to link to the same file, given they are visually identical and have the exact same semantic meaning. The unicode standard defines a method to deconstruct and normalize these forms, so that a byte comparison on the normalized forms of these variants ends up comparing the same thing. This is called Unicode Normalization, defined in Unicode® Standard Annex #15 (http://www.unicode.org/reports/tr15/). The W3C Working Group has written an excellent explanation of the problems regarding string matching, and how unicode normalization helps with this process: https://www.w3.org/TR/charmod-norm/#unicodeNormalization With this change, obsidian-export will perform unicode normalization (specifically the C (or NFC) normalization form) on all note titles while looking up link references, ensuring visually identical links are treated as being similar, even if they were encoded as different variants. A special thanks to Hans Raaf (@oderwat) for reporting and helping track down this issue. --- Closes #126
2022-11-19 16:34:17 +01:00
unicode-normalization = "0.1.22"
2020-11-28 13:14:50 +01:00
[dev-dependencies]
pretty_assertions = "1.4.0"
rstest = "0.18.2"
tempfile = "3.8.1"
walkdir = "2.4.0"
# The profile that 'cargo dist' will build with
[profile.dist]
inherits = "release"
lto = "thin"
# Config for 'cargo dist'
[workspace.metadata.dist]
# The preferred cargo-dist version to use in CI (Cargo.toml SemVer syntax)
cargo-dist-version = "0.4.3"
# CI backends to support
ci = ["github"]
# The installers to generate for each app
installers = ["shell", "powershell"]
# Target platforms to build apps for (Rust target-triple syntax)
targets = [
#"aarch64-unknown-linux-gnu", # Not yet supported (2023-12-03)
"x86_64-unknown-linux-gnu",
#"x86_64-unknown-linux-musl",
"aarch64-apple-darwin",
"x86_64-apple-darwin",
# "aarch64-pc-windows-msvc",, # Not yet supported (2023-12-03)
"x86_64-pc-windows-msvc",
]
unix-archive = ".tar.xz"
windows-archive = ".zip"
# Publish jobs to run in CI
pr-run-mode = "plan"
# Publish jobs to run in CI
publish-jobs = ["./publish-crate"]