采用Hexo在github上部署个人轻博客

前记


今天真的是做了好多的事啊,主要是将hexo和github一起做个人博客的东西搞了一边,主要都通了。
然后,呢,也没什么喽。

关于hexo更换主题以及对于 mathjax 的支持工作,回去继续搞吧。
上文。

采用hexo在github上搭建个人博客


1. 安装 node.js 以及 调试 npm

  • 安装 node.js 和 npm

下载的最新版本node.js是集成了 npm 的,所以统一安装后即可使用。
通过如下代码查看安装的版本,确保安装成功。

    node -v
    npm -v
  • 调试 npm
  1. 参考网页
  2. 在 nodejs 安装目录下建立 "node_global"及"node_cache"两个文件夹
  3. 启动 cmd,输入
    npm config set prefix "C:\Program Files\nodejs\node_global"
    npm config set cache "C:\Program Files\nodejs\node_cache"
  1. 安装 express 试验
    npm install express -g
  1. 设置系统变量
    用户变量: PATH 修改为 C:\Program Files\nodejs\node_global
    新建系统变量:NODE_PATH,且输入 C:\Program Files\nodejs\node_global\node_modules
    并通过 cmd 输入 node 进入node环境,输入 require('express') 测试相关信息

2. 安装 hexo 并在本地搭建平台

  • 安装 hexo
    npm install hexo-cli -g
  • 本地搭建平台

首先,新建目的文件夹,比如我的在:E:\S_blog\Hexo.blog ;
然后,将 cmd 调整地址到上述文件夹,运行命令
hexo init npm install
可以看到在该文件下生成了大批新文件;
然后,运行 hexo server 便可以在本地 http://localhost:4000 查看效果,此时为hexo默认页面;
然后,通过命令新建 md 文件,通过书写md文件便可以生成自己的新博客内容

    hexo new 名称

最后,通过下述命令来查看本地效果

    hexo generate
    hexo server

3. 将内容同步到 github ,并在自己的域名中生成博客

同jekyll一样,我为了试验hexo的同时不影响原来账户搭建的基于jekyll的博客,所以重新申请了github账户。流程相同,在这里只需要新建一个库,一样的是 用户名.github.io的库。然后里面空的即可。

  • 修改 _config.yml 配置文件
    email: *********@qq.com # 要用当前github账号的申请邮箱
    deploy:
      type: git
      repository: https://github.com/*********/*********.github.io.git
      branch: master
    # URL 这一项可以全部不管
  • 通过 git BASH 进入当前目录,并运行
    npm install hexo-deployer-git --save # 针对的是上述 deploy 的 type 是github时运行不成功的情况

然后,运行

    hexo g(enerate)
    hexo d(eploy)

然后,如果成功的话,在bash里面会提示输入 github 的用户名 和 密码。输入即可同步到github了。自己的页面也就可以用了。

4. 更换主题以及添加针对自己的必要插件

  • 所选主题为 Yilia

github上适配于hexo的海量主题

自己所选主题为地址为

主题内部已经配置了较多东西,比如 mathjax 的支持,多说的评论支持等。所以对于新手还是很不错的,以后有想要改进的地方也可以在这个基础上修改。

将主题 clone 到自己的博客目录下,

    $ git clone https://github.com/litten/hexo-theme-yilia.git themes/yilia

修改hexo根目录下的 _config.yml : theme: yilia
然后,再修改 theme/yilia/ 目录下的 _config.yml,配置自己的相关信息。

  • 添加 mathjax 的支持

(参考地址)

首先,进入 themes/yilia/layout/_partial/ 目录下,新建文件 mathjax.ejs,并将代码复制到该文件:

    <!-- mathjax config similar to math.stackexchange -->

    <script type="text/x-mathjax-config">
      MathJax.Hub.Config({
        tex2jax: {
          inlineMath: [ ['$','$'], ["\\(","\\)"] ],
          processEscapes: true
        }
      });
    </script>

    <script type="text/x-mathjax-config">
        MathJax.Hub.Config({
          tex2jax: {
            skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code']
          }
        });
    </script>

    <script type="text/x-mathjax-config">
        MathJax.Hub.Queue(function() {
            var all = MathJax.Hub.getAllJax(), i;
            for(i=0; i < all.length; i += 1) {
                all[i].SourceElement().parentNode.className += ' has-jax';
            }
        });
    </script>

    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
    </script>

然后,在themes/pacman/layout/_partial/after_footer.ejs 的最后一行,增加对mathjax的引用

    <% if (theme.mathjax){ %>
    <%- partial('mathjax') %>
    <% } %>
  • 添加 返回顶部 按钮

