簡介
剛開博客不久,對寫作的熱愛之情溢于言表。哈哈哈,希望可以保持下去。
但近來,發(fā)現(xiàn)一個問題:我是使用Cmd Markdown 作為博客的書寫工具的,這里先安利下這個工具,有WEB版和離線版,離線版支持各種操作系統(tǒng),并且實時云同步,大家可以嘗試下。
我不知道大家是怎么通過hexo寫博客的,你可能這樣的(當然首先進到你的博客目錄下),通過一下命令創(chuàng)建一篇新博客:
hexo new yyyy-mm-dd-title.md
然后會在 ./source/_posts
中生成一個md文件,此后,你就可以對此文件修改,并通過 hexo s
在本地預覽,覺得滿足自己要求了,再通過 hexo g
和 hexo d
命令部署到github中,以此達到發(fā)布博客的目的。
我之前是這樣的,通過Cmd Markdown編寫好博客,然后保存成md文件,再把md文件copy到 博客目錄/source/_posts
文件夾中,然后預覽,發(fā)布。當然如果發(fā)現(xiàn)不滿意,又要回去重新修改編寫。多次以后我發(fā)現(xiàn)非常的麻煩,特別是我的博客目錄非常的深,如下所示:
/home/jerry/.shenchao/mybloy/hexo_test/source/_posts/
既然在學Linux,所以我希望shell來幫我簡化這一系列操作,使得只要通過一條命令就可以幫我完成整個流程。
實現(xiàn)
#!/bin/bash
# fileName: hexonew
# 當我用CMD Markdown創(chuàng)建一片博客到指定目錄時,初始命名為title.md,此腳本可以自動幫我修改名字為 yyyy-mm-dd-title.md 并且mv 到 _post 文件夾下
# 當mv 操作后讓我判斷是否要在本地預覽,如果不預覽,那么直接退出,如果需要預覽,預覽后再詢問我是否要發(fā)布到我的網站
# 注意:必須在title.md目錄中運行此腳步
DES_PATH="/home/jerry/.shenchao/myblog/hexo_test/source/_posts"
# 運行hexo的路徑
HEXO_PATH="/home/jerry/.shenchao/myblog/hexo_test"
oldName="$1"
NAME_PREFIX="$(date +%Y-%m-%d-)"
YOUR_WEBSITE="http://shenchao.me"
if [ -e "$oldName" ]; then
#重命名操作
fileName=${NAME_PREFIX}${oldName}
mv $oldName $fileName
#移動文件
mv $fileName $DES_PATH
#詢問是否需要在本地預覽,首先切換到hexo目錄
while true; do
echo -n "是否需要預覽(y/n) -> "
read isPreview
case $isPreview in
y|Y)
# 切換到hexo目錄,并啟動本地服務器
cd $HEXO_PATH
hexo s &
# 休眠2s 使得啟動服務
sleep 2
# 訪問頁面
google-chrome http://localhost:4000
while true; do
echo -n "是否需要部署到github (y/n) -> "
read isDeploy
case $isDeploy in
y|Y)
hexo g
hexo d
while true; do
echo -n "部署成功,是否訪問你的網站 (y/n) -> "
read isVisit
case $isVisit in
y|Y)
google-chrome ${YOUR_WEBSITE}
break
;;
n|N)
break
;;
*)
;;
esac
done
break
;;
n|N)
break
;;
*)
;;
esac
done
break
;;
n|N)
break
;;
*) echo "非法輸入"
;;
esac
done
else
echo "傻逼,你還沒有寫文章或者文件路徑寫錯了,怎么讓我?guī)湍惆。?
exit 1
fi
exit
如何修改成屬于自己的腳本
- 當然此腳步只限于Linux用戶使用
- 修改DES_PATH 為你的存放博客的目錄地址
- 修改HEXO_PATH 為你的博客目錄
- 修改YOUR_WEBSITE 為你的博客域名
- 我使用的是Chrome瀏覽器,所以使用的是
google-chrome
命令,如果是其他瀏覽器,請修改為相應的瀏覽器命令
如何運行腳本
- 當編輯好你的腳本后(以我的腳本名hexonew為例),為此腳本修改權限
chmod 755 hexonew
- 將你的腳本加入環(huán)境變量中,
~/.bin
目錄是我存放自己編寫腳本的目錄,我將此目錄寫入~/.bashrc
文件,此后就可以在任意目錄直接使用腳本名直接運行
export PATH=~/.bin:$PATH
- 進入存放你剛寫完的md文件目錄,執(zhí)行
hexonew 文件名
按照命令行提示,你就可以快速進行部署了。
注意
由于在本地查看博客時,采用了后臺運行
hexo s &
所以如果多次運行 hexonew
會發(fā)現(xiàn)報錯,因為本地服務已經開啟,但其實并不影響操作,忽略即可。如果你想關掉本地服務,那么執(zhí)行 ps -u
找到 PID
,使用 kill PID
殺死進程即可。
如何修改博客
想要對已經發(fā)布的博客進行修改,由于Cmd Markdown 不支持使用命令行進行打開md文件操作,只能通過窗口一層層選擇文件,對于我這種目錄很深的用戶,實在太過麻煩,所以我只好采用了一個笨辦法,通過運行腳本hexomodify
hexomodify 文件名
將要修改的博客轉移出來,然后進行修改,最后再通過上述介紹 hexonew
重新發(fā)布。
#!/bin/bash
# 此腳本用于對已有博客進行修改,通過輸入博客文件的名稱(不要忘記后綴),將此博客移到一個相對外層目錄,方便使用CMD Markdown打開,修改完,再用hexonew 文件名發(fā)布
#博客目錄
BLOG_DIR="/home/jerry/.shenchao/myblog/hexo_test/source/_posts/"
#想要將博客移到哪個目錄
DES_DIR="/home/jerry/Blog/"
fileName=${BLOG_DIR}$1
if [ -e $fileName ]; then
mv $fileName $DES_DIR
newName=${1##*-}
mv $DES_DIR$1 $DES_DIR$newName
else
echo "該文件不存在"
exit 1
fi
要想轉變?yōu)樽约旱哪_步,只要把對應目錄改為自己的即可。
That's all 歡迎訪問我的網站 ,如有問題,請隨時和我聯(lián)系,一起進步!