ftd 0.2.0

ftd: FifthTry Document Format
Documentation
[package]
name = "ftd"
version = "0.2.0"
authors = [
    "Amit Upadhyay <upadhyay@gmail.com>",
    "Arpita Jaiswal <arpita@fifthtry.com>",
    "Sourabh Garg <sourabh@fifthtry.com>"
]
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.<name>] 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"