#静态网站生成器 #Markdown #网站 #静态 #生成器 #博客

nightly app blagger

为您的博客提供的愚蠢的静态网站生成器

5 个不稳定版本

0.3.0 2020年12月17日
0.2.0 2020年6月1日
0.1.3 2020年5月26日

#40 in #网站

33 每月下载量

Apache-2.0

28KB
564

blagger

为您的博客

blagger 是一个简单的静态网站生成器,功能不如 Jekyll 强大,但比手写脚本管道更健壮。

使用方法

USAGE:
    blagger [FLAGS] [OPTIONS] --out-dir <out-dir>

FLAGS:
    -h, --help       Prints help information
    -a               Include hidden files
    -V, --version    Prints version information

OPTIONS:
    -b, --base-url <base-url>                 Base URL of the site once deployed
    -f, --feed <feed>                         RSS feed file location. When specified, an RSS feed of posts (markdown
                                              files) is written to the given file
        --hub-template <hub-template>         Template for the special "all tags" tag page. If not given, defaults to
                                              tag_html
    -I, --ignored-files <ignored-files>...    List of files to ignore [default: ]
    -i, --in-dir <in-dir>                     Input directory [default: .]
    -l, --language <language>                 Language tag. Note that not much validation is performed beyond attempting
                                              to convert a Linux-style locale into an HTML language code [env: LANG=]
    -o, --out-dir <out-dir>                   Output directory
        --pages-dir <pages-dir>               Directory relative to `${out-dir}` that tag pages will be rendered to
                                              [default: tags]
        --tag-html <template>                 Template for tag pages. If not given, tag pages are not generated
    -t, --template-html <template-html>       Path to template file for Markdown posts
    -T, --title <title>                       Title for the RSS feed

模板

in-dir 中的所有内容(除了 Markdown 文件(扩展名为 mdmarkdown)和路径 Rust 认为等于 template-html 的文件)将按原样复制到 out-dir。这包括您的 CSS、JavaScript、图像、手写的 HTML(你疯子), whatever。目录结构将被保留 - in/css/what/why.css 变为 out/css/what/why.css

Markdown 文件的处理方式如下

  1. 帖子被预处理并渲染。
    1. 文件在第一次出现 ::===::\n(即 ::===:: 和换行符)时被分割。
      • 分离出来的第一个字符串是“前端内容”。这是一个具有以下模式的 TOML
        • title:必需的。一个字符串。
        • tags:必需的。一个(可能为空)字符串列表。
        • subtitle:可选字符串。
        • date:可选的 TOML 日期时间。
      • 分离出来的第二个字符串是帖子的 Markdown 内容。
    2. template-html 提供的模板文件被渲染。前端内容作为名为 front 的对象提供给模板,帖子的 markdown 内容作为 md_content
      • 在模板中,名为 markdown 的格式化程序可用于渲染 Markdown 字符串。
  2. 渲染的文件使用与其他文件相同的目录保留方案,写入到out-dir,并将扩展名更改为html,以便浏览器知道发生了什么。

模板文件永远不会输出到out-dir

待办事项列表

依赖项

~8.5MB
~212K SLoC