Crate src2md

Crate src2md 

Source
Expand description

§src2md Library

This crate can be used to:

  • Collect all source/text files under given path and compile them into a Markdown file
  • Restore original source files back from a generated Markdown file (requires restore feature)
  • Clone and process git repositories (requires git feature)
  • Generate mdbook-compatible output (requires mdbook feature)

§Features

  • restore (default) - Enables restoring files from Markdown via --restore
  • git (default) - Enables git repository cloning support via --git <url>
  • mdbook (default) - Enables mdbook format output via --mdbook <dir>

To use only the core bundling functionality without optional features:

src2md = { version = "0.1", default-features = false }

§Default Exclusions

The following are always excluded by default:

  • Hidden files and directories (starting with .)
  • Lock files (package-lock.json, yarn.lock, Cargo.lock, etc.)
  • Previous src2md output files

§Usage

§To generate a Markdown file:

use src2md::{Config, run_src2md};
use std::collections::HashSet;
use std::path::PathBuf;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let config = Config {
        output_path: PathBuf::from("output.md"),
        ignore_file: None,
        specific_paths: HashSet::new(),
        project_root: std::env::current_dir()?,
        #[cfg(feature = "restore")]
        restore_input: None,
        #[cfg(feature = "restore")]
        restore_path: None,
        verbosity: 0,
        fail_fast: true,
        extensions: HashSet::new(),
        #[cfg(feature = "git")]
        git_url: None,
        #[cfg(feature = "git")]
        git_branch: None,
        #[cfg(feature = "mdbook")]
        mdbook_output: None,
    };

    run_src2md(config).await
}

Re-exports§

pub use cli::Config;
pub use extractor::extract_from_markdown;
pub use filewalker::collect_files;
pub use writer::MarkdownWriter;
pub use writer::OUTPUT_MAGIC_BYTES;
pub use writer::OUTPUT_MAGIC_HEADER;
pub use git::ClonedRepo;
pub use git::clone_repository;
pub use git::repo_name_from_url;
pub use mdbook::generate_mdbook;

Modules§

cli
extractor
filewalker
git
Git repository cloning support.
mdbook
mdbook output format generation.
utils
writer

Functions§

run_src2md
Generate a Markdown file from source/text files
run_src2md_on_path
Generate a Markdown file from a specific directory path.