markdown-styles是一个开源项目,大概是根据一种模板语言,用JS引擎(/usr/local/lib/node_modules/markdown-styles/node_modules/handlebars/dist/cjs/handlebars/compiler/parser.js)来解释这种模板以及MD语法,最终形成HTML文件。

安装markdown-styles

首先安装下载工具:
sudo apt-get install npm

安装markdown-styles
sudo npm install -g markdown-styles

这时运行
generate-md

可能有错误提示:
/usr/bin/env: node: No such file or directory

修改一下vim /usr/local/lib/node_modules/markdown-styles/bin/generate-md,将#!/usr/bin/env node改为#!/usr/bin/env nodejs

使用markdown-styles

使用非常简单: generate-md --style github

输入默认使用的是当前目录下的./input子文件夹,输出默认为./output文件夹,自定义布局./my-layout文件夹,使用自定义布局要用--layout代替--style

定制markdown-styles

由于github的模板就是通用的,有时自己想加一些东西,比如:
(1)在页尾加一个返回首页的链接
(2)在页首加一个内容快链
(3)添加HTML页面的meta,比如keywords和description

大概方法,将github的模板导出成自定义:
generate-md --export github --output ./my-layout

然后修改./my-layout/page.html模板,对应的修改为:
(1)添加页脚

<article class="markdown-body">
  {{~> content}}
  {{#if home_page}}
  {{else}}
    <hr>
    <p><a href="/">[回首页]</a></p>
  {{/if}}
</article>

(2)添加快链
{{-> toc}}
(3)添加meta

{{#if keys}}<meta name="keywords" content="{{#each keys}}{{ this }}, {{/each}}" />{{/if}}    
{{#if desc}}<meta name="description" content="{{#each desc}}{{ this }}, {{/each}}" />{{/if}}

然后在页面定义两组变量,比如:

keys: ["https在apache中的使用", "https在tomcat中的使用"]
desc: ["https的原理工作模式及应用范畴"]
categories: ['术']
---

但有一点奇怪的地方是,这个方式在某些md里不行,暂还未发现规律,不知道是不是引擎的bug。

更多资料了解这里