Github+Hexo,搭建专属网站
前言
记得从大二开始,就一直想搭个专属网站,当时使劲抠页面【前端页面是从QQ空间抠的,现在想抠估计没这么容易了】,写代码,忙活半天才把程序弄好。

可惜最终项目还是没上线,因为当时有两问题绕不开
- 需要购买服务器【服务器太贵,现在便宜的阿里云服务器每月都需100左右】。
- 需要运维管理【麻烦且危险,服务器宕了可能丢失数据】。
最近了解到 github + hexo 能完美解决上述问题,啥也不说了,直接开干 .
相关网站
搭建教程网上比比皆是,此处不累赘,下面是搭建过程中用到的相关网站:
hexo中文网站:https://hexo.io/zh-cn/docs/
hexo主题模板:https://www.zhihu.com/question/24422335
hexo+github搭建过程:http://www.jianshu.com/p/df3edc4286d2
Markdown 语法说明:http://www.appinn.com/markdown/
github绑定域名:http://www.jianshu.com/p/1d427e888dda
HEXO如何优化部署及管理
问题:使用hexo时,如果本地文件丢失或者想在其他电脑上修改博客怎么办?
方案:简单地说,每个想建立GitHub Pages的仓库,至少两个分支,一个hexo分支用来存放网站的原始文件,一个master分支用来存放生成的静态网页。
步骤如下:
1、创建仓库,Wasim37.github.io;
2、创建两个分支:master 与 hexo;
3、设置hexo为默认分支(因为我们只需要手动管理这个分支上的Hexo网站文件);
4、使用git clone git@github.com:Wasim37/Wasim37.github.io.git拷贝仓库;
5、在本地Wasim37.github.io文件夹下通过Git bash依次执行npm install hexo、hexo init、npm install 和 npm install hexo-deployer-git(此时当前分支应显示为hexo);
6、修改_config.yml中的deploy参数,分支应为master;
7、依次执行git add .、git commit -m “…”、git push origin hexo提交网站相关的文件;
8、执行hexo generate -d生成网站并部署到GitHub上。
本地修改
1、在本地对博客进行修改(添加新博文、修改样式等等)后,通过下面的流程进行管理:
依次执行git add .、git commit -m “…”、git push origin hexo指令将改动推送到GitHub(此时当前分支应为hexo);
2、然后才执行hexo generate -d发布网站到master分支上。
本地资料丢失或者想在其他电脑上修改博客
1、使用git clone git@github.com:Wasim37/Wasim37.github.io.git拷贝仓库(默认分支为hexo);
2、在本地新拷贝的Wasim37.github.io文件夹下通过Git bash依次执行下列指令:npm install hexo、npm install、npm install hexo-deployer-git(记得,不需要hexo init这条指令)。
安装错误记录
执行hexo d出现以下错误

解决方法:
_config.yml ——> deploy ——> repository
https://github.com/{username}/{username}.github.io.git 修改为
git@github.com:{username}/{username}.github.io.git
文章编辑工具
文章编辑工具一开始我使用的是subline,但因为没有快捷键及预览功能,后来选择了MarkdownPad。可最近发现新版的有道云笔记支持Markdown语法,果断换成了有道。
因为有道除了编辑功能,我更看重的是它对文章的二次备份.
有道云笔记MarkDown使用教程: http://note.youdao.com/iyoudao/?p=1895

其次文章图片如果不想托管在github,可以使用七牛云存储等图床工具。
模板自定义
我使用的博客主题为 icarus,对比可以发现,我在展示细节上做了一些自己的修改。
比如页面展示可以分为左中右三个区域,分别为profile-column,main-column和sidebar-column。
源代码三者宽度比例为3:7:3。为了突出正文,我改为了 2.3:8.4:2.3。
源代码文件位置为:icarus\source\css\ _variables.styl

