思路
参考资料中说的很详细了,利用的是 Markdown Preview Enhanced: Extend Parser功能,在预览时将hexo特有的语法转换为markdown语法,参考资料给的代码片段如下:
1 2 3 4 5 6 7 8 9
| onWillParseMarkdown: function(markdown) { return new Promise((resolve, reject)=> { markdown = markdown.replace( /\{%\s*asset_img\s*(.*)\s*%\}/g, (whole, content) => (`![](${content})`) ) return resolve(markdown) }) },
|
在实际测试时发现存在如下两个问题:
- 正则表达式不准确,不能适配完整的asset_img语法
- 图片位于和文档同名目录下面,生成的新的markdown语法没有包含前缀路径
本人对vscode和js均不熟悉,经过一番搜索,修改后的代码片段如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| onWillParseMarkdown: function(markdown) { return new Promise((resolve, reject)=> { markdown = markdown.replace( /\{%\s*asset_img\s*(\S+)\s*\S*\s*%\}/g, (whole, content) => { abs_filename = vscode.window.activeTextEditor.document.fileName filename = path.basename(abs_filename); filename = filename.substring(0,filename.indexOf('.')) return `![](${filename + "/"+ content})`; } ) return resolve(markdown) }) },
|
参考资料