搭建一个Hexo博客

0x00 背景

一直想搭建一个自己的博客,之前在Aliyun虚拟主机上搭了一个WordPress+MySQL的个人博客。后来维护成本太大,主机和域名都没有续费被回收了。最近再看别人在写,自己也想搞一个试试水。研究了几天,发现Hexo还真不错,所以就选了这个。

目前,博客搭建在coding.net上,使用万网的域名。

Hexo介绍

Hexo是一款基于Node.js的博客框架,可以将Markdown格式的文本渲染为HTML代码。所以,博客基本就是纯静态,维护相对方便。但是缺点也很明显——经常换编写环境使用不便,因为它的所有渲染代码都是在本地存储的。

0x01 选择域名和代码托管服务提供商

域名提供商是负责域名注册的服务机构,简称注册商,主要负责域名向域名管理局申请批准、域名维护更新、域名续费、域名解析等服务支持,选购域名需要找信誉比较好的服务商如卓汇互联,查询域名可以直接进入卓汇互联域名注册页面进行操作,域名种类较多,域名名称可选空间也较大。

主要的域名提供商,国外有Godaddy、NameCheap等;国内的主要就是万网(Aliyun),百度等。选择国外的域名提供商的好处在不用进行国内备案相关的手续,但是就是贵。Godaddy注册的域名首年优惠力度很大,但是续费的时候基本没有什么优惠了,基本100多一年。国内的万网基本首年几块到几十块的都有,续费基本在40以下;但是国内的政策还不明朗,有可能需要繁琐的备案手续。

代码托管服务提供上国外基本就是大家熟知的Github,国内就是coding.net(原Gitcafe)。选择国内的coding.net很简单,就是快。由于Github在国内没有服务器,所以同步代码和访问速度感人。

0x02 下载Hexo

Hexo是基于Node.js编写的,所以首先需要下载Node.js。使用命令

sudo apt-get install nodejs

Node.js默认使用的是国外的源,速度非常感人,所以需要我们切换到国内的源,这里我使用taobao的源。

npm config set registry http://registry.npm.taobao.org/

使用npm来下载Hexo

sudo npm install -g hexo-cli

输入hexo,如果出现下列提示,则说明安装成功了。

Usage: hexo <command>Commands: clean Removed generated files and cache. config Get or set configurations. deploy Deploy your website. generate Generate static files. help Get help on a command. init Create a new Hexo folder. list List the information of the site migrate Migrate your site from other system to Hexo. new Create a new post. publish Moves a draft post from _drafts to _posts folder. render Render files with renderer plugins. server Start the server. version Display version information.Global Options: --config Specify config file instead of using _config.yml --cwd Specify the CWD --debug Display all verbose messages in the terminal --draft Display draft posts --safe Disable all plugins and scripts --silent Hide output on consoleFor more help, you can use 'hexo help [command]' for the detailed informationor you can check the docs: http://hexo.io/docs/

如果显示缺少模块

0x03 创建Blog

使用命令创建一个博客环境

hexo init "名字"

cd进入这个目录,可以看到相关文件

~ ls_config.yml db.json node_modules package.json scaffolds source themes

博客的配置文件为_config.yml,配置文件的相关说明https://hexo.io/zh-cn/docs/configuration.html

运行测试环境

hexo server

默认端口是4000,访问4000端口可以看博客的效果

虽然Hexo的默认主题也算好看,但是功能等其他方面可能不尽如人意。好在Hexo提供的很多第三方主题https://hexo.io/themes/。关于主题的安装方法按照作者提供的方法就好了。

0x04 部署到代码托管平台

在代码托管平台注册就不再详细阐述,主要说明如何创建一个项目。

1.Github上创建项目

首先选择New repository,然后在Repositiry Name中填写YourID.github.io,例如我的id是weaponx,则需要在Respository Name中填写weaponx.github.io

2.Coding.net上创建项目

项目名称可以任意填写,一定选择公开不要选成私有了。

3.配置Hexo

修改Hexo的配置文件

deploy: type: git repo: coding: https://git.coding.net/YOURID/YOURRESPOSIROTY.git,master github: https://github.com/YOURID/YOURRESPOSITORY.github.io.git,master

然后使用命令同步上去即可

hexo deploy -g

0x05 将域名解析到代码托管平台

