[package] name = "ftd" version = "0.2.0" authors = [ "Amit Upadhyay ", "Arpita Jaiswal ", "Sourabh Garg " ] edition = "2021" description = "ftd: FifthTry Document Format" license = "MIT" repository = "https://github.com/FifthTry/ftd" homepage = "https://ftd.dev" [dependencies] # Please do not specify a dependency more precisely than needed. If version "1" works, do # not specify "1.1.42". This reduces the number of total dependencies, as if you specify # 1.1.42 and someone else who only needed "1" also specified 1.1.37, we end up having same # dependency compined twice. # # In future we may discover that our code does not indeed work with "1", say it ony works # for 1.1 onwards, or 1.1.25 onwards, in which case use >= 1.1.25 etc. Saying our code # only works for 1.1.42 and not 1.1.41 nor 1.1.43 is really weird, and most likely wrong. # # If you are not using the latest version intentionally, please do not list it in this section # and create it's own [dependencies.] section, and document it with why are you not # using the latest dependency, and what is the plan. css-color-parser = "0.1" serde = { version = "1", features = ["derive"] } serde_json = "1" thiserror = "1" lazy_static = "1" regex = "1" format_num = "0.1" slug = "0.1" include_dir = "0.7" indoc = "1" itertools = "0.10" [dependencies.syntect] # We use syntect for syntax highlighting feature in ftd.code. version = "5" # By default syntect uses https://docs.rs/onig/. Rust has two popular regular expression # crates, `regex` and `onig`. `onig` is a wrapper over a library implemented in C: # https://github.com/kkos/oniguruma. https://docs.rs/regex/ is a pure Rust implementation. # # We are using `regex` ourselves. `comrak` also uses `regex`. So we disable their default # feature, which brings in onig, and use `default-fancy`, which uses `fancy-regex`, which # in turn uses `regex`. default-features = false features = [ # TODO: This feature brings in a lot of feaures, we have to pare it down to exactly # the features we need. "default-fancy" ] [dependencies.comrak] # We use comrak for markup processing. version = "0.14" # By default comrak ships with support for syntax highlighting using syntext for "fenced # code blocks". We have disabled that by not using default features. We did that because # we already have a way to show code in ftd, ftd.code. Further, comark requires syntect 4.6 # and we are using 5, which means we have two sytnax highlighting libraries. # # Further, in future we have to manipulate the markup at AST level, instead of using the # to_string() interface. https://fpm.dev/journal/#markdown-styling. So in the meanwhile # we are disabling their conflicting syntect implementation. default-features = false [dev-dependencies] diffy = "0.2" pretty_assertions = "1.2"