Hexo 上的豆瓣、哔哩哔哩和 Steam 插件
增加豆瓣书/影单
1. 安装模块依赖
在cmd中输入命令:
1 | npm install hexo-douban --save |
2. 添加配置
在Hexo配置文件添加配置:
1 | #豆瓣插件 |
其中可以添加别的类别~参数说明:
- user: 你的豆瓣ID.打开豆瓣,登入账户,然后在右上角点击 “个人主页” ,这时候地址栏的URL大概是这样:”https://www.douban.com/people/xxxxxx/“ ,其中的”xxxxxx”就是你的个人ID了。
- builtin: 是否将生成页面的功能嵌入
hexo s
和hexo g
中,默认是false
,另一可选项为true
(1.x.x版本新增配置项)。 - title: 该页面的标题.
- quote: 写在页面开头的一段话,支持html语法.
- timeout: 爬取数据的超时时间,默认是 10000ms ,如果在使用时发现报了超时的错(ETIMEOUT)可以把这个数据设置的大一点。
由于hexo-douban
是默认抓取豆瓣读书、豆瓣电影以及豆瓣游戏的,如果只想要其中一部分,可以把其它部分在上述配置文件中去掉即可。
3. 部署
只是引入了豆瓣这个插件,但是要给它一个入口,在主题配置文件menu中加入下述配置,将其加入到了顶部的标签栏。
1 | List: |
如果加入后不是中文,需要在主题目录下的languages中zh-CN中加入对应词单,也可以直接写中文。
4. 适配Matery主题(可选)
在/themes/hexo-theme-matery/layout
文件夹下面创建一个名为 douban.ejs
的文件,并将下面的内容复制进去:
1 | <link rel="stylesheet" type="text/css" href="<%- theme.jsDelivr.url %><%- url_for('/css/detail/douban.css') %>"> |
最后面的几个
<% if (*) { %> <% * %> <% } %>
模块,可以根据实际运用模块进行删改
在 source/css/detail
文件夹下面创建一个名为 douban.css
的文件,并将下面的内容复制进去:
1 | .bg-cover { |
然后可以去 source/medias/banner
文件夹下面创建一个douban.jpg
以供页面使用。
之后在博客站点目录下的 node_modules
文件夹下找到 hexo-douban/lib
,文件夹下有三个 js 文件,分别为:books-generator.js
、games-generator.js
、movies-generator.js
,用文本编辑器打开这三个文件,并将其文件内容末尾的代码修改为一下内容:
1 | /* 原文件内容为 layout: [`page`, `post`] ,将其修改为下面的内容*/ |
5. 出现的问题
在hexo douban
运行抓取数据并同步的时候:
1 | INFO 0 books have been loaded in 836 ms, because you are offline or your network is bad |
出现如上错误,网上有人说是因为爬虫过多被服务器反爬了,等几天就可以。但是我过了很多天都不可以,最后采取:降低本地nodejs版本到12.18.0就可以同步过来了。
添加豆瓣书影音卡片插件
用法
首先请安装插件
1 | $ npm install hexo-douban-card --save |
然后使用以下语法
1 | {% douban movie 24745500 %} |
参数阐述
- 第一项
douban
代表插件名 - 第二项可选:
movie
,book
,music
- 第三项请填入对应的
id
例如:
填写subject后面的那串数字就好
示例
Bilibili 插件使用说明
根据官方文档安装插件
参考插件说明文档
安装
1 | npm install hexo-bilibili-bangumi --save |
配置
将下面的配置写入站点的配置文件 _config.yml
里。
1 | bangumi: |
使用
hexo new page "bangumis"
其bangumis
的 md 文档加上type: "bangumis"
- 添加
uid
- 在
hexo generate
或hexo deploy
之前使用hexo bangumi -u
命令更新番剧数据! - 删除数据命令:
hexo bangumi -d
获取 uid
登录哔哩哔哩后前往https://space.bilibili.com
页面,网址最后的一串数字就是 uid
需要将追番列表设置为公开!
手动添加番剧数据
因为某些番剧在哔哩哔哩上没有,但是又想在 hexo 中展示,怎么办呢?现在支持手动添加番剧数据了!
在 sources/_data/
目录下新建文件,命名为 extra_bangumis.json
,并添加以如下内容:
1 | { |
title
是番剧的标题,cover
是封面图链接, des
是简介,上述字段均根据需要修改。
另外除了 watchedExtra
数组,还可以在后面添加新的数组,可用数组名如下:
可用数组名 | 含义 |
---|---|
wantWatchExtra | 想看 |
watchingExtra | 在看 |
watchedExtra | 看过 |
需要注意,在两个数组之间需要用 ,
分隔。
适配Matery主题(可选)
ejs 文件的创建
在/themes/hexo-theme-matery/layout
文件夹下面创建一个名为 bangumi.ejs
的文件,并将下面的内容复制进去:
1 | <link rel="stylesheet" type="text/css" href="<%- theme.jsDelivr.url %><%- url_for('/css/detail/bangumi.css') %>"> |
最后面的几个
<% if (*) { %> <% * %> <% } %>
模块,可以根据实际运用模块进行删改
在 source/css/detail
文件夹下面创建一个名为 bangumi.css
的文件,并将下面的内容复制进去:
1 | .bg-cover { |
然后可以去 source/medias/banner
文件夹下面创建一个bangumi.jpg
以供页面使用。
插件 moudle 内容修改
然后在博客站点目录下的 node_modules
文件夹下找到 hexo-bilibili-bangumi/lib
,用文本编辑器打开文件夹。
下面两个 js
文件中的代码进行对应修改:
1 | hexo-bilibili-bangumi\lib\bangumi-generator.js |
1 | layout: ['page', 'bangumi'] |
本来的代码是
layout: ['page', 'post']
添加 B 站视频插件
安装 hexo-tag-bilibili
切换到 Hexo 的目录,执行以下命令
1 | npm install --save hexo-tag-bilibili |
使用
在文章中用以下方式使用此插件 [av_id] 填写视频的 av 号。
1 | {% bilibili [av_id] %} |
如果有多 p,使用以下格式。[page] 为 P 号。
1 | {% bilibili [av_id] [page] %} |
( display 不能包含英文逗号,可用 ‚
)
只能写 AV 号 如 av57505556
,av_id
写 57505556
哔哩哔哩 AV/BV 互转 https://tool.liumingye.cn/avbv/
例如
:
1 | {% bilibili 884810250 %} |
效果
:
高级
配置
你可以配置你的播放器 在 Hexo 的文件夹中,打开 _config.yml
文件进行配置。 你可以配置 是否自动播放
,播放器的大小
等。 例如
1 | bilibili: |
ps:这插件貌似读取 _config.yml
值时会互换 width 和 height 值,请注意实际效果。
Style
播放器由一个带有 bili_video
类的 <div>
标签包装。你可以通过自定义的 css 文件修改它的样式。
bangumi卡片插件
显示动漫小卡片,使用 Bangumi 的 API。
Installation / 安装
1 | npm install hexo-tag-bangumi --save |
Usage / 使用方法
Use tags:
在 Markdown 文件中:
1 | {% bangumi animeId %} |
Example / 例子:
1 | {% bangumi 216371 %} |
之后插件会生成如下的 HTML 代码:
1 | <div class="bangumi-anime_card"> |
效果:
吹奏乐竞赛京都府大赛。在那里漂亮地取得金奖的北宇治高中吹奏乐部,向着下一个舞台·强豪云集的关西大赛发起挑战!
铠塚霙,高中3年级,双簧管演奏者。 伞木希美,高中3年级,长笛演奏者。 初中时,是希美牵起了霙的手,带领她走出了孤独。 自那以后,希美就占据了霙的整个世界。 只有与希美在一起的生活,才令霙感到幸福。 可在高中一年级,希美一度退出了吹奏部。而她的归来,也始终未能抹去霙心中的不安。 ——是否有一天,希美会再次消失在自己面前呢? 就这样,二人迎来了高中最后的竞演会。 参赛的自由曲是「莉兹与青鸟」。 在这首以童话为蓝本创作的乐曲当中,有一段双簧管与长笛交相呼应的章节。 「故事的结局,还是越美满越好啦。」 虽然希美如此认为,霙却依然对终将到来的离别心怀恐惧。 ——请永远,永远,留在我身边吧—— 在继续着日常生活的同时,两人总是情不自禁地将自己投影到童话当中。 霙是莉兹,希美是青鸟。 但是…… 两枚略有嫌隙的齿轮,仍不停地转动,寻找着与彼此相契合的那个瞬间。
How to get the anime id? / 如何获取 AnimeId
- Open Bangumi website. / 打开 Bangumi。
- Search anime than you want to insert. / 查找你想插入的动漫。
- Url is like this:
http://bangumi.tv/subject/216371
. / 得到该动漫的 URL。 - The NUMBER is anime id. / 末尾的数字就是要在标签中填入的 ID。
Options / 参数设置
By modifying the _config.yml
file under the Hexo root directory.
在 _config.yml
中添加如下 Option 可以自定义 CSS 地址。
1 | bangumis: |
The default css address is:
https://cdn.jsdelivr.net/npm/hexo-tag-bangumi/hexo-tag-bangumi.css
默认 CSS 地址为 jsdelivr 的 CDN。
Style / 样式
The default css style used Simone Bernabè:
默认 CSS 样式使用了 Simone Bernabè 在 CodePen 上发布的 Movie Card 样式。
API
The Hexo plugin used official API by bangumi, It’s Powerful!
API 是 Bangumi 自家的公开 API。
为Hexo添加Steam游戏库页面
安装
1 | npm install hexo-steam-games --save |
配置
将下面的配置写入站点的配置文件 _config.yml
里(不是主题的配置文件).
1 | steam: |
-
enable: 是否启用
-
steamId: steam 64位Id(需要放在引号里面,不然会有BUG), 需要将steam库设置为公开!
-
path: 番剧页面路径,默认
steamgames/index.html
-
title: 该页面的标题
-
quote: 写在页面开头的一段话,支持html语法
-
tab:
all
或recent
,all: 所有游戏
,recent: 最近游玩的游戏
-
length: 要显示游戏的数量,游戏太多的话可以限制一下
-
imgUrl: 图片链接,在
quote
下面放一张图片,图片链接到Steam个人资料,可留空 -
proxy: 如果无法访问steam社区的话请使用代理
- host: 代理ip或域名
- port: 代理端口
-
extra_options: 此配置会扩展到Hexo的page变量中
适配Matery主题(可选)
在/themes/hexo-theme-matery/layout
文件夹下面创建一个名为 steamgames.ejs
的文件,并将下面的内容复制进去:
1 | <link rel="stylesheet" type="text/css" href="<%- theme.jsDelivr.url %><%- url_for('/css/detail/steamgames.css') %>"> |
最后面的几个
<% if (*) { %> <% * %> <% } %>
模块,可以根据实际运用模块进行删改
在 source/css/detail
文件夹下面创建一个名为 steamgames.css
的文件,并将下面的内容复制进去:
1 | .bg-cover { |
然后可以去 source/medias/banner
文件夹下面创建一个steam.jpg
以供页面使用。
之后在博客站点目录下的 node_modules
文件夹下找到 hexo-steam-games/lib
,找到steam-games-generator.js
文件,用文本编辑器打开并将其文件内容末尾的代码修改为一下内容:
1 | /* 原文件内容为 layout: [`page`, `post`] ,将其修改为下面的内容*/ |
使用
- 在
hexo generate
或hexo deploy
之前使用hexo steam -u
命令更新steam游戏库数据! - 删除游戏库数据指令:
hexo steam -d
手动获取游戏库数据
如果hexo steam -u
命令一直获取游戏库数据失败,可以用以下方法手动获取游戏库数据:
-
浏览器打开
https://steamcommunity.com/profiles/{steamId}/games?tab={tab}
,{steamId}
和{tab}
分别替换为上面配置中提到的steamId
和tab
-
网页加载完成后,打开浏览器控制台,按
F12
,输入以下代码并回车:1
2
3
4
5
6
7
8
9
10
11
12let script = jQuery('script[language="javascript"]');
var games = [];
for (let i = 0; i < script.length; i++) {
if (script.eq(i).html().includes("rgGames")) {
let rgGames = script.eq(i).html().match(/var.*?rgGames.*?=.*?(\[[\w\W]*?\}\}\]);/);
if (rgGames) {
games = JSON.parse(rgGames[1]);
break;
}
}
}
document.write(JSON.stringify(games)) -
将生成的内容复制到
博客根目录/node_modules/hexo-steam-games/data/games.json
文件内,如果没有对应的文件或目录,请自行创建
用于在Hexo博客中嵌入steam游戏。
Steamgame卡片插件
安装
1 | npm install hexo-tag-steamgame --save |
使用方法
- 嵌入单个游戏
1 | {% steamgame appid description %} |
- 批量嵌入游戏
1 | {% steamgames %} |
参数
1 | appid: Steam 游戏 id. |
Demo
示例:
1 | {% steamgames %} |
效果: