前言
虽然markdown的编译器很多,但是同时满足有vim插件和云存储的并没有太多选择, Cmd Markdown满足上述要求,奈何CmdMarkdown没有移动端,在手机想翻笔记的时候有点麻烦。
下面的方案,可以在pc端保存的时候,自动把md文件转化为pdf上传到云上,然后可以在pc和移动端查看md和PDF。缺点是网速看云盘选择。
环境
- 编辑器: Visual Studio Code
需要的插件有:- Vim: VsCode上的Vim插件
- Markdown Preview Enhanced: 预览Markdown,上传图片等都很方便
- Run On Save: 配置任务,在保存的时候自动把md转化为pdf
- Markdown 转 pdf : mume
这里不使用pandoc,pandoc很庞大而且渲染公式的时候使用很臃肿的Latex,中文公式有可能显示不了。
其他的渲染器比如:markdown-it,marked都行。但是因为memu是markdown-preview-enhanced使用的渲染器(也是同一位作者,华人,作品很棒),所以我选这个. - 云存储方案: 随便找一个有同步助手的网盘就可以(OneDrive,坚果云,腾讯微云都有)
配置
- 把在环境中提到的你需要的软件下载好.
Windows基本一路点击下一步就行,Linux需要查看各个软件的安装文档 - 安装mume:
#如果没有安装npm的需要先安装
npm install --save @shd101wyy/mume
#可选,最好翻墙,我使用它从html转pdf
npm i puppeteer
- 根据mume的Example写转化代码:
// /tmp/code/main.js
async function main() {
//获取参数
var filePath = process.argv[2];
console.log(filePath);
await mume.init();
const engine = new mume.MarkdownEngine({
filePath: filePath,
//配置文件,具体见memu的github说明
config: {
mermaidTheme:"'mermaid.dark.css",
breakOnSingleNewLine:true,
// revealjsTheme: "white.css"
codeBlockTheme: "default.css",
printBackground: true,
enableScriptExecution: true, // <= for running code chunks
},
});
await engine.chromeExport({fileType:"pdf",runAllCodeChunks:true})
process.exit(0);
return;
}
main();
- 配置powershell个人配置文件
个人习惯,可略
function md2pdf([String]$fileName){
if((get-content $fileName).Length -eq 0){
return;
}
//放代码memu代码的地方/tmp/code/main.js
node /tmp/code/main.js $fileName
##pandoc -s --toc --from markdown+tex_math_dollars --pdf-engine=xelatex -V mathfont="Palatino Linotype" -V mathfontoptions="SourceHanSerifSC-Regular" -V CJKmainfont="SourceHanSerifSC-Regular" -V geometry:margin=1in $fileName -o $outputName
}
- 配置Run On Save.
//在保存的时候生成.pdf
"emeraldwalk.runonsave": {
"commands": [
{
"match": ".md",
//选择.md文件
"cmd": "pwsh -c \"md2pdf ${file}\""
//使用powershell 6运行转化命令,md2pdf详见上
}
]
},
一起来写笔记吧
这里我选择使用腾讯云网盘
-
使用腾讯云网盘同步助手,选择一个同步文件夹
同步文件夹 -
使用VsCode写笔记
2.PNG -
保存之后,自动生成pdf并通过各个平台的云同步助手同步到云盘
在手机查看pdf
网友评论