前言
前一个简单版本简单的markdown在线解析服务
说明
这个版本之所以加一个pro的后缀,是因为增加了一下功能。
-
增加了/update接口锁,保证同一时间只会有一个groutine在更新文件列表
-
增加了markdown解析后数据的缓存,避免重复解析
-
增加了单个markdown文件的读取锁,避免同一个文件正在解析,重复提交解析任务
文件结构
--manager
manager.go
--markdowns
--templates
index.html
main.go
dependences
"github.com/LK4D4/trylock"
"github.com/microcosm-cc/bluemonday"
"gopkg.in/russross/blackfriday.v2"
实现
manager.go
markdows路径在New()时传入,一般情况是在main运行的根目录建立一个专门用来存放markdown文件的文件夹。
package manager
import (
"fmt"
"io/ioutil"
"os"
"path/filepath"
"strings"
"