美文网首页
采用Hexo在github上部署个人轻博客

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

作者: star_phoenix | 来源:发表于2015-11-22 15:17 被阅读742次

    前记


    今天真的是做了好多的事啊,主要是将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>
    

    相关文章

      网友评论

          本文标题:采用Hexo在github上部署个人轻博客

          本文链接:https://www.haomeiwen.com/subject/ovqrhttx.html