DNS服务提供商这里选择DNSPod。因为域名是在万网注册的,默认使用万网的DNS,所以需要切换到DNSPod。

在修改为非万网DNS中填写DNSPod提供的dns服务器。然后进入DNSPod管理页面添加网址,并添加CNAME解析。

1.解析到Github

在Github上添加域名解析,首先要在项目中创建一个文件CNAME,文件的内容为域名,以我的域名为例文件内容为

weaponx.site

然后在DNSPod中创建解析,记录类型选择CNAME,记录值选择YOURID.github.io,主机记录输入@。再添加一样的条目,主机记录输入*。 在这里解释一下@记录,意思就是空。用我的域名为例,@记录指的是weaponx.site*记录是任意,可以把xxx.weaponx.site解析到我的Github Pages上。

到这,域名就可以正确的解析到Github pages上了。

2.解析到Coding.net

解析到Coding.net上就比较简单,只需要做一个简单的设置即可。

0x06 使用评论插件

因为我们的Hexo博客是纯静态的,所以评论需要依赖与评论服务提供商。主流的服务提供商有Disqus(国外),duoshuo(多说,国内)。因为一些大家知道的原因,Disqus已经访问不了了。其实这也是一种优势,可以过滤掉一些垃圾评论内容(广告),提高评论质量。

多说由于是国内的厂商,速度很快。但是经常大姨妈,而且没有有效的反垃圾措施。所以我暂时使用Disqus作为我的评论插件。

过程中踩过的坑

  • 文章的摘要,在文章摘要上加一行代码

<!-- more -->

  • 多个Tag需要这样表示

tags:- tag1- tag2- tag3

而不是

tags: tag1, tag2, tag3

  • 代码高亮:通常在Markdown语法中代码高亮是使用Tab或者四个空格来表示,但是经过测试Hexo无法识别这种高亮方式,只能使用

```pythonimport osdef run(): print "Code Highlight test"if __name__ == "__main__": run()```

  • 每次提交会删除CNAME文件,在source文件夹下创建一个CNAME文件就好,404.html同理。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯大数据的专栏

iOS9的新特性3D-Touch

Apple在iphone6s中推出了的新特性:3D-Touch,由于相关的文档还比较少,我在学习中总结了一下可能有用的功能点。 1. 什么是3D-Touch ...

21210
来自专栏顶级程序员

高效 MacBook 工作环境配置

工欲善其事,必先利其器,工具永远都是用来解决问题的,没必要为了工具而工具,一切工具都是为了能快速准确的完成工作和学习任务而服务。 本文记录 MacBook 整...

7437
来自专栏Material Design组件

Human Interface Guidelines —— Edit Menus

1306
来自专栏数据之美

Shell 黑科技之匿名函数实现任务并行化

shell 作为一门系统级别胶水语言,学习成本低,用起来很方便,但是缺点也显而易见:性能问题一直为人锁诟病。所以 shell 也就多用在简单的系统管理等场合,数...

24010
来自专栏琯琯博客

超好用的谷歌浏览器、Sublime Text、Phpstorm、油猴插件合集

一、谷歌浏览器插件 二、Sublime Text 插件 三、Phpstorm 插件 四、油猴脚本 4.1 脚本网站 4.2 自用的脚本 五、相关链接 ? 分享...

1.2K8
来自专栏张戈的专栏

DX-Seo与WP-codebox插件冲突解决方法

这两天折腾代码高亮插件,折腾得够呛!缘由要不就是导致网站爆卡,要不就是点击复制按钮出问题。 这里说下 wp-codebox 和 DX-Seo 插件冲突的现象及解...

2929
来自专栏子勰随笔

iMac(OS X)常用开发工具介绍

2045
来自专栏Samego开发资源

第一次编写bat脚本

2604
来自专栏曾柏羲的专栏

Vue 浅析与实践

本文首先对 Vue 的相关技术进行简单介绍与分析,接着总结开发实践(主要描述 Vuex 实践)过程中的流程规范,并记录在此过程中遇到的问题与关键点,最后做出一点...

4822
来自专栏Java Web

SpringBoot技术栈搭建个人博客【前台开发/项目总结】

先吐槽一句..写页面是真的不擅长,然后限于时间的问题,我开始考虑换用Bootstrap来完成页面的编写,因为时间有限(我得在实习完之前把所有页面开发完),学习V...

2955

扫码关注云+社区

领取腾讯云代金券