tiefdownlib 0.8.0

A library to manage and convert TiefDown projects.
Documentation
use crate::{
    converters,
    manifest_model::{MetadataSettings, Processors, TemplateMapping},
    template_type::TemplateType,
};
use color_eyre::eyre::Result;
use std::path::{Path, PathBuf};
use toml::Table;

type Converter = fn(
    project_directory_path: &Path,
    compiled_markdown_path: &Path,
    compiled_directory_path: &Path,
    template: &TemplateMapping,
    metadata_fields: &Table,
    metadata_settings: &MetadataSettings,
    custom_processors: &Processors,
) -> Result<PathBuf>;

pub(crate) fn get_converter(template_type: &TemplateType) -> Result<Converter> {
    Ok(match template_type {
        TemplateType::Tex => converters::convert_latex,
        TemplateType::Typst => converters::convert_typst,
        TemplateType::Epub => converters::convert_epub,
        TemplateType::CustomPandoc => converters::convert_custom_pandoc,
    })
}