通过Shell快速发布博客

简介

刚开博客不久,对写作的热爱之情溢于言表。哈哈哈,希望可以保持下去。
但近来,发现一个问题:我是使用Cmd Markdown 作为博客的书写工具的,这里先安利下这个工具,有WEB版和离线版,离线版支持各种操作系统,并且实时云同步,大家可以尝试下。

我不知道大家是怎么通过hexo写博客的,你可能这样的(当然首先进到你的博客目录下),通过一下命令创建一篇新博客:

hexo new yyyy-mm-dd-title.md

然后会在 ./source/_posts 中生成一个md文件,此后,你就可以对此文件修改,并通过 hexo s 在本地预览,觉得满足自己要求了,再通过 hexo ghexo d 命令部署到github中,以此达到发布博客的目的。
我之前是这样的,通过Cmd Markdown编写好博客,然后保存成md文件,再把md文件copy到 博客目录/source/_posts 文件夹中,然后预览,发布。当然如果发现不满意,又要回去重新修改编写。多次以后我发现非常的麻烦,特别是我的博客目录非常的深,如下所示:

/home/jerry/.shenchao/mybloy/hexo_test/source/_posts/

既然在学Linux,所以我希望shell来帮我简化这一系列操作,使得只要通过一条命令就可以帮我完成整个流程。

实现

#!/bin/bash
# fileName: hexonew
# 当我用CMD Markdown创建一片博客到指定目录时,初始命名为title.md,此脚本可以自动帮我修改名字为 yyyy-mm-dd-title.md 并且mv 到 _post 文件夹下
# 当mv 操作后让我判断是否要在本地预览,如果不预览,那么直接退出,如果需要预览,预览后再询问我是否要发布到我的网站
# 注意:必须在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 "傻逼,你还没有写文章或者文件路径写错了,怎么让我帮你啊!"
    exit 1

fi

exit

如何修改成属于自己的脚本

  1. 当然此脚步只限于Linux用户使用
  2. 修改DES_PATH 为你的存放博客的目录地址
  3. 修改HEXO_PATH 为你的博客目录
  4. 修改YOUR_WEBSITE 为你的博客域名
  5. 我使用的是Chrome浏览器,所以使用的是google-chrome命令,如果是其他浏览器,请修改为相应的浏览器命令

如何运行脚本

  1. 当编辑好你的脚本后(以我的脚本名hexonew为例),为此脚本修改权限

chmod 755 hexonew

  1. 将你的脚本加入环境变量中,~/.bin 目录是我存放自己编写脚本的目录,我将此目录写入 ~/.bashrc 文件,此后就可以在任意目录直接使用脚本名直接运行

export PATH=~/.bin:$PATH

  1. 进入存放你刚写完的md文件目录,执行

hexonew 文件名

按照命令行提示,你就可以快速进行部署了。

注意

由于在本地查看博客时,采用了后台运行

hexo s &

所以如果多次运行 hexonew 会发现报错,因为本地服务已经开启,但其实并不影响操作,忽略即可。如果你想关掉本地服务,那么执行 ps -u 找到 PID ,使用 kill PID 杀死进程即可。

如何修改博客

想要对已经发布的博客进行修改,由于Cmd Markdown 不支持使用命令行进行打开md文件操作,只能通过窗口一层层选择文件,对于我这种目录很深的用户,实在太过麻烦,所以我只好采用了一个笨办法,通过运行脚本hexomodify

hexomodify 文件名

将要修改的博客转移出来,然后进行修改,最后再通过上述介绍 hexonew 重新发布。

#!/bin/bash
# 此脚本用于对已有博客进行修改,通过输入博客文件的名称(不要忘记后缀),将此博客移到一个相对外层目录,方便使用CMD Markdown打开,修改完,再用hexonew 文件名发布

#博客目录
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

要想转变为自己的脚步,只要把对应目录改为自己的即可。

That's all 欢迎访问我的网站 ,如有问题,请随时和我联系,一起进步!

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

推荐阅读更多精彩内容