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

2015-11-22  本文已影响742人  star_phoenix

前记


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

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

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


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

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

    node -v
    npm -v
  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 并在本地搭建平台

    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的库。然后里面空的即可。

    email: *********@qq.com # 要用当前github账号的申请邮箱
    deploy:
      type: git
      repository: https://github.com/*********/*********.github.io.git
      branch: master
    # URL 这一项可以全部不管
    npm install hexo-deployer-git --save # 针对的是上述 deploy 的 type 是github时运行不成功的情况

然后,运行

    hexo g(enerate)
    hexo d(eploy)

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

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

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,配置自己的相关信息。

(参考地址)

首先,进入 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的账号
然后,需要新建一个搜索引擎,输入自己的 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中即可

首先,申请账户:
然后,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>
上一篇下一篇

猜你喜欢

热点阅读