extract-frontmatter

Overview

A Rust library that allows a user to extract an arbitrary number of lines of "front-matter" from the start of any multiline string.

Note that absolutely no parsing of extracted front-matter is performed; this is designed to output its results for another library to then parse.

Crates.io version Crates.io downloads Gitlab pipeline status Gitlab code coverage Lines of code Dependents License

Versioning

This project follows Semantic Versioning principals starting with v1.0.0

Repository information

This repository is located on GitLab.com.

Usage

To use this library:

  1. Instantiate an instance of Extractor
  2. Call a selector method on it
  3. Call zero or more modifier methods on it
  4. Call:

Selectors

| Method | Description | | ---------------------------------------- | ---------------------------------------------------------------- | | select_by_terminator(terminator: &str) | Selects lines until the first one equal to terminator is found | | select_by_prefix(prefix: &str) | Selects consecutive lines starting with prefix | | select_by_line_count(count: usize) | Selects count lines |

Modifiers

| Method | Description | | ---------------------------- | -------------------------------------------------------------- | | strip_prefix(prefix: &str) | Strips the given prefix from all returned lines | | strip_whitespace() | Strips leading and trailing whitespace from all returned lines | | discard_first_line() | Skips the first line to be returned | | discard_last_line() | Skips the last line to be returned |

Example

Given a variable input with the following text:

```md root: child1: true

child2: two

Example

This is an example Markdown file. ```

... and the following code:

```rust use extract_frontmatter::Extractor;

let mut extractor = Extractor::new(input); extractor.selectbyterminator("---");

let output: String = extractor.extract(); ```

... the variable output will contain:

yml root: child1: true child2: two