Skip to content

Commit

Permalink
zero config support
Browse files Browse the repository at this point in the history
  • Loading branch information
huiwang committed Jan 3, 2018
1 parent 309ef5b commit f21b9ab
Show file tree
Hide file tree
Showing 6 changed files with 42 additions and 89 deletions.
61 changes: 0 additions & 61 deletions README-en.md

This file was deleted.

41 changes: 16 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
[![npm version](https://badge.fury.io/js/hexo-recommended-posts.svg)](https://badge.fury.io/js/hexo-recommended-posts)
[![Join the chat at https://gitter.im/hexo-recommended-posts/Lobby](https://badges.gitter.im/hexo-recommended-posts/Lobby.svg)](https://gitter.im/hexo-recommended-posts/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

[中文](README.md) | [English](README-en.md)

# Hexo跨博客文章推荐插件
此插件通过文章推荐的方式帮助你推广博客。它从[推荐服务器](https://github.com/huiwang/encore)里获取文章推荐列表,列表里既有你自己的文章,也有使用此服务的其他博主的文章
此插件通过文章推荐的方式帮助大家推广博客,是借助人工智能,实现的友情链接的升级换代。它从推荐引擎里获取文章推荐列表,列表里既有您博客的内部文章链接,也有使用此服务的其他博主的外部链接,自动,精准,公平的实现文章互推

在安装使用之前,您可以[实时预览](http://hui-wang.info/2017/12/02/%E5%AD%A6%E4%B9%A0%E5%A6%82%E4%BD%95%E5%AD%A6%E4%B9%A0/)该插件的效果。

Expand All @@ -21,42 +19,35 @@ npm install hexo-recommended-posts --save
```
hexo recommend
```
## 3. 显示推荐文章

如果您使用下面其中一款主题,只需在主题的配置文件里激活推荐文章功能
- [hexo-theme-freemind](https://github.com/wzpan/hexo-theme-freemind)
# 自定义

```
# Recommended posts
# Dependency: https://github.com/huiwang/hexo-recommended-posts
recommended_posts:
enabled: true
```

否则,您需要自己动手添加主题支持,Hexo有两个比较流行的渲染器:
- EJS :请参看[hexo-theme-freemind](https://github.com/wzpan/hexo-theme-freemind/pull/77/files)的配置
- SWIG:请参看[hexo-next-them](https://github.com/iissnan/hexo-theme-next/pull/2054/files)的配置
本插件可以在零配置的情况下直接使用。

如果您是主题的维护者,请在配置完毕之后联系我,我会把您的主题加入到支持该插件的列表中。

# 常见问题
- 如何自定义推荐文章参数?

可以在博客根目录的`_config.yml`里来覆盖下面的默认配置:
如果默认配置不能满足您的需求,您可以在博客根目录的`_config.yml`里覆盖默认配置:
```
recommended_posts:
server: https://api.truelaurel.com #后端推荐服务器地址
timeoutInMillis: 5000 #服务时长,超过此时长,则使用离线推荐模式
timeoutInMillis: 10000 #服务时长,超过此时长,则使用离线推荐模式
internalLinks: 3 #内部文章数量
externalLinks: 1 #外部文章数量
autoDisplay: true, #自动在文章底部显示推荐文章
titleHtml: <h1>推荐文章<span style="font-size:0.45em; color:gray">(由<a href="https://github.com/huiwang/hexo-recommended-posts">hexo文章推荐插件</a>驱动)</span></h1> #自定义标题
```

- 当无法连接推荐服务器时,插件如何工作?
## 如何自定义推荐文章的显示位置?

首先,您需要关闭推荐文章的自动显示 `autoDisplay: false`
其次,您需要自定义您的博客主题,Hexo有两个比较流行的渲染器:
- EJS :请参看[hexo-theme-freemind](https://github.com/wzpan/hexo-theme-freemind/pull/77/files)的配置
- SWIG:请参看[hexo-next-them](https://github.com/iissnan/hexo-theme-next/pull/2054/files)的配置

## 当无法连接推荐服务器时,插件如何工作?

当服务器无法使用时,对旧文章,插件会使用原有的推荐列表;对新文章,将使用离线推荐算法推荐内部文章。

# 致谢

我想感谢朋友们对此插件的贡献,谢谢他们极具建设性的意见和快速的测试反馈
- [reuixiy](https://reuixiy.github.io/)
- [sd44](http://sd44.github.io/)
- [sd44](http://sd44.github.io/)
3 changes: 2 additions & 1 deletion index.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
hexo.extend.helper.register('recommended_posts', require('./lib/recommend_helper'))
hexo.extend.helper.register('recommended_posts', require('./lib/recommend_helper'));
hexo.extend.filter.register('after_post_render', require('./lib/recommend_filter'));
hexo.extend.console.register('recommend', 'Downlaod recommended posts from recommendation server', {
usage: '',
arguments: []
Expand Down
5 changes: 4 additions & 1 deletion lib/recommend_config.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@ const default_config = {
"server": "https://api.truelaurel.com",
"timeoutInMillis": 10000,
"internalLinks": 3,
"externalLinks": 1
"externalLinks": 1,
"autoDisplay": true,
"titleHtml": '<h1>推荐文章<span style="font-size:0.45em; color:gray">(由<a href="https://github.com/huiwang/hexo-recommended-posts">hexo文章推荐插件</a>驱动)</span></h1>'

}

module.exports = function extractConfig(env) {
Expand Down
19 changes: 19 additions & 0 deletions lib/recommend_filter.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
var recommend = require('./recommend');
var extractConfig = require('./recommend_config');

module.exports = function (post) {
var rp_config = extractConfig(this.config);
if (!rp_config.autoDisplay) return post;

var rp_data = this.locals.get('data').recommended_posts;
var internal = rp_config.internalLinks;
var external = rp_config.externalLinks;
var totalLinks = internal + external;
var rps = recommend(rp_data, totalLinks, post);
if (rps.length > 0) {
var rps_list = rps.map(post => '<li><a href="' + post.permalink + '">' + post.title + '</a></li>').join('');
var rps_html = '<div>' + rp_config.titleHtml + '<ul>' + rps_list + '</ul></div>'
post.content += rps_html;
}
return post;
}
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "hexo-recommended-posts",
"version": "0.0.13",
"version": "0.0.14",
"description": "Recommended Posts Plugin for Hexo",
"main": "index.js",
"repository": {
Expand Down

0 comments on commit f21b9ab

Please sign in to comment.