Hexo your blog

Preface

本来打算个人blog用英文写,BUT短时间内是不可能了,哈哈没办法,英语捉急,装逼未遂。之前是用jekyll搭建的,用的主题是歪果仁写的,有一些Google的东西还有字库神马的,虽然看起来高大上但是由于天朝一些不可抗力因素等等,总之页面加载很慢,有限的生命都浪费在看进度条上了。后来看到童鞋在用hexo,艾玛~人家这页面加载飕飕的,themes也正是我喜欢的Lofter风格,果断迁移啊!索性把之前博客园的几篇搬到这里了,以后专一写这个blog,不去其它地儿乱涂乱画了。

Hexo

关于hexo的介绍啥的,虽然你没问,但是我也就不说了。这里主要记录一下我搭建的过程以及遇到的一些细节问题。

Step1. 安装Git、Node.js以及npm工具

详情参考hexo文档

brew install git
bew install node
#查看是否安装成功
node -v
npm -v

Tip1:
Node 一般会安装在/usr/local/bin/node
npm 一般会安装在/usr/local/bin/npm
有时候会出现这种情况

zsh: command not found: balabalabala

这时候你需要把上述相应的地址添加到$PATH中,执行如下语句

export PATH=/usr/local/npm/bin:$PATH

Tip2:
也许你按照hexo文档安装的时候会出现类似如下情况

zsh: command not found: nvm

那么你可能是漏掉了这个步骤,可以理解为安装后还需要激活一下

source ~/.nvm/nvm.sh

Step2. 安装Hexo并创建文件

npm install hexo -g
hexo init <folder> #folder为你创建博客的文件夹名称
cd <folder>

这时候一个blog就已经搭建好了,folder的目录结构如下:

.
├── _config.yml  # 配置文件
├── package.json
├── scaffolds
├── scripts
├── source
|   ├── _drafts
|   └── _posts  # 写的文章都放到这个文件夹下
└── themes  # 各种主题

默认的theme是landscape,可以在themes文件下看到,以后想换主题只需要将相应的主题包下载到themes文件夹下即可。在_posts文件夹中自带一篇hello world.md

Step3. Hexo常用命令

hexo new "postName" #新建文章
hexo new page "pageName" #新建页面到上述目录结构的_posts中
hexo generate #生成静态页面至public目录
hexo server #开启预览访问端口(默认端口4000,'ctrl + c'关闭server)
hexo deploy #将.deploy目录部署到GitHub
#简写
hexo n == hexo new
hexo g == hexo generate
hexo s == hexo server
hexo d == hexo deploy

现在可以先运行一下看看

hexo server

然后,在浏览器中输入localhost:4000可以查看本地生成的效果。

Step4. 配置_config.yml文件

说明一下,这里有很多细节问题需要注意,我先把自己的配置放上来,然后慢慢说,先喝口水。

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

# Site
title: Beatrice7's Fancy
subtitle: To know enough to be dangerous
description: beatrice7's blog | font-end | 
author: Beatrice
email: aizun777@gmail.com
language: zh-CN

# URL
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url: http://beatrice7.tk
root: /
permalink: :year/:month/:day/:title/
tag_dir: tags
archive_dir: archives
category_dir: categories
code_dir: downloads/code
permalink_defaults:

# Directory
source_dir: source
public_dir: public

# Writing
new_post_name: :title.md # File name of new posts
default_layout: post
titlecase: false # Transform title into titlecase
external_link: true # Open external links in new tab
filename_case: 0
render_drafts: false
post_asset_folder: false
relative_link: 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: 1
category: 1
tag: 1

# 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: localhost
logger: false
logger_format: dev

# 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: MMM D YYYY
time_format: H:mm:ss

# Pagination
## Set per_page to 0 to disable pagination
per_page: 10
pagination_dir: page

# Disqus
disqus_shortname:

# Extensions
## Plugins: https://github.com/hexojs/hexo/wiki/Plugins
## Themes: https://github.com/hexojs/hexo/wiki/Themes
theme: landscape-plus
exclude_generator:
plugins: 
- hexo-generator-feed

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

网上的很多教程都已经说的很详细了,我这里说几点细节,也是我当时走的弯路

  • Archives模块
    默认里面写的是2,全都改成1,因为这里的注释是有些问题的,否则就不能在archive目录下按照年份月份归档文章了。
  • Deployment模块
    这部分只要按照我的设置就好,但是注意 repository: git@github.com:后面添加的第一项是你github的名称;第二项是你的博客所在的库的名称,不要看到网上很多.com.git就照搬照抄哦。

Step5. 上传至github

hexo g
hexo d

Step6. 安装插件和主题

Hexo提供丰富的插件以及主题
安装方法如下:

npm install <plugin-name> --save
git clone <repository> themes/<theme-name>

附上几篇更加详细的教程链接:
hexo你的博客
使用hexo搭建博客
通过Hexo在Github上搭建博客教程
Hexo常见问题解决方案

从jekyll迁移到hexo

Tip1:
很简单,只需要把原来的.md各种文件copy到_posts文件夹下即可,但这里有几点细节,需要在_config.yml中添加

new_post_name: :year-:month-:day-:title.md

我之前犯二,竟然把permalink: :year/:month/:day/:title/给改了,然后导致文章没有按照年月归档,全部生成在根目录了。前车之鉴,阅读文档时请务必保持头脑清醒!

Tip2:
关于代码块,你需要做一些替换。把之前的关键字highlight替换为codeblock; endhighlight替换为endcodeblock。

写在最后

呦西,第一篇教程性质的文章终于写粗来了。莫名的,竟生出一种无所不能的使命感,仿佛连期末考试都无需担心了。
2015年到来之前,再写一篇淡淡的总结就收工!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,142评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,298评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,068评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,081评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,099评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,071评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,990评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,832评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,274评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,488评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,649评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,378评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,979评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,625评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,643评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,545评论 2 352

推荐阅读更多精彩内容