原文 http://blog.csdn.net/tonydandelion2014/article/details/61615898

http://www.joryhe.com/2016-06-06-hexo_wordcount_setting_your_post.html

Hexo是一个轻量级的Node.js博客框架,由一位台湾的在校大学生开发完成!

Hexo的配置文件_config.yml分为两种,一种是站点配置文件,也就是站点根目录下的_config.yml配置文件,另一个是主题配置文件,位于theme文件夹中对应主题的文件夹下的_config.yml。

在后续的网站配置中需要多次使用站点配置文件和主题配置文件,需要注意辨析。

另外,需要注意的是本文部署hexo的服务器是腾讯云服务器,Ubuntu16.04系统。


安装node.js

Windows下安装

在nodejs官网上下载最新的Windows安装包,直接安装即可。

ubuntu下安装

命令行方式安装:

sudo apt-get update
sudo apt-get install nodejs
  • 1
  • 2

编译源码方式安装:

在nodejs官网上找到需要下载的源码(不是二进制文件),解压之后进入目录,执行:

$ ./configure
$ make && make install
  • 1
  • 2

注意如果需要sudo的话, make和make install 要分开,因为sudo不能传递到&&后面的指令。

安装npm

sudo apt-get update
sudo apt-get install npm
  • 1
  • 2

查看node和npm版本

node -v
npm -v
  • 1
  • 2

安装cnpm

因为防火墙的缘故,很多境外网站被墙了,所以使用node.js的原生工具npm是无法正常安装模块的,建议使用淘宝前端组的国内镜像,使用他们定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm:

$ npm install -g cnpm --registry=https://registry.npm.taobao.org
  • 1

使用方法如下:

从registry.npm.taobao.org 安装所有模块. 当安装的时候发现安装的模块还没有同步过来, 淘宝 NPM 会自动在后台进行同步, 并且会让你从官方 NPM registry.npmjs.org 进行安装. 下次你再安装这个模块的时候, 就会直接从 淘宝 NPM 安装了.

$ cnpm install [name]
  • 1

Hexo的安装与使用

安装Hexo

安转了node之后,就可以使用以下命令来安装hexo:

 $ npm install -g hexo-cli
  • 1

使用Hexo

安装 Hexo 完成后,请执行下列命令,Hexo 将会在指定文件夹中新建所需要的文件。

$ hexo init <folder>
$ cd <folder>
$ npm install
  • 1
  • 2
  • 3

新建完成后,指定文件夹的目录如下:

├── _config.yml
├── package.json
├── scaffolds
├── source|   ├── _drafts|   └── _posts
└── themes
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

_config.yml 网站的 配置 信息

您可以在此配置网站大部分的参数。

package.json 应用程序的信息。EJS, Stylus 和 Markdown renderer 已默认安装,您可以自由移除。

package.json
{"name": "hexo-site", "version": "0.0.0", "private": true, "hexo": { "version": "" }, "dependencies": { "hexo": "^3.0.0", "hexo-generator-archive": "^0.1.0", "hexo-generator-category": "^0.1.0", "hexo-generator-index": "^0.1.0", "hexo-generator-tag": "^0.1.0", "hexo-renderer-ejs": "^0.1.0", "hexo-renderer-stylus": "^0.2.0", "hexo-renderer-marked": "^0.2.4", "hexo-server": "^0.1.2" } }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

scaffolds模版 文件夹。当您新建文章时,Hexo 会根据 scaffold 来建立文件。

Hexo的模板是指在新建的markdown文件中默认填充的内容。例如,如果您修改scaffold/post.md中的Front-matter内容,那么每次新建一篇文章时都会包含这个修改。

source资源文件夹是存放用户资源的地方。

除 posts 文件夹之外,开头命名为 (下划线)的文件 / 文件夹和隐藏的文件将会被忽略。Markdown 和 HTML 文件会被解析并放到 public 文件夹,而其他文件会被拷贝过去。

themes主题 文件夹。

Hexo 会根据主题来生成静态页面。


安装hexo插件

在hexo中实现可视化编辑博客(hexo-admin)

