avatar🌌
梦念逍遥梦念逍遥のBLOG

欢迎来到梦念逍遥の博客

这是一个很棒的博客

【个人博客网站】博客美化(七):随机文章显示

提示

参考了安知鱼的方案进行修改 原教程butterfly 重装日记

闲聊

【个人博客网站】博客美化(二):制作右键菜单中,有一个功能一直有问题,那就是随便逛逛

这个功能实现的是随机文章显示,但因为我忽略了某些东西,导致该功能异常

安装

npm
shell
npm install hexo-generator-sitemap --save

这个插件是生成站点地图,用于随机访问文章

js

创建themes/butterfly/scripts/helpers/random.js文件

random.js
js
hexo.extend.generator.register('random', function (locals) {
    const config = hexo.config.random || {}
    const posts = []
    for (const post of locals.posts.data) {
        if (post.random !== false) posts.push(post.path)
    }
    return {
        path: config.path || 'mengnianxiaoyao/random.js',
        data: `var posts=${JSON.stringify(posts)};function toRandomPost(){window.open('/'+posts[Math.floor(Math.random() * posts.length)],"_self");};`
    }
})

如果你开启了pjax,就用下面的代码

random.js
js
hexo.extend.generator.register('random', function (locals) {
    const config = hexo.config.random || {}
    const posts = []
    for (const post of locals.posts.data) {
        if (post.random !== false) posts.push(post.path)
    }
    return {
        path: config.path || 'mengnianxiaoyao/random.js',
        data: `var posts=${JSON.stringify(posts)};function toRandomPost(){pjax.loadUrl('/'+posts[Math.floor(Math.random() * posts.length)]);};`
    }
})

配置

插件配置

具体文档地址:https://github.com/hexojs/hexo-generator-sitemap

在hexo配置文件或者主题配置文件中,添加以下内容

_config.yml
yml
## 站点地图
sitemap:
  path: sitemap.xml
  rel: false
  tags: true
  categories: true

js配置

在主题配置文件中injectbuttom项导入

_config.butterfly.yml
yml
buttom:
    - <script src="/mengnianxiaoyao/random.js"></script>

调用

在需要调用的位置执行toRandomPost()函数即可。

比如任意dom添加onclick="toRandomPost()"


Q.E.D.
【个人博客网站】博客美化(六):添加侧边栏电子钟
【个人博客网站】博客美化(五):评论系统以及通知邮件
Valaxy v0.28.0-beta.7 驱动|主题-Yunv0.28.0-beta.7
本站已运行0 天0 小时0 分0 秒