追逐家程序员

独立博客的搭建

2016-09-24  本文已影响166人  七弦桐语

写作,一直是思考和表达的一种重要的途径,而博客是一个很好的表达和分享的平台。网络上的博客平台有很多,自己也有在用简书Lofter。但同时作为一个理想主义的程序员,总是向往更加简单和自由的写作方式。由此,经过一番折腾,才有了我的第一个独立博客以及这篇博客搭建的文章。

废话少说,先上博客:点击访问我的博客


Github+Hexo

博客程序有很多,也都有各自的优缺点,关于选用哪一个,也因人而异,毕竟适合自己的才是做好的。

可以看这一篇进行了解 : 各种博客程序有什么特点

我所选用的是Github+hexo进行搭建。理由如下:

搭建环境

1. 安装 Git

Git是目前世界上最先进的分布式版本控制系统。在这里主要用来把本地内容提交到github上区。

安装方式:

  1. 下载
    http://msysgit.github.io/
  2. 安装
    安装过程中,询问是否修改环境变量,选择“Use Git Bash Only”. 即只在msysGit提供的Shell

运行 Git 前的配置

  1. 配置你个人的用户名称和电子邮件地址

$ git config --global user.name "xxx"
$ git config --global user.email xxx@example.com

  1. 配置GitHub SSH
    (1)首先使用 ssh-keygen 生成 SSH 密钥
    $ ssh-keygen -t rsa -C "youremail@163.com"
    (2) 配置Github SSH。
    登陆GitHub->Settings->“SSH Keys”,然后,点“Add SSH Key”,起个Title,在Key文本框里粘贴id_rsa.pub文件的内容,点“Add Key”。

2. 安装 node.js

  1. 下载
    下载:http://nodejs.org/download/
    作用:用来生成静态页面

配置Github

Github网址:https://github.com/
作用:用来做远程博客的仓库

1. 建立Repository

建立与你用户名对应的仓库,仓库名必须为【your_user_name.github.io

2. 配置SSH-Key

参考http://www.cnblogs.com/zhcncn/p/3787849.html

搭建 Hexo

1. 安装

打开Git命令行,执行如下命令

$ npm install -g hexo

2 Quick Start

1. 建立你的博客

在电脑中建立一个文件夹(比如我建在了D:\blog),然后在此文件夹中右键打开Git Bash。执行下面的命令

$ hexo init 
[info] Copying data 
[info] You are almost done! Don't forget to run `npm install` before you start b logging with Hexo!

