使用gulp、markdown-it、Typescript等,读取本地markdown文档生成静态网站,支持tags和搜索功能。
# 下载项目文件或者直接下载zip包解压(https://github.com/myestorm/markdown-to-html/archive/master.zip)
git clone https://github.com/myestorm/markdown-to-html.git
# 完成后进入项目目录
cd markdown-to-html
# 安装项目依赖包
npm install -d
# 生成静态网站
npm run build
# 启用本地http服务
npm run serve
# 浏览器访问 http://localhost:8080,即可查看生成后的站点
{
mode: string, // [home, search, normal, single, tags, collection, timeline] // 默认:normal
title: string, // 标题
publishDate: string, // 2020-09-14 21:23:12
order: number, // 数字,越小越靠前
icon?: string, // 对目录说明文档有效
keywords?: string[], // [黄花节的杂感, 鲁迅]
desc?: string, // 描述
recommend?: number, // 推荐位置 1:首页推荐 1:右侧文集 2:右侧文章
cover?: string, // 封面
timeline?: [] // 仅对mode = timeline 有效
}
- 增加配置字段
- 内容页图片支持相册模式查看
- 支持checkbox list
- 支持本地视频和音频
![text](1.mp4)
![text](1.mp3)
- 非本站链接新窗口打开
- 更新timeline样式
更新文件列表(** 代表全部):
- src/config/index.ts [注意:siteConfig增加字段copyrightText,其他未修改]
- src/lib/**
- src/models/**
- src/template/assets/**
- src/template/components/footer.html
- src/template/config.json
- src/template/timeline.html
- 更换了模板,能更好的兼容手机
- 统一了Markdown的html样式
- 采用了Typescript重构代码
- 数据和模板完全分离,便于扩展mode
- 拼音相同的可能会彼此覆盖,可以采用MD5来解决,只是觉得路径太难看,设置默认关闭了
- 优化搜索JSON的大小
- 增加public目录,以便放置一些装饰性图片
- 时间轴以年划分文档
- 精简配置文件
- 其他
src/config/index.ts 配置说明:
export const siteConfig: SiteConfig = {
hosts: '/', // 网址,必须以/结尾
siteName: 'markdown-to-html', // 站点名称 将出现在页面title标签内
siteRoot: 'www', // 站点根目录
logo: '/img/logo_primary.png', // 标志
logoTxt: 'Totonoo',
logoSuffix: '.com',
beian: '粤ICP备12041241号',
favicon: '/favicon.ico',
copyright: ['2005', new Date().getFullYear() + ''], // 底部copyright的年限
copyrightText: 'Totonoo.com'
};
export const templateConfig: TemplateConfig = {
root: './src/template',
config: 'config.json',
pageSize: 20 // 列表分页大小
};
export const docConfig: DocConfig = {
root: 'documents', // 文档目录
listDoc: 'readme.md' // 不能是中文
};
- cover 可以是相对路径也可以是绝对路径,相对路径会自动转换,绝对路径不会处理。
- 图片的目录和文件名必须是英文字母,符号或数字。
- 如果同目录两个中文转出来的拼音是一致的会被覆盖。
开发这个原因是自己有一堆md文档笔记,想成弄一个网站,网上找了一圈,要么很难用懂,要么界面不喜欢,所以就自己动手了。其中有很多不足,但是“Done is better than perfect”。