安装
更新hexo:
npm update hexo
下载next主题
git clone --depth 1 https://github.com/theme-next/hexo-theme-next /data/hexo_blog/themes/next
## 升级
cd /data/hexo_blog/themes/next
git pull
## 修改hexo 配置文件中的主题 /data/hexo_blog/_config.yml
theme: next
创建菜单项对应文件目录,以分类、标签、关于为例
hexo new page categories
hexo new page tags
hexo new page about
选择 Scheme
更改 NexT 主题配置文件 文件 /data/hexo_blog/themes/next/_config.yml
选择的 Scheme 主题前去掉 # (没有注释掉的就是当前选择主题)
# Schemes
#scheme: Muse
#scheme: Mist
#scheme: Pisces
scheme: Gemini
配置搜索
在你站点的根目录下
$ npm install hexo-generator-searchdb --save
打开Hexo 站点的_config.yml,添加配置
search:
path: search.xml
field: post
format: html
limit: 10000
打开themes/next下的_config.yml,搜索关键字local_search,设置为true
local_search:
enable: true
说明:
path - file path. By default is search.xml . If the file extension is .json, the output format will be JSON. Otherwise XML format file will be exported.
field - the search scope you want to search, you can chose:
post (Default) - will only covers all the posts of your blog.
page - will only covers all the pages of your blog.
all - will covers all the posts and pages of your blog.
format - the form of the page contents, works with xml mode, options are:
html (Default) - original html string being minified.
raw - markdown text of each posts or pages.
excerpt - only collect excerpt.
more - act as you think.
limit - define the maximum number of posts being indexed, always prefer the newest.
分页插件
在hexo根目录下的_config.yml配置文件末尾添加以下内容以设置分页参数
# Plugins
index_generator:
path: ''
per_page: 10 ##首页默认10篇文章标题,如果值为0不分页
order_by: -date
archive_generator:
per_page: 10 ##归档页面默认10篇文章标题,如果值为0不分页
yearly: true ##生成年视图
monthly: true ##生成月视图
tag_generator:
per_page: 10 ##标签页面默认10篇文章,如果值为0不分页
category_generator:
per_page: 10 ##分类页面默认10篇文章,如果值为0不分页
如何在首页隐藏指定的文章
文章里添加hide元素变量
---
title: { { title } }
hide: true
---
修改next主题文件夹下的layout中的index.swig文件
themes/next/layout/index.swig
定位修改 post_template.render(post, true)
{% if ! post.hide %} 或 {% if post.hide == true %}
1 |
|
Front-matter 定制
位于scaffolds目录下的md文件。
Front-matter 是 md 文件最上方以 — 分隔的区域,用于指定个别文件的变量,包括 title , date ,tag 等信息。
文件的开头是属性,采用统一的 yaml 格式,用三条短横线分隔。下面是文章正文。
title 和 date 可以设置成自动,english_title 最好自己写一个清晰的,这个是网址中的真实名称。
---
title: { { title } }
english_title:
urlname:
top: 5
date: { { date } }
categories: [Blog,Hexo]
tag: [Hexo,NexT]
---
RSS 设置
更改 主题配置文件 ,设定 rss 字段的值:
false:禁用 RSS,不在页面上显示 RSS 连接。
留空:使用 Hexo 生成的 Feed 链接。 你需要先安装 hexo-generator-feed 插件。
具体的链接地址:适用于已经烧制过 Feed 的情形。
修改文章底部的那个带#号的标签
打开themes/next/layout/_macro/下的post.swig文件,搜索rel="tag">#,将 # 换成<i class="fa fa-tag"></i>
<div class="post-tags">
{% for tag in post.tags %}
{{ tag.name }}
{% endfor %}
</div>
隐藏网页底部Hexo 强力驱动
打开主题配置文件,搜索关键字copyright,如下:
copyright: false
powered:
enable: false
version: false
theme:
enable: false
version: false
添加顶部加载条
打开themes/next下的_config.yml,搜索关键字pace,设置为true,可以更换加载样式
开启版权声明
主题配置文件下,搜索关键字post_copyright,enable改为true
post_copyright:
enable: true
license: <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/" rel="external nofollow" target="_blank">CC BY-NC-SA 4.0</a>
添加文章封面
文章封面的意思就是:在博客首页的时候会显示文章的封面图片,进入这篇文章的详细页面后,将不显示这张图片。
如果想添加文章封面的话,需要添加一个字段属性:summary_img,summary_img 的值是图片的路径。
1 |
|
修改 \themes\next\layout\_macro\post.swing 文件。
1 | {% if is_index %} |
开启了文章封面的文章,我建议将 <!-- more --> 放在文章内容的开头
内容自动截断
在index页面,,如果文章内容没有添加<!-- more -->, 就自动截断,不全部显示。
自动截断,显示格式不友好,最好还是手动添加<!-- more -->
auto_excerpt:
enable: true
length: 150
添加头像
打开themes/next下的_config.yml文件,搜索 Sidebar Avatar关键字,去掉avatar前面的#
# Sidebar Avatar
avatar:
url: #/images/avatar.gif
rounded: false
opacity: 1
rotated: false
设置头像边框为圆形框
打开位于themes/next/source/css/_common/components/sidebar/下的sidebar-author.syl文件,修改如下
.site-author-image {
display: block;
margin: 0 auto;
padding: $site-author-image-padding;
max-width: $site-author-image-width;
height: $site-author-image-height;
border: $site-author-image-border-width solid $site-author-image-border-color;
// 修改头像边框
border-radius: 50%;
-webkit-border-radius: 50%;
-moz-border-radius: 50%;
}
网站logo设置
favicon:
small: /images/favicon-16x16-next.png
medium: /images/favicon-32x32-next.png
apple_touch_icon: /images/apple-touch-icon-next.png
safari_pinned_tab: /images/logo.svg
#android_manifest: /images/manifest.json
#ms_browserconfig: /images/browserconfig.xml
文章加密访问
**方法一:简单加密,效果不好**
打开themes->next->layout->_partials->head.swig文件,在meta下位置插入这样一段代码:
1 | <script> |
然后在文章上写成类似这样:
---
title: {{ title }}
date: {{ date }}
categories:
tags:
password: password
---
**方法二:真正意义的加密**
# 插件地址: https://github.com/edolphin-ydf/hexo-encrypt
# 安装:
npm install hexo-encrypt --save
# 配置
# hexo 的根目录下,编辑package.json, 在 dependencies 下添加"hexo-encrypt": "^0.2.0",
{
"name": "hexo-site",
"version": "0.0.0",
"private": true,
"hexo": {
"version": "3.7.1"
},
"dependencies": {
.....
"hexo-encrypt": "^0.2.0",
.....
}
}
# 功能
用AES加密一篇文章内容
使用qiniu私人空间作为你的img仓库(如果你想使用这个功能,你应该首先得到一个qiniu帐户,搜索谷歌寻求帮助)
将本地img编码为base64类型,然后将其内联到html中
# 缺点
章节不会显示
首页显示不加密,所以需要配合隐藏功能
# 编辑hexo配置文件_config.yml,启用加密
# encrypt
encrypt:
password: 123456 # 密码
#pwdfile: encrypt_password # 密码存放在一个文档里
# 编辑博客文件md,在front-format 添加
---
encrypt: true
enc_pwd: 123456 #不采用默认密码,指定特定密码
---
自动按照source 目录下的文件夹生成categories
# 安装
$ npm install hexo-auto-category --save
# 配置
# 在站点根目录下的_config.yml添加:
# Generate categories from directory-tree
# Dependencies: https://github.com/xu-song/hexo-auto-category
# depth: the depth of directory-tree you want to generate, should > 0
auto_category:
enable: true
depth:
# 编译 & 部署
$ hexo clean && hexo g && hexo d
# 高级配置
# 如果只想生成第一级目录分类,可以设置depth属性,比如:
auto_category:
enable: true
depth: 1
# 缺点:
不支持加密文档
只适合生成静态文件,动态服务,会不断重新创建
修改字体大小
打开\themes\next\source\css\ _variables\base.styl文件,将$font-size-base改成16px,如下所示:
$font-size-base =16px
如何更改内容区域的宽度?
NexT 对于内容的宽度的设定如下:
700px,当屏幕宽度 < 1600px
900px,当屏幕宽度 >= 1600px
移动设备下,宽度自适应
如果你需要修改内容的宽度,同样需要编辑样式文件。 编辑主题的 source/css/_variables/custom.styl 文件,新增变量:
// 修改成你期望的宽度
$content-desktop = 700px
// 当视窗超过 1600px 后的宽度
$content-desktop-large = 900px
侧边栏推荐阅读
打开主题配置文件修改成这样就行了(links里面写你想要的链接):
# Blogrolls
links_title: 推荐阅读
#links_layout: block
links_layout: inline
links:
优设: http://www.uisdc.com/
张鑫旭: http://www.zhangxinxu.com/
Web前端导航: http://www.alloyteam.com/nav/
前端书籍资料: http://www.36zhen.com/t?id=3448
百度前端技术学院: http://ife.baidu.com/
google前端开发基础: http://wf.uisdc.com/cn/
文章压缩
在站点的根目录下执行以下命令:
1 |
|
生成博文是执行 hexo g && gulp 就会根据 gulpfile.js 中的配置,对 public 目录中的静态资源文件进行压缩。
其它高亮代码显示插件
https://github.com/ele828/hexo-prism-plugin
Hexo-Prism-Plugin NPM
Since highlight.js didn't support JSX syntax properly, I wrote this plugin to replace Hexo's default code highlight plugin.
Install
npm i -S hexo-prism-plugin
Usage
Firstly, you should edit your _config.yml by adding following configuration.
prism_plugin:
mode: 'preprocess' # realtime/preprocess
theme: 'default'
line_number: false # default false
custom_css: 'path/to/your/custom.css' # optional
After that, check highlight option in _config.yml. Make sure that default code highlight plugin is disabled.
highlight:
enable: false
Finally, clean and re-generate your project by running following commands:
hexo clean
hexo generate
pdf 插件
https://github.com/superalsrk/hexo-pdf
hexo-pdf
MIT VERSION
Hexo tag for embeded pdf
Install
$ npm install --save hexo-pdf
Usage
Normal PDF
{% pdf http://7xov2f.com1.z0.glb.clouddn.com/bash_freshman.pdf %}
or
{% pdf ./bash_freshman.pdf %}
Google drive
{% pdf https://drive.google.com/file/d/0B6qSwdwPxPRdTEliX0dhQ2JfUEU/preview %}
Slideshare
{% pdf http://www.slideshare.net/slideshow/embed_code/key/8Jl0hUt2OKUOOE %}
参考:
https://segmentfault.com/a/1190000009544924
https://www.jianshu.com/p/3ff20be8574c