利用vscode插件与git hook提升hexo编写部署体验

一、vscode编写markdown

markdown是用hexo写博客的可选文本格式之一,通常我们用hexo new xxx来创建一篇新的post。md编辑器有很多,预览我们hexo项目中的md文章的方法也有很多,我的方案是编辑与预览都在vscode中完成。

这里要先提一下在hexo3.0版本中编写md文件时新的图片插入方式:只要在_config.yml中添加post_asset_folder: true,就会在生成新post时创建一个同名文件夹;在md中输入{% asset_img xxx %},就可以插入这个文件夹中的图片。(这种方式较之以前把图片放在source/images,md中用[图片上传失败...(image-1418e4-1531131142965)]的方式更整洁,图片随文章分类)

vscode有很多md的插件,这里推荐两个插件,并针对hexo做一些配置调整,以满足插入图片与预览md的需求:

  1. 粘贴图片Paste Image
    paste-image

    这个插件用来在md文档中粘贴图片,默认会在文档的同级目录下新建一个图片文件,并在md中插入一行相对路径的图片代码。迎合上述hexo的新图片插入方式,可以在vscode的user-settings里新增两条配置:
"pasteImage.path": "${currentFileNameWithoutExt}/",
"pasteImage.insertPattern": "{% asset_img ${imageFilePath} %}"

这样以来,粘贴的图片就会保存到md文档的同名文件夹下,文档中将插入hexo asset语法的代码。

  1. 预览Markdown Preview Enhanced
    Markdown Preview Enhanced

    这个是下载量最高的vscode md预览插件,支持很多功能,并支持扩展md解析语法。现在就要利用这个功能来解决一个问题:vscode内无法预览{% asset_img xxx %}代码的图片。ctrl+shift+P输入Markdown Preview Enhanced: Extend Parser调出插件的parse.js文件,修改其中的onWillParseMarkdown方法:
module.exports = {
  onWillParseMarkdown: function(markdown) {
    return new Promise((resolve, reject)=> {
      markdown = markdown.replace(
        /\{%\s*asset_img\s*(.*)\s*%\}/g,
        (whole, content) => (`![](${content})`)
      )
      return resolve(markdown)
    })
  },
  ...
}

这样以来,我们md中的{% assest xxx %}代码就会在解析预览时被替换成md的图片语法,并且同样采用相对路径,图片预览成功。

二、部署你的blog

hexo有很多部署、发布方式,我的需求主要是:

  1. 本地写文章
  2. 将变更同步到自己的vps上,并且无需登录vps刷新
  3. 同步到第三方远程仓库备份

1由vscode解决,2通过git hooks来实现自动化部署,3只需要在_config.yml中新增deploy的远程仓库即可。

利用git hooks实现自动化部署参见这篇文章-使用 Git Hook 自动部署 Hexo 到个人 VPS,主要思路就是:

  1. 在vps上创建一个空的git仓库;
  2. 在vps上新建一个文件夹存放我们blog的静态页面,即hexo generate生成的public文件夹内容;
  3. 利用git hooks,在该仓库update完成时,自动把内容checkout到2中的网页文件夹;
  4. 利用nginx或其他http server,将http请求定向到网页文件夹。

最后我的_config.yml中的deploy有两个git repo:

# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
  type: git
  repo: 
    server: xxx@xxx:xxx.git
    backup: yyy@yyy:yyy.git

这样以来,每次我写完blog,只需要执行hexo generate --deploy,就会生成新的静态页面,自动部署到vps上,并同步到备份git仓库中。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容