Bolg环境配置
博客采用的Hexo框架XNext主题,采取的是网站部署到Github,图片资源采用CDN加速的方式。
Git
node.js
Next插件配置
文章字数统计
1 | npm install hexo-symbols-cunt-time |
配置站点配置文件_config.yml下添加
1 | #设置博客单词统计 |
在主题配置文件下添加themes\next_config.yml
1 | symbols_count_time: |
RSS插件
为什么要安装RSS插件呢?不了解的可以看看这篇文章:rss订阅是什么意思?为什么要使用RSS?简单来说,RSS是一种协议,允许网站将其内容或其部分内容提供给其他网站或应用程序。通过使用RSS,可以节省宝贵的时间,并将各个站点提供的新闻和信息组织到一个中心点进行查看,也可以通过从使用RSS联合其内容的其他站点导入新闻来向你的站点添加新闻。
###安装hexo-generator-feed插件**
1 | npm install hexo-generator-feed --save |
在站点配置文件末尾加上如下代码:
1 | feed: |
打开主题配置文件,搜索rss,将前面的#去掉:
1 | follow_me: |
本地搜索
1 | npm install hexo-generator-search |
查找themes/next/_config.yml中的local_search :
1 | local_search: |
图片可点击放大
打开主题配置文件_config.yml,搜索fancybox,设置其值为true:
1 | fancybox: true |
进入到theme/next文件夹下,打开Git Bash,输入如下代码:
1 | git clone theme-next/theme-next-fancybox3 source/lib/fancybox |
博文置顶
在根目录Blog打开Git Bash,执行下面的命令:
1 | npm uninstall hexo-generator-index --save |
设置置顶标志
打开blog/themes/next/layout/_macro目录下的post.swig文件,定位到<div class="post-meta">标签下,插入如下代码:
1 | {% if post.top %} |
在文章中添加top
然后在需要置顶的文章的Front-matter中加上top: true即可,如下:
1 | --- |
hexo上给文章加密
1 | npm install --save hexo-blog-encrypt |
下好插件后将等字段添加到要加密文章的头部,如下:password, abstract, message
1 | --- |
hexo上给文章添加豆瓣卡片
下载插件:
1 | npm install hexo-douban-card --save |
第一项代表插件名douban
第二项可选:movie,book,music
第三项为豆瓣作品对应id,为豆瓣地址栏中后的数字subject
1 | {% douban movie 24745500 %} |
插入音乐
1 | npm install --save hexo-tag-aplayer |
在 Hexo 配置文件 _config.yml 中设置:
1 | aplayer: |
接着找到一个歌单、歌曲或专辑的链接,复制这个链接的id,这里以QQ音乐举例: https://y.qq.com/n/yqq/playlist/7868042847.html ,这个歌单的id就是7868042847;
最后将以下示例代码插入到你想要呈现播放器的地方即可:
1 | {% meting "7868005687" "tencent" "playlist" "theme:#555" "mutex:true" "listmaxheight:1000px" "preload:auto" %} |
| container | document.querySelector(‘.aplayer’) | 播放器容器元素 |
|---|---|---|
| fixed | false | 开启吸底模式, 详情 |
| mini | false | 开启迷你模式, 详情 |
| autoplay | false | 音频自动播放 |
| theme | ‘#b7daff’ | 主题色 |
| loop | ‘all’ | 音频循环播放, 可选值: ‘all’, ‘one’, ‘none’ |
| order | ‘list’ | 音频循环顺序, 可选值: ‘list’, ‘random’ |
| preload | ‘auto’ | 预加载,可选值: ‘none’, ‘metadata’, ‘auto’ |
| volume | 0.7 | 默认音量,请注意播放器会记忆用户设置,用户手动设置音量后默认音量即失效 |
| audio | - | 音频信息, 应该是一个对象或对象数组 |
| audio.name | - | 音频名称 |
| audio.artist | - | 音频艺术家 |
| audio.url | - | 音频链接 |
| audio.cover | - | 音频封面 |
| audio.lrc | - | 详情 |
| audio.theme | - | 切换到此音频时的主题色,比上面的 theme 优先级高 |
| audio.type | ‘auto’ | 可选值: ‘auto’, ‘hls’, ‘normal’ 或其他自定义类型, 详情 |
| customAudioType | - | 自定义类型,详情 |
| mutex | true | 互斥,阻止多个播放器同时播放,当前播放器播放时暂停其他播放器 |
| lrcType | 0 | 详情 |
| listFolded | false | 列表默认折叠 |
| listMaxHeight | - | 列表最大高度 |
| storageName | ‘aplayer-setting’ | 存储播放器设置的 localStorage key |
B站追番列表
安装
1 | $ npm install hexo-bilibili-bangumi --save |
将下面的配置写入站点的配置文件 _config.yml 里(不是主题的配置文件).
1 | bangumi: # 追番设置 |
带*为必填选项!
- enable: 是否启用
- source: 数据源,仅支持追番,追剧仅支持哔哩哔哩源。
bili: 哔哩哔哩源,bangumi: Bangumi源(bangumi.tv),bgm: Bangumi源(bgm.tv) - bgmInfoApi: 获取Bangumi番剧信息时使用的Api,仅使用Bangumi源时此选项生效。
bgmApi: Bangumi Api,bgmSub: Bangumi-Subject - proxy: 代理设置,仅在使用支持
bgm源追番时生效。默认false - path: 页面路径,默认
bangumis/index.html,cinemas/index.html - vmid: 哔哩哔哩的
vmid(uid)如何获取?或Bangumi的用户id如何获取? - title: 该页面的标题
- quote: 写在页面开头的一段话,支持 html 语法,可留空。
- show: 初始显示页面:
0: 想看,1: 在看,2: 看过,默认为1 - lazyload: 是否启用图片懒加载,如果与主题的懒加载冲突请关闭,默认
true - srcValue: 设置封面图的默认
src值,__image__为封面链接,__loading__为loading图片链接,lazyload选项为false时此选项生效 - lazyloadAttrName: 设置封面图的属性与属性值, 例
lazyloadAttrName: 'data-src=__image__'代表为img元素添加data-src属性, 其值为图片链接,lazyload选项为false时此选项生效 - loading: 图片加载完成前的 loading 图片,需启用图片懒加载
- metaColor: meta 部分(简介上方)字体颜色(十六进制的颜色代码需要添加引号:
metaColor: '#FFFFFF') - color: 简介字体颜色
- webp: 番剧封面使用
webp格式(此格式在safari浏览器下不显示,但是图片大小可以缩小 100 倍左右,仅支持哔哩哔哩源), 默认true - progress: 获取番剧数据时是否显示进度条,默认
true - extraOrder: 手动添加的番剧/追剧数据是否优先显示,
1为优先,其它为不优先 - showMyComment: 使用
bgm源时显示自己的评价及评论,默认false - pagination: 分页优化,只将第一页的数据渲染到
html文件中,其余数据将通过异步请求加载,避免番剧过多时html文件过大导致页面加载缓慢,建议番剧较多时使用,默认false - extra_options: 此配置会扩展到Hexo
page变量中
使用
- 在
hexo generate或hexo deploy之前使用hexo bangumi -u命令更新追番数据,使用hexo cinema -u命令更新追剧数据! - 删除数据命令:
hexo bangumi -d/hexo cinema -d
手动添加番剧/追剧数据
因为某些番剧在哔哩哔哩上没有,但是又想在hexo中展示,怎么办呢?现在支持手动添加番剧数据了!
在 sources/_data/ 目录下新建文件,命名为 extra_bangumis.json(追番数据)或extra_cinemas.json(追剧数据) ,并添加以如下内容:
1 | { |
title 是番剧的标题,cover 是封面图链接, des 是简介,上述字段均根据需要修改。
另外除了 watchedExtra 数组,还可以在后面添加新的数组,可用数组名如下:
| 可用数组名 | 含义 |
|---|---|
| wantWatchExtra | 想看 |
| watchingExtra | 在看 |
| watchedExtra | 看过 |
需要注意,在两个数组之间需要用 , 分隔。
NexT主题美化
设置建站时间
打开主题配置文件即themes/next下的_config.yml,查找since:
1 | footer: |
文章末尾添加版权说明
查找主题配置文件themes/next/_config.yml中的creative_commons:
1 | creative_commons: |
设置头像
打开主题配置文件即themes/next下的_config.yml,查找avatar,url后是图片的链接地址:
1 | # Sidebar Avatar |
然后将你要的头像图片复制到themes/next/source/images里,重命名为avatar.png。
网站图标设置
使用格式转换器将自己需要的图片压缩
下载16x16和32x32的图标后,打开主题配置文件,查找favicon,只要修改small和medium为你的图标路径:
1 | favicon: |
设置动态背景
JavaScript 3D library风格
在themes/next目录下打开Git Bash,输入:
1 | git clone https://github.com/theme-next/theme-next-three source/lib/three |
打开主题配置文件即themes/next下的_config.yml,找到three,这里有三种风格,可以试一下看看喜欢哪种风格,直接将false改为true就行了。
1 | # JavaScript 3D library. |
设置背景图片
打开主题配置文件即themes/next下的_config.yml,将 style: source/_data/styles.styl 取消注释:
1 | custom_file_path: |
打开根目录Blog/source创建文件_data/styles.styl,添加以下内容:
1 | // 添加背景图片 |
主页文章添加阴影效果
打开themes/next/source/css/_common/conponents/post/post.styl,修改.post-block,如下:
1 | .use-motion { |
还有一种方法打开Blog/source/_date/style.styl文件,添加以下代码:
1 | // 主页文章添加阴影效果 |
设置预览摘要
next(v7.7.1)已经没有如下代码:
1 | auto_excerpt: |
所以不需要设置,只要我们在文章中插入 ,该标签之上的是摘要,之后的内容不可见,需点击全文阅读按钮:
1 | <!-- more --> |
设置侧边栏显示效果
打开主题配置文件即themes/next下的_config.yml,找到Sidebar Settings,设置:
1 | sidebar: |
侧边栏推荐阅读
打开主题配置文件即themes/next下的_config.yml,搜索links(里面写你想要的链接):
1 | links_settings: |
添加社交链接
打开主题配置文件即themes/next下的_config.yml,搜索social:
1 | social: |
“||”前面的是链接,后面的是 FontAwesome图标名称。
设置博文内链接为蓝色
打开themes/next/source/css/_common/components/post/post.styl文件,将下面的代码复制到文件最后:
1 | .post-body p a{ |
设置文章末尾”本文结束”标记
在路径/themes/next/layout/_macro 中新建 passage-end-tag.swig 文件,并添加以下内容:
1 | <div> |
接着打开/themes/next/layout/_macro/post.swig文件,在post-footer前添加代码:

1 | {% if not is_index and theme.passage_end_tag.enabled %} |
然后打开主题配置文件(_config.yml),在末尾添加:
1 | # 文章末尾添加“本文结束”标记 |
添加访问量统计
打开主题配置文件即themes/next下的_config.yml,找到busuanzi_count,改为true:
1 | busuanzi_count: |
打开/themes/next/layout/_partials/footer.swig,在最后添加如下内容:
1 | {% if theme.busuanzi_count.enable %} |
代码块样式自定义
打开根目录Blog/source/_data/styles.styl,添加以下内容:
1 | // Custom styles. |
支持mathjax公式
打开主题配置文件,搜索mathjax:
1 | mathjax: |
腾讯公益404页面
离家的路有千万条,但回家的路只有一条。
在~/hexo/themes/next/source目录下新建404.html页面,在新建页面内添加如下内容:
1 | copy<!DOCTYPE HTML> |
其中homePageUrl与homePageName可自定义。
修改文章底部#号tag标签
在~hexo/themes/next/layout/_macro中找到post.swig文件,在内搜索el="tag">#,将#换成<i class="fa fa-tag"></i>即可,然后hexo s刷新预览吧。
想使用其他图标可在Fontawesome内自行查找。
给文章添加更新时间
在主题配置文件中找到updated_at,默认为false,修改成true即可。
添加突破容器宽度限制的图片
当使用此标签引用图片时,图片将自动扩大 26%,并突破文章容器的宽度。 此标签使用于需要突出显示的图片, 图片的扩大与容器的偏差从视觉上提升图片的吸引力。 此标签有两种调用方式(详细参看底下示例):
- HTML方式:使用这种方式时,为 img 添加属性 class=”full-image”即可。
- 标签方式:使用 fullimage 或者 简写 fi, 并传递图片地址、 alt 和 title 属性即可。 属性之间以逗号分隔。
标签方式要求 NexT 的版本在 0.4.5 或以上。 若你正在使用的版本比较低,可以选择使用 HTML 方式。
如果要在图片下显示图片的标题,请使用 标签方式 并给定 title 属性。
1 | copy<!-- HTML方式: 直接在 Markdown 文件中编写 HTML 来调用 --> |
添加折叠项
格式如下,其中内容可以是文字和图片等:
1 | <details><summary>点此打开折叠项</summary><p> |
示例:
点此打开折叠项
内容