文章目录
icarus主题模板的文章详细展示默认是不带有文章目录的
如果需要添加文章目录,可以参考http://www.jianshu.com/p/72408c410904
icarus主题添加文章目录,修改themes\icarus\layout\common\article.ejs文件即可。
<% if (!index && post.toc) { %>
修改为
<% if (!index && post.toc != false) { %>
每篇文章可以选择是否开放目录功能
...
title: Github+Hexo,搭建专属网站
categories:
- demo
toc: false
...
Github+Hexo,搭建专属网站的更多相关文章
- GitHub+Hexo 搭建个人网站
GitHub+Hexo 搭建个人网站 转自 https://www.sufaith.com/article/561.html 一.创建GitHub Pages站点 GitHub Pages是一种静态站 ...
- GitHub+Hexo 搭建个人网站详细教程
原文链接 GitHub+Hexo 搭建个人网站详细教程 前言: 随着互联网浪潮的翻腾,国内外涌现出越来越多优秀的社交网站让用户分享信息更加便捷.然后,如果你是一个不甘寂寞的程序猿(媛),是否也想要搭建 ...
- Github+Hexo,搭建专有博客
前言 记得从大二开始,就一直想搭个专属网站,当时使劲抠页面[前端页面是从QQ空间抠的,现在想抠估计没这么容易了],写代码,忙活半天才把程序弄好. 可惜最终项目还是没上线,因为当时有两问题绕不开 需要购 ...
- github+hexo搭建自己的博客网站(六)进阶配置(搜索引擎收录,优化你的url)
详细的可以查看hexo博客的演示:https://saucxs.github.io/ 绑定了域名: http://www.chengxinsong.cn hexo+github博客网站源码(可以clo ...
- github+hexo搭建自己的博客网站(七)注意事项(避免read.me,CNAME文件的覆盖,手动改github page的域名)
详细的可以查看hexo博客的演示:https://saucxs.github.io/ 绑定域名可以查看:http://www.chengxinsong.cn 可以查看在github上生成的静态文件(如 ...
- 使用GitHub+hexo搭建个人独立博客
前言 使用github pages服务搭建博客的好处有: 全是静态文件,访问速度快: 免费方便,不用花一分钱就可以搭建一个自由的个人博客,不需要服务器不需要后台: 可以随意绑定自己的域名,不仔细看的话 ...
- 使用GitHub+Hexo建立个人网站,并绑定自己的域名(Ubuntu环境下)
参考链接: youngzn.github.io hexo官网 博客:从jekyll到hexo hexo建站小结 全过程 简洁过程 使用GitHub+Hexo建立个人网站,并绑 ...
- Linux下使用 github+hexo 搭建个人博客07-next主题接入搜索和站点管理
这是搭建个人博客系统系列文章的最后一篇,如果你是从第一篇一路跟下来的,那么恭喜你,即将完成整个博客网站的搭建.OK,话不多说,开始我们的收官之战. 不知你想过没有,如果我们的文章少,一眼看完整个目录, ...
- Linux下使用 github+hexo 搭建个人博客06-next主题接入数据统计
之前说了 next 主题的优化和接入评论系统.让我们完成了自己所需的页面风格和排版,也可让访问用户在每篇博文评论,完成博主和访问用户的交互. 本章我们继续讲解其他重要功能. 既然是一个网站,那么我们就 ...
随机推荐
- 移植 DeepinQQ 到 Fedora 中
本着自由/开源软件的分享精神创作此文,如有任何权力侵害请联系我,我将积极配合. 移植 DeepinQQ 到 Fedora 中 --也不知道是用移植还是迁移更合适 写在前面 首先,在这里要感谢武汉深之度 ...
- Java中集合框架,Collection接口、Set接口、List接口、Map接口,已经常用的它们的实现类,简单的JDK源码分析底层实现
(一)集合框架: Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(实现接口的类).所有抽象出来的数据结构和操作(算法)统称为集合框架. 程序员在具体应用的时候,不必考虑数据结构和 ...
- [编织消息框架][JAVA核心技术]动态代理应用10-水平扩展方案
服务分为系统服务同用户服务两种 水平扩展是基于系统服务,而拆分方式又有几种方案,按数据跟业务情况来做决策 1.每个服务独立存储(图1):每个服务只负责一个或多个领域实体存储,A服务不能直接修改B服务的 ...
- React组件实现越级传递属性
如果有这样一个结构:三级嵌套,分别是:一级父组件.二级子组件.三级孙子组件,且前者包含后者,结构如图: 如果把一个属性,比如color,从一级传递给三级,一般做法是使用props逐一向下传递,代码如下 ...
- virtual box ubuntu 主机和虚拟机实现互相复制粘贴
链接:http://jingyan.baidu.com/article/574c521917db806c8d9dc18c.html 常规高级里共享粘贴板已经选中双向,(我的已经可以了复制粘贴了),如果 ...
- NodeJs系列二:你好,世界
安装nodejs 什么是nodejs中的模块 hello,world
- PHP的laravel框架后台实现数据导出excel的功能
要想在PHP后台实现excel导入导出功能,一种简单有效的方法就是使用phpexcel插件. 要使用phpexcel插件,首先需要下载composer,这个工具是专门用来管理项目中库之间的依赖关系的. ...
- ZJOI2008树的统计Count
知识点-树链剖分 "在一棵树上进行路径的修改.求极值.求和":乍一看只要线段树就能轻松解决,实际上,仅凭线段树是不能搞定它的.我们需要用到一种貌似高级的复杂算法--树链剖分. ...
- PHP 学习笔记(3)
<?phpif (isset($_POST['action']) && $_POST['action'] == 'submitted') { echo '<pre&g ...
- 如何设置文本不换行省略号显示等CSS常用文本属性
如何让多余的文本省略号显示首先要说几个属性的作用: whitespace:nowrap 中文行末不断行显示 overflow: 控制超出文本的显示方式:hidden 超出范围文本隐藏:scroll 始 ...