首页 > 其他分享 >为 VitePress 网站添加 RSS 订阅支持

为 VitePress 网站添加 RSS 订阅支持

时间:2023-08-22 22:22:05浏览次数:45  
标签:订阅 插件 const vitepress VitePress buildEnd rss config RSS

省流:使用 vitepress-plugin-rss 这个插件

前言

在看许多个人博客站点的时候,右上角总会有个RSS订阅的标志

恰好我的博客也是基于 VitePress 搭建的,就想看看能不能也实现这个功能呢?

动手前先搜了一下,先是看到了vitepress-blog-zaun上有这个RSS的实现支持,再搜了一下发现Vue的官方博客 vuejs/blog 也是用的这样的实现

大概就是自定义 VitePress 的 buildEnd 钩子,在里面实现逻辑获取 md 文件列表,然后通过 feed 生成 RSS 文件,整个逻辑就 50+ 行代码

由于我的博客还分离了独立的主题包 @sugarat/theme,我想把这个功能加到我的主题包里,这样使用这个主题的就可以简单的配置一下就能使用了,当然也为了方便广大 VitePress 用户更加简便的使用,我将这段逻辑单独分离封装到了 vitepress-plugin-rss 这个插件里。

接下来我将会先介绍一下如何食用这个插件,再介绍它的核心实现原理

插件使用

通过 pnpm/npm/yarn 安装插件

pnpm add vitepress-plugin-rss

.vitepress/config.ts 配置文件中添加配置使用

下面是最基础的使用配置

import { RssPlugin, RSSOptions } from 'vitepress-plugin-rss'
const baseUrl = 'https://sugarat.top'
const RSS: RSSOptions = {
  title: '粥里有勺糖',
  baseUrl,
  copyright: 'Copyright (c) 2018-present, 粥里有勺糖',
}

export default defineConfig({
  vite: {
    // ↓↓↓↓↓
    plugins: [RssPlugin(RSS)]
    // ↑↑↑↑↑
  }
})

然后运行 build 命令,你可以看到在rendering pages...后打印了生成 feed.rss 日志...

pnpm run build

同时会在导航栏的 socialLinks 中添加 rss 图标链接

使用是不是非常简单,只需要 10 行代码。

如果你对插件的实现原理感兴趣,请接着往下看

标签:订阅,插件,const,vitepress,VitePress,buildEnd,rss,config,RSS
From: https://www.cnblogs.com/roseAT/p/17649853.html

相关文章

  • 发布订阅
    classPubSub{constructor(){this.subscribers={};}subscribe(event,callback){if(!(eventinthis.subscribers)){this.subscribers[event]=[];}this.subscribers[event].push(callback);}unsubscribe(event,callback){if(!(eventinthis.subscribe......
  • 哈希,列表,集合,有序集合,慢查询,pipeline,发布订阅,bitmap位图,Hyperloglog
    目录1哈希类型2列表类型3集合类型4有序集合(zset)5慢查询6pipeline与事务7发布订阅8Bitmap位图9HyperLogLog1哈希类型###1---hget,hset,hdelhgetkeyfield#获取hashkey对应的field的value时间复杂度为o(1)hsetkeyfieldvalue#设置hashkey对应的field的value......
  • php发送小程序订阅消息
    微信文档:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/subscribe-message.html#%E8%AE%A2%E9%98%85%E6%B6%88%E6%81%AF%E8%AF%AD%E9%9F%B3%E6%8F%90%E9%86%921.小程序后台创建消息模板 2.小程序用户点击按钮订阅dingyue(){//console.log('订阅......
  • Kayra 适用于所有 NovelAI 订阅级别和免费试用,Clio 8K 上下文适用于所有级别
    Kayra适用于所有NovelAI订阅层和免费试用版,Clio8K上下文适用于所有层NovelAI很高兴地宣布,NovelAI-LM-13B-402k,Kayra是我们为讲故事量身定制的最强大的专有模型,现已在所有订阅层和免费试用版上提供。由于这是一个大型版本,我们已经重置了试用操作,因此即使您在之前的试用期内......
  • 标准更新 | 加拿大 ISED更新 RSS-247 标准版本
    加拿大创新、科学和经济发展部(ISED)已更新和发布RSS-247Issue3标准,取代RSS-247Issue2标准。自Issue3于发布之日起6个月为过渡期,过渡期内Issue2和Issue3两个版本均可使用,过渡期(2023.8.3-2024.2.2)后,仅接受Issue3的认证申请。  新标准主要变化如下:1.增加了2.1章节,以......
  • js-设计模式之订阅发布模式简单理解和实践
    /***啥是发布订阅模式*举个栗子--场景:充值成功切换到个人中心页面刷新余额切换到会员中心页面刷新会员状态等*///定义一个对象作为接收事件的载体consteventBus={topic:{},//这里为啥是个对象呢首先肯定不止是一个事件,所以得是数组或者对象,那为什么不......
  • 自建RSS服务
    title:""date:2023-08-08T16:05:25+08:00tags:["RSS"]categories:[]draft:false参考链接:docker-compose部署RSS服务订阅、安装tiny-tiny-rss、RSSHub-贝尔塔猫-博客园我的RSS最佳实践1.部署过程#下载docker-compose.yml配置文件mkdir-p/opt/ttrss&......
  • Redis从入门到放弃(3):发布与订阅
    文章目录1、介绍2、如何使用发布订阅2.1、订阅频道2.2、发布消息2.3、取消订阅2.4、模式订阅2.5、取消模式订阅3、使用案例(伪代码)4、Redis的发布订阅与ActiveMQ、RocketMQ区别1、介绍Redis是一个快速、开源的内存数据库,支持多种数据结构,如字符串、哈希、列表、集合、有序集合等。......
  • WIFI - RSSI 和 RCPI
    RSSI:receivesignalstrengthindicator,接收信号强度指示,无线发送层的可选部分,用来判定链接质量,以及是否增大广播发送强度。RSSI的正常范围可以是:【-93,-113】,超过这个范围,则可视为RSSI异常。主集与分集针对的是天线。一个扇区两根天线,一根天线发送和接受信号-主集,一个天线只接......
  • MQTT 订阅者(异步)代码解读
    一、问题引入官方给出了MQTTClient的异步订阅的例子,对于消息的订阅就无需讲究什么同步了。二、解决过程2-1MQTT订阅者程序流程第一步:创建客户端LIBMQTT_APIintMQTTAsync_create(MQTTAsync*handle,constchar*serverURI,constchar*clientId, intpersistence_t......