mdbear 0.1.0

A static site generator for Bear Blog style websites.
mdbear-0.1.0 is not a library.

mdBear

A fast static site generator inspired by Bear Blog, written in Rust. Create beautiful, lightweight websites from Markdown files with customizable themes.

Features

  • Generate static sites from Markdown files with YAML frontmatter
  • Support for both pages and blog posts with date-based ordering
  • Customizable themes using Tera templating engine
  • Built-in development server with live preview
  • Asset copying for images, CSS, JavaScript, and other resources
  • Simple initialization command to get started quickly

Installation

Install from crates.io:

cargo install mdbear

Or build from source:

git clone https://github.com/stuPETER12138/mdBear

cd mdBear

cargo install --path .

Usage

Initialize a new site

mdbear init mysite

This creates a new directory with the default structure:

  • config.toml - Site configuration
  • content/ - Markdown content files
  • theme/ - HTML templates

Build the site

mdbear build [options]

Options:

  • -c, --config <CONFIG> - Configuration file (default: "config.toml")

Serve with live preview

mdbear serve [options]

Options:

  • -p, --port <PORT> - Port to serve on (default: 3000)
  • -c, --config <CONFIG> - Configuration file (default: "config.toml")

Configuration

The config.toml file defines your site structure:

site_icon = ":-)"

site_name = "My Site"

author = "Your Name"

output_dir = "dist"



[[nav]]

name = "Home"

path = "index.md"

type = "page"



[[nav]]

name = "Blog"

path = "blog"

type = "blog"

Navigation types:

  • page - Individual pages like "About", "Contact"
  • blog - Collections of blog posts organized by date
  • link - External links

Content Format

Pages and blog posts use Markdown with YAML frontmatter:

---
title: My Blog Post
date: 2023-01-01
---

# My Content

This is my blog post content in Markdown.

Theme System

mdBear uses Tera templates for theming. The default theme includes:

  • page.html - Template for individual pages
  • list.html - Template for blog index pages

License

MIT