开发者的博客写作环境
作为一个开发者,本时有工作中肯定有技术上各种点点滴滴想记下来,毕竟好记忆不如烂笔头。当然使用一个笔记工具完全可以满足这个需求。但同时我在想能否将这些点点滴滴不仅记起来,同时这些知识也成为展现自己技术能力的一张名片呢?自然而然就想到很多大牛的技术博客。进而发现了github+hexo的组合,但我在使用中发现就为了写篇技术博文还得开chrome, iTerm2, Sublime 3三个程序,而且还在这三个程序间频繁切换了,太痛苦了有没有。不能在一个程序里搞定所有的事情吗?经过反复探索,终于找到了一个办法,那就是hexo-admin。下面简单记述一下我的实施步骤。
安装hexo
npm install hexo-cli -g
- 初始化博客工程
cd ~/dev/git/
hexo init blog
cd blog
npm install
新建blog对应的github仓库
在github里创建一个git仓库
在上述图中填写名称时一定要填写你的github帐户的git用户名+github.io, 比如我的github帐户的github用户为abcd,则应该填写abcd.github.io
将blog推送至github
npm install hexo-deployer-git --save
编辑_config.yml文件,在里面填写好git部署的连接信息
deploy:
type: git
repo: git@github.com:abcd/abcd.github.io.git
branch: master
message: "博客更新: {{ now('YYYY-MM-DD HH:mm:ss') }}"
执行命令将blog推送至github
hexo deploy -g
等待片刻后就可以访问http://abcd.github.io
查看你自己的博客了。
使用hexo-admin搞定所有工作
发现没有,在上面的步骤里,你至少打开了两个程序:iTerm2、Chrome。如果你还想对Markdown文件进行编辑,少不了还得打开一个类似于Sublime 3的程序。现在我们用hexo-admin一次搞定所有工作。
安装hexo-admin
1 |
npm install hexo-admin -g |
---|
设置部署命令
在blog目录下新建一个文件deploy_cmd.sh,在其中添加如下内容
#!/bin/bash
/usr/local/bin/node /usr/local/bin/hexo deploy -g 2>&1
给这个文件添加可执行权限chmod +x /Users/abcd/dev/git/blog/deploy_cmd.sh
在_config.yml文件中添加如下内容
admin:
deployCommand: /Users/abcd/dev/git/blog/deploy_cmd.sh
注意这里文件的路径你得自己修改正确哦
试用hexo-admin的功能
执行命令启动本地server
1 |
hexo server -d |
---|
这里应该就可以使用Chrome访问http://127.0.0.1:4000/admin
,在这里可以查看你写的博文,可以新建博文,编辑博文,甚至可以在这里直接部署blog至github。
最后设置hexo的本地server随用户启动登录自动启动
按Ctrl-C结束刚才的hexo本地server, 然后新建文件~/Library/LaunchAgents/hexo-admin.plist,内容如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Disabled</key>
<false/>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>hexo-admin</string>
<key>WorkingDirectory</key>
<string>/Users/abcd/dev/git/blog</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/node</string>
<string>/usr/local/bin/hexo</string>
<string>server</string>
<string>-d</string>
</array>
<key>RunAtLoad</key>
<false/>
</dict>
</plist>
启动hexo-admin
1 |
launchctl load ~/Library/LaunchAgents/hexo-admin.plist |
---|
以后这个hexo本地服务器就可以自启动了。
总结
至此,以后就可以在Chrome里访问http://127.0.0.1:4000/admin
进行博文的撰写及发布了,发布完毕之后可访问http://abcd.github.io
看一看blog的真实效果。
- OutOfMemoryError异常系列之方法区溢出和运行时常量溢出池溢出
- 代码转换工具 Code Converter 2013
- OutOfMemoryError异常系列之Java堆溢出
- android ndk之hello world
- ScheduledExecutorService和timer的异同
- 【精心解读】关于Jupyter Notebook的28个技巧
- Web项目接口自动化测试框架搭建
- 一文读懂Hadoop、HBase、Hive、Spark分布式系统架构
- 《Spring敲门砖之基础教程第一季》 第二章(1) Spring框架之IOC首例-HelloWorld
- Java9中的GC调优基础
- javascript深入理解js闭包
- https连接的前几毫秒发生了什么
- android自定义view实现progressbar的效果
- 还是不靠谱!多维LSTM网络预测比特币价格【机器学习应用区块链系列二】
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 程序员自我修养之 Git 提交信息和分支创建规范
- Django使用redis作为缓存系统
- 一天一大 leet(两个数组的交集 II)难度:简单-Day20200713
- 2020年研一末找实习总结(面经)
- 一天一大 leet(三角形最小路径和)难度:中等-Day20200714
- 一天一大 leet(判断二分图)难度:中等-Day20200716
- 一天一大 lee(被围绕的区域)难度:中等-Day20200811
- 一天一大 leet(搜索插入位置)难度:简单-Day20200717
- 一天一大 leet(两数之和 II - 输入有序数组)难度:简单-Day20200720
- 一天一大 leet(分割数组的最大值)难度:困难-Day20200725
- 一天一大 leet(矩阵中的最长递增路径)难度:困难-Day20200726
- 一天一大 lee(克隆图)难度:中等-Day20200812
- 一天一大 lee(有效的括号)难度:简单-Day20200814
- 一天一大 leet(判断子序列)难度:简单-Day20200727
- 一天一大 leet(寻宝)难度:困难-Day20200729