hexo-admin-github

安装并使用hexo-admin

npm install --save hexo-admin
hexo server -d
open http://localhost:4000/admin/
  • 1
  • 2
  • 3

设置后台密码

修改站点配置文件,就是网站根目录下的 _config.yml文件:

admin:username: myfavoritenamepassword_hash: be121740bf988b2225a313fa1f107ca1secret: a secret something
  • 1
  • 2
  • 3
  • 4
  • username是用户名
  • password_hash是密码的哈希映射值,由于不同版本的node.js的哈希算法是不一样的,所有用以下方法来产生有效的密码哈希值。

    $ node
    > const bcrypt = require('bcrypt-nodejs')
    > bcrypt.hashSync('your password secret here!')
    //=> '$2a$10$8f0CO288aEgpb0BQk0mAEOIDwPS.s6nl703xL6PLTVzM.758x8xsi'
    • 1
    • 2
    • 3
    • 4
  • secret是用于产生cookie值的。

在站点配置文件中设置好以下三个值之后,登录 http://localhost:4000/admin/ 就会提示输入账号密码。

在hexo中实现RRS功能(hexo-generator-feed )

安装

$ npm install hexo-generator-feed --save
  • 1

配置

在网站的根目中的_config.yml文件设置

feed:type: atompath: atom.xmllimit: 20hub:content:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

type - Feed type. (atom/rss2) 
path - Feed path. (Default: atom.xml/rss2.xml) 
limit - Maximum number of posts in the feed (Use 0 or false to show all posts) 
hub - URL of the PubSubHubbub hubs (Leave it empty if you don’t use it) 
content - (optional) set to ‘true’ to include the contents of the entire post in the feed.

在hexo中实现本地搜索功能(hexo-generator-searchdb)

安装 hexo-generator-searchdb,在站点的根目录下执行以下命令:

$ npm install hexo-generator-searchdb --save

编辑 站点配置文件,新增以下内容到任意位置:

search:path: search.xmlfield: postformat: htmllimit: 10000

除了安装本地搜索,还可以考虑 * swiftype * 的搜索。


更换hexo主题

Hexo有很多主题,可以在 * Hexo官网的主题页面 *选择自己喜欢。 
以Next为例,本站使用的就是Next主题。

使用Git来获取主题文件

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

直接在Next的 GitHub主页 下载主题文件

将Next文件夹放到theme文件夹中,修改站点配置文件,也就是网站根目录下的_config.yml文件中的theme:

# Extensions
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
theme: next
  • 1
  • 2
  • 3
  • 4
  • 5

重启hexo的开发服务器就能看到新主题的效果了。

$sudo hexo server
  • 1

为hexo设置tags、categrories、图标、头像等

选择 Scheme

Scheme 是 NexT 提供的一种特性,借助于 Scheme,NexT 为你提供多种不同的外观。同时,几乎所有的配置都可以 在 Scheme 之间共用。目前 NexT 支持三种 Scheme,他们是:

  • Muse - 默认 Scheme,这是 NexT 最初的版本,黑白主调,大量留白
  • Mist - Muse 的紧凑版本,整洁有序的单栏外观
  • Pisces - 双栏 Scheme,小家碧玉似的清新

Scheme 的切换通过更改 主题配置文件,搜索 scheme 关键字。 
你会看到有三行 scheme 的配置,将你需用启用的 scheme 前面注释 # 即可。

选择 Pisce Scheme

#scheme: Muse
#scheme: Mist
scheme: Pisces
  • 1
  • 2
  • 3

设置主页的Menu

设定菜单内容,对应的字段是 menu。 菜单内容的设置格式是:item name: link。其中 item name 是一个名称,这个名称并不直接显示在页面上,她将用于匹配图标以及翻译。

菜单示例配置

menu:home: /archives: /archives#about: /about#categories: /categoriestags: /tags#commonweal: /404.html
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

若你的站点运行在子目录中,请将链接前缀的 / 去掉

NexT 默认的菜单项有(标注 的项表示需要手动创建这个页面):

