Hexo自定义页面做首页

前言

如果你想了解如何在 GitHub Pages上传自己写的网页作为首页,hexo博客作为其子页?即自己写的页面作为http://user.github.io的页面,将hexo博客放在http://user.github.io/blog上,怎么做?那就接着往下看...

本教程的前提已经用hexo将博客搭建在yourname.github.io的repository上,接下来跟随博主开始愉快的旅程吧。

说一下我走过的弯路吧,想想真是曲折蜿蜒。音乐music,走起!我看见一座座山,一座座。。。那就是青藏高原。。。好了,言归正传。

之前我的想法是通过子域名访问,即主域名(yoursite.com)和子域名(blog.yoursite.com)都解析到你的GitHub Pagesyourname.github.io。然后再自定义主页,比如index.html。我的博客页面是存放在yourname.github.iorepo中,自定义的主页放在一个叫做Home-Pagerepo中。在yourname.github.ioHome-Page这两个仓库中分别在根目录放置了CNAME文件,文件的内容分别为blog.yoursite.comyoursite.com。其实这样也是可以实现的,只是觉得太繁琐,索性就改成了现在的布局。

页面效果如下图所示,详情请浏览博主的个人博客
http://guoyanjun.top

郭艳军的那些事儿

新建一个repository

名字可以随意,我的是blog
那么现在你有了一个空的repository然后本地clone下按照提示初始化一个master分支,并且开启github pages
注意,这里的repo的目录下是不存在CNAME文件的

修改hexo配置文件_config.yml

找到url下的root 修改成/你起的名字/ (博主这里就是/blog/)url也要改!!!博主一开始没发现。。。

# URL
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url: https://yourname.github.io/blog
root: /blog/
permalink: :year/:month/:day/:title/
permalink_defaults:

然后再找到_config.yml下的deploy,把repository改成你新的repository的clone地址

deploy:
  type: git
  repository: https://github.com/yourname/blog.git (改这里)
  branch: master

重新部署你的博客

在对应的文件下在gitbash上输入hexo g再输入hexo d
这样你的博客就被部署到https://yourname.github.io/blog/上了

清空原来的repository

现在原来那个yourname.github.io的repository你就可以清空,然后留下一个index.html,把你自定义页面的代码复制到里面就好了,然后可以通过以下链接跳转到你的博客界面了。

<a href="blog/"></a>

改主题里URL的ROOT

# Subdirectory | 子目录
## If your site' url is 'http://yoursite.com/blog', set root_url as '/blog/'
## 网站若存放在子目录,请按上面格式填写
## https://hexo.io/docs/configuration.html#URL
root_url: /blog/

像本站用的XXX主题改了以后左边栏会出现问题,这时候需要到left-col.ejs改一下
我是这样解决的

<section class="switch-part switch-part1">
    <nav class="header-menu">
        <ul>
            <% for (var i in theme.menu){ %>
                <!-- 修改这里 -->
                <li>
                    <a href="<%- url_for(theme.menu[i]) %>">
                        <%= i %>
                    </a>
                </li>
                <%}%>
        </ul>
    </nav>
    <nav class="header-nav">
        <ul class="social">
            <% for (var i in theme.subnav){ %>
                <a class="fa <%= i %>" href="<%- url_for(theme.subnav[i]) %>" title="<%= i %>"></a>
                <%}%>
        </ul>
    </nav>
</section>

参考资料

  • 以下附上我觉得不错的参考资料。

1、如何将你的github仓库部署到github pages(repo里建gh-pages分支,上传hexo到blog的gh-pages里面)

2、hexo系列教程:(二)搭建hexo博客

3、hexo + github + 多说 来搭建免费博客 // Netpi 日志 (本地打不开解决方法)

4、如何搭建一个独立博客——简明Github Pages与Hexo教程 (ssh key的设置)

5、hexo你的博客Hexo

6、Hexo 3.1.1 静态博客搭建指南

推荐阅读更多精彩内容