Hexo随后会自动在目标文件夹建立网站所需要的文件。然后按照提示,运行 npm install(在 /D/blog下

npm install

会在D:\blog目录中安装node\_modules

2. 打开服务

运行下面的命令(在 /D/blog下)

$ hexo server 
[info] Hexo is running at http://localhost:4000/. Press Ctrl+C to stop.

表明Hexo Server已经启动了,在浏览器中打开 http://localhost:4000/,这时可以看到Hexo已为你生成了一篇blog。

你可以按Ctrl+C停止Server。

文件目录为

blog
_config_yml -- 注配置文件
db.json --数据
debug.log -- 调试日志
_node_mudules -- nodejs 相关依赖
package.json -- 配置依赖
scaffolds -- 脚手架 - 也就是一个工具模板
source -- 存放blog正文的地方
themes -- 存放皮肤的地方

3. 创建一篇文章

新打开一个git bash命令行窗口,cd到/D/blog下,执行下面的命令

$ hexo new "My New Post"

刷新http://localhost:4000/,可以发现已生成了一篇新文章 "My New Post"。

注意

在创建文章时,要ctrl+c关掉hexo server

4. 生成静态页面

执行下面的命令,将你自己写的markdown文件生成静态网页。

$ hexo generate

该命令执行完后,会在 D:\blog\public\ 目录下生成一系列html,css等文件。

5. 编辑文章

hexo new "My New Post"会在D:\blog\source\_posts目录下生成一个markdown文件:My-New-Post.md

可以使用一个支持markdown语法的编辑器(推荐MarkEditor 或 Sublime Text 2)来编辑该文件。

6. 部署到Github

部署到Github前需要配置_config.yml文件,首先找到下面的内容

# Deployment 
## Docs: http://hexo.io/docs/deployment.html 
deploy: 
type:

将它们修改为

# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
type: git
repository: git@github.com:chuanqiang/chuanqiang.github.io.git
branch: master

7. 测试

当部署完成后,在浏览器中打开http://chuanqiang.github.io/ 正常显示网页,表明部署成功。

Hexo 命令总结

1. 常用命令

hexo new "postName" #新建文章
hexo new page "pageName" #新建页面
hexo generate #生成静态页面至public目录
hexo server #开启预览访问端口(默认端口4000,'ctrl + c'关闭server)
hexo deploy #将.deploy目录部署到GitHub
hexo help  # 查看帮助
hexo version  #查看Hexo的版本

2. 复合命令

hexo deploy -g  #生成加部署
hexo server -g  #生成加预览

命令的简写为:

hexo n == hexo new
hexo g == hexo generate
hexo s == hexo server
hexo d == hexo deploy

为博客添加域名

1. 域名购买

网站:推荐去GoDaddy 购买
优点:安全,支持支付宝。
注意

2.域名和 Github 空间绑定

1. GitHub Pages的设置

方法1:在Repository的根目录下面,新建一个名为CNAME的文本文件,里面写入你要绑定的域名,不用写http://,直接写域名。比如我的是qixiantong.info
方法2:到我的github仓库,点击右下角的「Download ZIP」,下载源文件,解压,修改CNAME,改成你想要的域名,放进Hexo\source目录下,用hexo命令提交上去。

2.DNS设定

网站DNSpod
步骤

  1. 登录或者注册DNSpod
  2. 之后进入到了域名下一解析管理窗口,这里需记录两个记录值:\
f1g1ns1.dnspod.net.
f1g1ns2.dnspod.net.
  1. 点击添加记录,按图所述:
  1. 等待全球递归DNS服务器刷新(最多72小时)。

Hexo 配置

1. 配置文件介绍

文件名:_config.yml(在文件根目录下)

# Hexo Configuration
## Docs: http://hexo.io/docs/configuration.html
## Source: https://github.com/tommy351/hexo/

# Site #整站的基本信息
title: 1000 words a Day #网站标题
subtitle: Writing 1000 Words a Day Changes My Life #网站副标题
description: 学习总结 思考感悟 知识管理 #网站描述
author:  cnFeat #网站作者,在下方显示
email: cnFeat@gmail.com #联系邮箱
language: zh-CN

# URL
## If your site is put in a subdirectory
url: http://www.cnfeat.com #你的域名
root: /
permalink: :year/:month/:day/:title/
tag_dir: tags
archive_dir: archives
category_dir: categories
code_dir: downloads/code

# Directory
source_dir: source
public_dir: public

# Writing
new_post_name: :title.md # File name of new posts
default_layout: post
auto_spacing: false # Add spaces between asian characters and western characters
titlecase: false # Transform title into titlecase
external_link: true # Open external links in new tab
max_open_file: 100
multi_thread: true
filename_case: 0
render_drafts: false
post_asset_folder: false
highlight:
enable: true
line_number: true
tab_replace:

# Category & Tag
default_category: uncategorized
category_map:
tag_map:

# Archives
## 2: Enable pagination
## 1: Disable pagination
## 0: Fully Disable
archive: 2
category: 2
tag: 2

# Server
## Hexo uses Connect as a server
## You can customize the logger format as defined in
## http://www.senchalabs.org/connect/logger.html
port: 4000
server_ip: 0.0.0.0
logger: false
logger_format:

# Date / Time format
## Hexo uses Moment.js to parse and display date
## You can customize the date format as defined in
## http://momentjs.com/docs/#/displaying/format/
date_format: YYYY-MM-DD
time_format: H:mm:ss

# Pagination
## Set per_page to 0 to disable pagination
per_page: 15 #每页15篇文章
pagination_dir: page

# Disqus #社会化评论disqus,我使用多说,在主题中配置
disqus_shortname:

# Extensions
## Plugins: https://github.com/tommy351/hexo/wiki/Plugins
## Themes: https://github.com/tommy351/hexo/wiki/Themes
theme: jacman
exclude_generator:
Plugins:
- hexo-generator-feed
- hexo-generator-sitemap

#sitemap
sitemap:
path: sitemap.xml

#Feed Atom
feed:
type: atom
path: atom.xml
limit: 20

# Markdown
## https://github.com/chjj/marked
markdown:
gfm: true
pedantic: false
sanitize: false
tables: true
breaks: true
smartLists: true
smartypants: true

# Stylus
stylus:
compress: false

# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
type: git
repository: git@github.com:chuanqiang/chuanqiang.github.io.git
branch: master      

2. 修改局部页面

页面展现的全部逻辑都在每个主题中控制,源代码在hexo\themes\jacman\中:

├── languages  #多语言
|   ├── default.yml#默认语言
|   └── zh-CN.yml  #中文语言
├── layout #布局,根目录下的*.ejs文件是对主页,分页,存档等的控制
|   ├── _partial   #局部的布局,此目录下的*.ejs是对头尾等局部的控制
|   └── _widget#小挂件的布局,页面下方小挂件的控制
├── source #源码
|   ├── css#css源码 
|   |   ├── _base  #*.styl基础css
|   |   ├── _partial   #*.styl局部css
|   |   ├── fonts  #字体
|   |   ├── images #图片
|   |   └── style.styl #*.styl引入需要的css源码
|   ├── fancybox   #fancybox效果源码
|   └── js #javascript源代码
├── _config.yml#主题配置文件
└── README.md  #用GitHub的都知道

安装主题

1. 下载主题

这里以我安装的主题为例。
如果你熟悉 Git, 建议你使用 克隆最新版本 的方式,之后的更新可以通过 git pull 来快速更新, 而不用再次下载压缩包替换。
在终端窗口下,定位到 Hexo 站点目录下。使用 Git checkout 代码:

$ cd your-hexo-site
$ git clone https://github.com/iissnan/hexo-theme-next themes/next

2. 启用主题

与所有 Hexo 主题启用的模式一样。 当 克隆/下载 完成后,打开 站点配置文件, 找到 theme 字段,并将其值更改为 next。

启用 NexT 主题

theme: next 

到此,NexT 主题安装完成。下一步我们将验证主题是否正确启用。在切换主题之后、验证之前, 我们最好使用 hexo clean 来清除 Hexo 的缓存。

首先启动 Hexo 本地站点,并开启调试模式(即加上 --debug),整个命令是 hexo s --debug。 在服务启动的过程,注意观察命令行输出是否有任何异常信息,如果你碰到问题,这些信息将帮助他人更好的定位错误。 当命令行输出中提示出:

INFO Hexo is running at http://0.0.0.0:4000/. Press Ctrl+C to stop. 

此时即可使用浏览器访问 http://localhost:4000,检查站点是否正确运行。

现在,已经成功安装并启用了 主题。下一步要做的是更改一些主题的设定,包括个性化以及集成第三方服务。这个因主题而异。

3. 主题设定

这里叙述的是各主题通用的功能。

设定语言

编辑 站点配置文件, 将 language 设置成你所需要的语言。建议明确设置你所需要的语言,例如选用简体中文,配置如下:

language: zh-Hans

多说评论

注意:duoshuo_shortname 不是你的多说登录的 id

使用多说前需要先在 多说 创建一个站点。具体步骤如下:

  1. 登录后在首页选择 “我要安装”。
  2. 创建站点,填写站点相关信息。 多说域名 这一栏填写的即是你的 duoshuo\_shortname,如图:
  1. 创建站点完成后在 站点配置文件 中新增 duoshuo_shortname 字段,值设置成上一步中的值。
    【eg】:
duoshuo_shortname: iissnan-notes

百度统计

注意: baidu_analytics 不是你的百度 id 或者 百度统计 id

  1. 登录 百度统计, 定位到站点的代码获取页面
  2. 复制 hm.js? 后面那串统计脚本 id,如:
  1. 编辑 站点配置文件, 新增字段 baidu_analytics 字段,值设置成你的百度统计脚本 id

分享

JiaThis

编辑 站点配置文件, 添加字段 jiathis,值为 true。

JiaThis 内容分享服务配置示例

# JiaThis 分享服务
jiathis: true

百度分享

编辑 站点配置文件,添加字段 baidushare,值为 true。

百度内容分享服务配置示例

# 百度分享服务
baidushare: true

多说分享
多说分享必须与多说评论同时使用
编辑 站点配置文件, 添加字段 duoshuo_share, 值为 true。
多说内容分享服务配置示例

# 多说分享服务
duoshuo_share: true

404页面

GitHub Pages有提供制作404页面的指引:Custom 404 Pages
直接在根目录下创建自己的404.html或者404.md就可以。但是自定义404页面仅对绑定顶级域名的项目才起作用,GitHub默认分配的二级域名是不起作用的,使用hexo server在本机调试也是不起作用的。

推荐使用腾讯公益404。为公益尽自己的一份微薄之力。

总结

博客的搭建看似简单,其实过程中还是有许多磕磕绊绊。这时,需要的就是自己解决问题的能力:如何利用互联网搜索你需要的答案,如何借鉴别人的经验。这个也是搭建博客之外的宝贵收获。

另外,博客只是一种输出和展现形式,关键还是在于内容本身。盛酒的容器美观与否固然重要,但瓶子里酒的味道才是真谛。所以,重要的还是不断输入和输出

上一篇下一篇

猜你喜欢

热点阅读