给Hexo博客增加文章推荐

胡萝虎 

 

最近在整理Hexo博客的配置时,发现以前配置文章推荐,做了一半后就不了了之了,今天就把剩下的完成吧。

 

安装插件

Hexo的文章推荐插件不多,找了半天就找到一个比较合适的– hexo-recommended-posts。这款插件实际上兼具文章推荐和友链的功能。它可以借助后端服务与同样使用这款插件的网站实现链接自动化匹配互换,也可以使用离线模式,仅推荐本站的文章。不过我配置完成后,一直都是推荐本站的文章,目前还没找到原因。

 

安装插件

npm install hexo-recommended-posts --save

 

配置插件

插件作者称支持零配置直接使用,但是实际需要考虑各种主题的不同,像我使用的主题hexo-theme-Anisina就不能直接使用,还是需要做一些配置和写一些代码。

 

添加配置

在网站的_config.yml文件中加入以下配置:

recommended_posts:
  server: https://api.truelaurel.com #后端推荐服务器地址
  timeoutInMillis: 10000 #服务时长,超过此时长,则使用离线推荐模式
  internalLinks: 2 #内部文章数量
  externalLinks: 2 #外部文章数量
  autoDisplay: false, #自动在文章底部显示推荐文章
  excludePattern: []
  fixedNumber: false # 控制是否返回固定数量的推荐文章
  titleHtml: <h3>你可能会喜欢<span style="font-size:10; color:gray"></span></h3> #自定义标题

 

!!! Warning “”
如果安装完插件,页面没有显示推荐模块,则表示你需要自定义推荐模块的现实位置,这时候 autoDisplay需要先设置为false

 

其中 excludePattern 可以添加想要被过滤的链接的正则表达式, 如配置为 ["huluohu.com"], 则所有包含 huluohu.com 的链接都会从推荐文章中过滤掉;

fixedNumber 字段用来控制是否返回固定数量的推荐文章, 如果默认推荐文章不够的话会填充当前文章的前后文章作为推荐文章。

编写widget

在你使用的主题的layoutwidget目录下创建widget文件,我使用的是ejs模版,使用其他模版的主题类似:

image-20210205214119649

 

代码如下:

<div class="widget">
    <% var post_list = recommended_posts(page, site); %>
    <% if(post_list.length > 0) { %>
        <div class="recommended_posts">
            <h3><%= __('你可能会喜欢') %></h3>
            <ul>
                <% post_list.forEach(function(link) { %>
                    <li><a href="<%= link.permalink %>"><%= link.title %></a></li>
                <% }) %>
            </ul>
        </div>
    <% } %>

</div>

 

集成推荐widget

找到主题的post模版页面,一般在layout目录下

image-20210205214425523

在你认为合适的地方添加以下代码,引入推荐widget

                <!-- recommended posts -->
                <div class="row">
                    <%- partial('_widget/intellij_recommended', {page: page, site: site}) %>
                </div>

 

查看效果

发布博客

hexo g -d

 

推荐文章效果,作者说的跨站推荐貌似没有生效,看来还得再琢磨琢磨。

image-20210205215031202

Recommended Posts

Jellyfin中使用QSV替代VAAPI转码

使用过Jellyfin的应该都会遇到转码的问题,默认情况下都是使用VAAPI进行转码,这种方式兼容性比较好,但是转码的性能比较一般。如果使用的是Intel平台J4125及更早的CPU的话,建议切换为QSV(Intel Quick Sync )进行转码,效率会比VAAPI快很多,并且CPU也会更低。

胡萝虎 

在群晖上使用Docker部署为知笔记服务

虽然市面上有很多各种类型的云笔记应用,像有道云笔记、印象、OneNote,包括Notion,博主都曾尝试使用过。但是随着资料越来越多,特别是一些涉及个人隐私的资料放在云端笔记上,比如密码、账号之类的,让博主越来越感到焦虑😂。博主此前也曾在群晖部署过蚂蚁笔记,但是使用感受实在不咋滴;一段时间以来,只能勉强用群晖自带的弱智Note Station来记录个人资料,真怕哪天自己也搞弱智了。

最近实在受不了Note Station的反人类操作了,不得不再次开启寻找解决方案的征途,幸运的是,Eureka…… 为知笔记的私有化方案终于让我解放啦

胡萝虎 

在群晖中搭建Cloudreve网盘系统

众所周知,某度网盘为了挣钱,各种极限限速,下载限速能把人恶心死。但是,网盘类服务越来越成为人们的刚需,不管是个人生活中的照片,还是工作学习中各类资料,相信很多人都需要使用到网盘进行存储和分享。如果你不想忍受某度的速度,建议有条件的朋友可以试试自己搭建一套网盘系统,本文以Cloudreve为例,在群晖NAS上搭建一套属于自己的私人网盘服务,供读者们参考

胡萝虎 

在群晖上搭建Bitwarden密码管理服务器

管理密码是很多人头痛的事,密码设置简单好记又不太安全,设置复杂又容易忘。为了解决这个难题,市面上出现了不少密码管理工具,帮助人们管理在各种平台、系统、网站、APP上设置的密码,比如1Password、Lastpass、KeePass等,不过绝大多数需要付费才能使用。本着能白嫖就绝不花一个子儿的原则,今天我就来介绍一个不需要花钱的密码管理器——Bitwarden

胡萝虎 

使用Docker一键安装服务端神器Appwrite

Appwrite是一个基于Docker的开源的端到端开发者平台,其容器化的微服务库可应用于网页端,移动端,以及后端。Appwrite 通过视觉化界面极简了从零编写 API 的繁琐过程,在保证软件安全的前提下为开发者创造了一个高效的开发环境。

简单来说,如果你只会前端开发,不懂后端技术,那么这个神器就可以帮你轻松完成后端服务搭建,包括账户、用户、团队、数据库、存储、云函数等等,目前支持各类前端平台,包括Flutter、Vue、Angular、React、iOS和Android等

胡萝虎 

Leave A Comment