键值 设定值 显示文本(简体中文)
home home: / 主页
archives archives: /archives 归档页
categories categories: /categories 分类页
tags tags: /tags 标签页
about about: /about 关于页面
commonweal commonweal: /404.html 公益 404

设置菜单项的显示文本。在第一步中设置的菜单的名称并不直接用于界面上的展示。Hexo 在生成的时候将使用 这个名称查找对应的语言翻译,并提取显示文本。这些翻译文本放置在 NexT 主题目录下的

languages/{language}.yml ({language} 为你所使用的语言)。
  • 1

以简体中文为例,若你需要添加一个菜单项,比如 something。那么就需要修改简体中文对应的翻译文件 languages/zh-Hans.yml,在 menu 字段下添加一项:

menu:home: 首页archives: 归档categories: 分类tags: 标签about: 关于search: 搜索commonweal: 公益404something: 有料```设定菜单项的图标,对应的字段是 menu_icons。 此设定格式是 item name: icon name,其中 item name 与上一步所配置的菜单名字对应,icon name 是 Font Awesome 图标的 名字。而 enable 可用于控制是否显示图标,你可以设置成 false 来去掉图标。 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

菜单图标配置示例

menu_icons:enable: true# Icon Mapping.home: homeabout: usercategories: thtags: tagsarchives: archivecommonweal: heartbeat
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

头像设置

编辑 站点配置文件,新增字段 avatar, 值设置成头像的链接地址。

avatar: http://i5.tietuku.com/0d972d2b106fc7ea.jpg
  • 1

网站图标设置

在主题配置文件中,设置:

# Put your favicon.ico into `hexo-site/source/` directory.
favicon: favicon.ico
  • 1
  • 2

把你的网站图标放到站点的source下面

设置站点的名字、介绍、作者、语言、时区

在站点配置文件中修改

# Site
title: Tony's blog
subtitle:
description: Everthing will going to be all right.
author: Tony Dandelion
language: zh-Hans
timezone:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

配置categories(目录云)、tags(标签云)、about(关于我)

hexo new page "tags"
hexo new page "categories"
hexo new page "about"
  • 1
  • 2
  • 3

执行了这三条命令之后,在站点的source目录下就会有tags、categories、about三个文件夹,里面都对应有一个index.md的文件,在tags文件夹中的index.md中,修改type为tags,如下所示,相应的categories和about也把对应位置的type值改为categories和about。

---
title: tags
date: 2017-01-28 14:34:11
type: "tags"
---
  • 1
  • 2
  • 3
  • 4
  • 5

在about文件中的index.md文件中可以使用MarkDown语法来写自我介绍。

修改Next文件的头部背景图片

第一步

首先在网上找或者自己PS一张心仪的图片,取名background.jpg,把它放在

Hexo\source\image路径下。

第二步

进入

Hexo\themes\hexo-theme-next\source\css\_common\components\header
  • 1

目录,找到 header.styl 文件,双击打开。

将第一行默认的

.header { background: $head-bg; }
  • 1

修改为

.header { background: url('../image/background.jpg'); }
  • 1

然后重新上传博客即可

hexo clean
hexo generate
hexo deploy
  • 1
  • 2
  • 3

大功告成。

修改Next的底部power by图标

并不建议修改这个,毕竟使用了别人的劳动成果,就应该说清楚。

参考链接

配置第三方功能

使用多说的评论服务

登录多说,填写表单,创建站点

记录下多说域名,也就是上图中红框中的部分,不包括前面的 http:// 和后面的 duoshuo.com

创建站点完成后在 站点配置文件 中新增 duoshuo_shortname 字段,值设置成上一步中红色框里的值。

多说设置示例

duoshuo_shortname: 多说域名内容
  • 1

配合ngix部署hexo

hexo server 命令启动的是一个测试服务器,不建议用户生产环境,可以使用Apache或者ngix来部署hexo

生成Hexo的静态文件用于部署

sudo hexo generate
  • 1

在网站根目录下会生成一个public文件夹,这就是我们要发布的内容,记录下路径为/home/ubuntu/blog/public

安装ngix并修改根目录

sudo apt-get install ngix
ngix -v
  • 1
  • 2

ngix的安装目录为/etc/ngix,所有的配置文件都在这里。ngix的默认首页目录为/usr/share/nginx/html要对其进行修改。

修改/etc/nginx/sites-available/default中的/usr/share/nginx/html为/home/ubuntu/blog/public

server {listen 80 default_server;listen [::]:80 default_server ipv6only=on;# root /usr/share/nginx/html;root /home/ubuntu/blog/public; index index.html index.htm; ..... } 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

配置防火墙、腾讯云服务器开放端口

完成上述配置之后需要确保服务器的端口都开放了,腾讯云服务器的默认安全组是不开发任何端口的,需要前往腾讯云控制台进行修改。

然后修改防火墙,开放80端口,ubuntu有一个易用的防火墙管理工具,名为uwf。我们使用它来进行防火墙管理。

安装

sudo apt-get install ufw
  • 1

启用

sudo ufw enable
sudo ufw default deny
  • 1
  • 2

运行以上两条命令后,开启了防火墙,并在系统启动时自动开启。 
关闭所有外部对本机的访问,但本机访问外部正常。

查看防火墙状态

sudo ufw status
  • 1

防火墙版本

sudo ufw version
  • 1

开启/关闭防火墙 (默认设置是’disable’)

sudo ufw enable|disable
  • 1

开启/禁用服务或者端口

sudo ufw allow|deny [service|port]
  • 1

为了使mysql可以远程访问,开启mysql的3306端口

eg:
sudo  ufw allow  3306
  • 1
  • 2

启动、停止、重启ngix

sudo /etc/init.d/nginx start
sudo /etc/init.d/nginx restart
sudo /etc/init.d/nginx stop
  • 1
  • 2
  • 3
  • 4

或者

sudo service nginx start
sudo service nginx restart
sudo service nginx stop
  • 1
  • 2
  • 3

查看、关闭端口占用的命令

sudo lsof -i:80
  • 1
  • 2

在使用上面这条命令知道是哪一个进程占用了80端口后就使用kill命令跟上进程ID杀掉进程。

sudo kill ID
  • 1

两条命令相互配合就能把端口分配给任何进程了

在后台将hexo起在固定端口的命令

sudo nohup hexo server -p 8066 &
  • 1

问题整理

配置文件的修改问题

修改配置文件的字段值的时候,要注意格式固定为:

Key: Value
  • 1

属性值与冒号之间必须为一个空格,不能是回车或者其他任何东西。

部署之后,ngix不能及时显示最新修改的情况。

先执行hexo clean再执行hexo generate,之后再访问80端口,如果效果迁移成功了,就OK了,否则执行下面的操作。

关闭ngix服务,将hexo的调试服务器开放到80端口。

访问一次80端口,OK了再切回ngix监听80端口。

发现命令没有预期的执行效果,需要加上sudo试一试,可能是权限问题。

设置只显示部分文章,不全部显示。

在首页显示一篇文章的部分内容,并提供一个链接跳转到全文页面是一个常见的需求。 NexT 提供三种方式来控制文章在首页的显示方式。 也就是说,在首页显示文章的摘录并显示 阅读全文 按钮,可以通过以下方法:

  • 在文章中使用 <!– more –>手动进行截断,Hexo 提供的方式 推荐
  • 在文章的 front-matter 中添加 description,并提供文章摘录
  • 自动形成摘要,在 主题配置文件 中添加:
  auto_excerpt:enable: truelength: 150

Hexo安装配置详解相关推荐

  1. zabbix安装配置详解(一)

    zabbix安装配置详解(一) 一.nginx安装 1.必要软件准备: 为了支持rewrite功能,我们需要安装pcre: #yum install pcre-* 需要ssl的支持,如果不需要ssl支 ...

  2. lvs keepalived 安装配置详解【转】

    lvs keepalived 安装配置详解 张映 发表于 2012-06-20 分类目录: 服务器相关 前段时间看了一篇文章,lvs做负载均衡根F5差不多,说实话不怎么相信,因为F5没玩过,也无法比较 ...

  3. redis cluster 集群 安装 配置 详解

    redis cluster 集群 安装 配置 详解 张映 发表于 2015-05-01 分类目录: nosql 标签:cluster, redis, 安装, 配置, 集群 Redis 集群是一个提供在 ...

  4. Python3 环境搭建、pycharm安装配置详解、新建Python项目(新手小白版Windows系统)

    Python3 环境搭建 .pycharm安装配置详解 window系统上环境搭建: 一.环境搭建,下载Python (Python 3.8为例) 二.pycharm的下载与安装 window系统上环 ...

  5. 使用LVS实现负载均衡原理及安装配置详解

    使用LVS实现负载均衡原理及安装配置详解 负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.haproxy,商业的硬件负载均 ...

  6. 深入分析redis cluster 集群安装配置详解

    Redis 集群是一个提供在多个Redis间节点间共享数据的程序集.redis3.0以前,只支持主从同步的,如果主的挂了,写入就成问题了.3.0出来后就可以很好帮我们解决这个问题. 目前redis 3 ...

  7. Burp Suite安装配置详解(附Java 环境安装)

    Burp Suite安装配置详解 1.Java 安装与环境配置详解 1.0 下载Java SDK 1.8 最新版 2.0 配置Java 环境变量 2.Burp Suite 安装详解 2.0 下载Bur ...

  8. 硬实时RTLinux安装配置详解 (一):准备工作

    更多技术干货,欢迎扫码关注博主微信公众号:HowieXue,一起学习探讨软硬件技术知识经验,关注就有海量学习资料免费领哦: 硬实时RTlinux系统配置 1. Linux内核下载 2. 下载与Linu ...

  9. 硬实时RTLinux安装配置详解 (二):编译运行RTLinux

    硬实时RTlinux系统配置 4. 配置RTLinux 4.1 配置Patch 4.2 配置RTLinux内核 4.3. 编译Rtlinux内核 4.4 制作initramfs启动引导: 5. 大功告 ...

最新文章

  1. oracle重建实例_记一次误删Oracle控制文件并恢复过程
  2. java hasnextstring_Java – ListIterator和hasNext
  3. 在C#中重新抛出异常的正确方法是什么? [重复]
  4. 2017 《Java技术预备作业》
  5. Python里那些可爱的游戏模块们
  6. 肝了一个月,终于搞到了 30 页的 Python 进阶面试题
  7. 转:Google论文之三----MapReduce
  8. linux设备驱动模块引用和依赖
  9. Linux服务器安装svn
  10. java数字高低呼唤_记录某电话交换台 5 分钟内接到的呼唤次数,则样本空间 S={0,1,2, … ,n, … }_Java答案_学小易找答案...
  11. [转帖]Windows下cwRsyncServer双机连续同步部署
  12. 基于Access的学生信息管理系统设计(上):表建立、表查询设计
  13. 前端电子时钟字体引入
  14. html 各大网站分享代码
  15. php eval()函数
  16. MySql Lock wait timeout exceeded该如何处理
  17. STM32——理解时钟系统
  18. DHTMLX Gantt 甘特图 使用
  19. 接上个文章(mzsock
  20. 微信开放平台开发常见错误(长期更新)

热门文章

  1. dfs时间复杂度_一文吃透时间复杂度和空间复杂度
  2. tensorflow linux多卡训练_用Windows电脑训练深度学习模型?超详细配置教程来了
  3. 页式存储管理程序模拟_ADAS/AD开发12 - 数据存储管理
  4. 获取当前周一日期_Excel工作表中最全的日期、时间函数,效率办公必备!
  5. html语言怎么那么难用,css语言难学吗?
  6. django和flask用MD5加密密码
  7. (9) ebj学习: Jpa的增删查改,CURD方法监听和命名查询
  8. (6) ebj学习:ejb使用jpa注解
  9. 支持 简体,繁体,英文的js日历控件
  10. ugui unity 取消选择_关于Unity中的UGUI优化,你可能遇到这些问题