1 unstable release

0.21.0 Jan 11, 2022
0.20.3 Nov 18, 2021
0.20.1 Oct 28, 2021
0.18.0 May 28, 2020
0.0.1 Jun 5, 2016

#2045 in Command line utilities

Download history 8/week @ 2022-06-07 4/week @ 2022-06-21 54/week @ 2022-07-05 108/week @ 2022-07-12 2/week @ 2022-07-19 17/week @ 2022-07-26 58/week @ 2022-08-02 1/week @ 2022-08-09 3/week @ 2022-08-16 109/week @ 2022-08-23 3/week @ 2022-08-30 5/week @ 2022-09-06 54/week @ 2022-09-13 4/week @ 2022-09-20

66 downloads per month

MIT license

1.5K SLoC

Rust 1K SLoC Pan 282 SLoC // 0.0% comments


crate Docs MIT/Apache2 licensed dependency status Build Status

点击中文版 README进入中文文档。

Static site generator from markdown files with features:

  • TeX style math support
  • file path is the post url
  • file name is the post title
  • post can be hidden(link does not be insert into index/tag page)

you can check the demo site to learn the usages of mdblog.


mdblog is implemented by rust language(2018 edition), so you need cargo command:

cargo +nightly install mdblog

mdblog will be installed in your cargo binary directory(~/.cargo/bin/).


mdblog can be use as a command:

$ mdblog -h
static site generator from markdown files

    mdblog <SUBCOMMAND>

    -h, --help       Prints help information
    -V, --version    Prints version information

    build    Build the blog static files
    help     Prints this message or the help of the given subcommand(s)
    init     Initialize the blog directory layout
    new      Create a blog post
    serve    Serve the blog, rebuild on change
    theme    Blog theme operations

you can also check the subcommand usage:

$ mdblog serve -h
Serve the blog, rebuild on change

    mdblog serve [OPTIONS]

    -h, --help       Prints help information
    -V, --version    Prints version information

    -p, --port <port>    Serve the blog at<port> [default: 5000]

init blog

$ mdblog init myblog

blog directory(myblog) layout is initialized:

├── config.toml
├── media
├── posts
│   ├── hello.md
│   └── math.md
└── _themes
  • config.toml: blog config file
  • media: blog media directory
  • posts: blog posts directory
  • posts/hello.md: a markdown style post
  • _themes: blog themes directory

build blog

$ cd myblog
$ mdblog build

the blog static files are build into the subdir _build, the current blog directory(myblog) layout is:

├── config.toml
├── media
├── posts
│   ├── hello.md
│   └── math.md
├── _themes
└── _builds
  • _builds: generated static-site top directory

serve blog

$ mdblog serve

open the site index page automatically, and re-generate your static-site when you add or change content,

new post

create a new post titled another:

$ mdblog new another

a new markdown file posts/another.md is created, you can edit it for the new post.

refresh the index page, you will find the new post.


site_url = ""
site_name = "Mdblog"
site_motto = "Simple is Beautiful!"
footer_note = "Keep It Simple, Stupid!"
media_dir = "media"
build_dir = "_build"
theme = "simple"
theme_root_dir = "_themes"
rebuild_interval = 2
posts_per_page = 20


~473K SLoC