#blog #front-matter #soul

soul-blog

Minimal blog post primitives: frontmatter parsing and Markdown-to-HTML rendering

1 unstable release

0.1.0 May 23, 2026

#16 in #soul

MIT license

6KB
99 lines

soul-blog — minimal blog primitives.

Parses YAML frontmatter blocks delimited by --- lines and renders the remaining Markdown body to HTML.

Example

use soul_blog::Post;

let raw = "---\ntitle: Hello\nauthor: Soul\n---\n# Heading\n\nbody";
let post: Post = raw.parse().unwrap();
assert_eq!(post.front.title.as_deref(), Some("Hello"));
assert!(post.render_html().contains("<h1>Heading</h1>"));

soul-blog

Minimal blog post primitives for the Soul ecosystem.

  • YAML frontmatter parsing (between two --- lines)
  • Markdown-to-HTML rendering via pulldown-cmark

Add to your project

[dependencies]
soul-blog = "0.1"

Usage

use soul_blog::Post;

let raw = "---\ntitle: Hello\n---\n# Heading\n\nbody";
let post: Post = raw.parse().unwrap();
println!("{}", post.render_html());

License

MIT

Dependencies

~2.8–4MB
~87K SLoC