参考网址
与添加mathjax类似,首先新建文件 /themes/yilia/layout/_partial/totop.ejs,并添加如下代码(以自己为例)

    <div id="totop" style="position:fixed;bottom:150px;right:50px;cursor: pointer;">
    <a title="返回顶部"><img src="/img/scrollup.png"/></a>
    </div>

然后,添加js代码,新建文件 /themes/yilia/source/js/totop.js ,并添加

    (function($) { 
        // When to show the scroll link
        // higher number = scroll link appears further down the page   
        var upperLimit = 150;
        
        // Our scroll link element
        var scrollElem = $('#totop');
       
        // Scroll to top speed
        var scrollSpeed = 500;
       
        // Show and hide the scroll to top link based on scroll position   
        scrollElem.hide();
        $(window).scroll(function () {            
            var scrollTop = $(document).scrollTop();       
            if ( scrollTop > upperLimit ) {
                $(scrollElem).stop().fadeTo(300, 1); // fade back in           
            }else{       
                $(scrollElem).stop().fadeTo(300, 0); // fade out
            }
        });
        // Scroll to top animation on click
        $(scrollElem).click(function(){
            $('html, body').animate({scrollTop:0}, scrollSpeed); return false;
        });
    })(jQuery);

然后,添加引用,修改/themes/yilia/layout/_partial/after_footer.ejs,在末尾添加以下代码

    <%- partial('totop') %>
    <script src="<%- config.root %>js/totop.js"></script>

最后,将该图片复制到 /themes/pacman/source/img 目录下,且文件名为 scrollup.png

说明:如果有的主题中没有 _partial 文件夹,则找到里面的相应的文件夹即可,里面包含了post文件夹的那个。

  • 导航栏添加自定义页面

首先,新建 hexo n page "about"
然后,编辑 博客/source/about/index.md 内容
最后,修改themes/yilia/_config.yml文件

    menu:
      关于: /about

同样,可以采用相同方式建立 index 索引目录。

  • 通过 swifttype 进行 站内搜索

参考网址
首先,注册一个swifttype的账号
然后,需要新建一个搜索引擎,输入自己的 blog 地址 http://*********.github.io/ ,然后输入 自己想叫的这个搜索引擎的名字,star_searchengine
然后,在该搜索引擎界面,点击菜单栏中 的 install ,并进行多项设置:

主要是 install code 这一项,会生成一段 script 代码,这份代码需要复制到多个文件中。so 记得保留。

    <script type="text/javascript">
      (function(w,d,t,u,n,s,e){w['SwiftypeObject']=n;w[n]=w[n]||function(){
      (w[n].q=w[n].q||[]).push(arguments);};s=d.createElement(t);
      e=d.getElementsByTagName(t)[0];s.async=1;s.src=u;e.parentNode.insertBefore(s,e);
      })(window,document,'script','//s.swiftypecdn.com/install/v2/st.js','_st');

      _st('install','ERewtaPxns4BFertxsm1','2.0.0');
    </script>

由于yilia主题中没有设置google和百度的搜索栏,因此在install设置中都选择的是 默认的搜索框(位于页面底部),以及默认的搜索结果页面。完成安装后,进入自己博客的配置项设置中。

  1. 修改 blog\themes\yilia\ _config.yml 文件的末尾添加
swift_search:
  enable: true
  1. blog\themes\yilia\layout\ _partial 目录下,将上面install swifttype时候生成的代码,copy到 header.ejs 和 footer.ejs中,两个都是出于文件最后一个标签 </div> 之前

  2. 同时,在该文件夹下 新建 search.ejs,同样把代码copy进去即可。

(关于此步是不是必要,不太清楚了,可以试验下,因为我觉得只要把这个代码加入到 header里就可以)

P.S. 在采用jekyll时,与这里类似,就是将生成的代码在放在 _includes/ 文件夹下面的 header.html中即可

  • 加入 disqus 评论插件

首先,申请账户:
然后,https://disqus.com/websites/?utm_source=*********&utm_medium=Disqus-Footer 该网址去申请 在自己的网站上使用 disqus
然后,设置(可略去),然后选择 universal code 格式进行安装,copy代码到自己的平台中
首先是 主题 \ layout \ _partial ,footer.ejs 中加入如下代码:

    <div id="disqus_thread"></div>
    <script type="text/javascript">
        /* * * CONFIGURATION VARIABLES * * */
        var disqus_shortname = '********';
        
        /* * * DON'T EDIT BELOW THIS LINE * * */
        (function() {
            var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
            dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
            (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
        })();
    </script>
    <noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript" rel="nofollow">comments powered by Disqus.</a></noscript>

然后为了显示评论数,将下列代码同样加入到 footer 中

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

推荐阅读更多精彩内容