惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Blog — PlanetScale
Blog — PlanetScale
G
Google Developers Blog
Microsoft Security Blog
Microsoft Security Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
腾讯CDC
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Jina AI
Jina AI
雷峰网
雷峰网
T
Tailwind CSS Blog
爱范儿
爱范儿
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
酷 壳 – CoolShell
酷 壳 – CoolShell
大猫的无限游戏
大猫的无限游戏
月光博客
月光博客
博客园 - 司徒正美
I
InfoQ
Engineering at Meta
Engineering at Meta
Vercel News
Vercel News
小众软件
小众软件
U
Unit 42
Google DeepMind News
Google DeepMind News
D
DataBreaches.Net

LineXic's website

博客三周年记 月记 16:我的八月 月记 16:我的八月 Ungoogled Chromium 初体验安装 最近迷上了织围巾 月记 15:武安-承载我童年的地方 月记 14:好久不见 月记 13:四月小记 月记 12:探索与认识自我 三月份我都买了些什么 月记 11:去北京 月记 10:我自身的近况 2025年12月25到26日日记记录——一篇无病呻吟 再见2025 - 看看我今年都做了什么事吧 我从移动端网站回到了应用及一些博客主题的思考 月记之九:我又重新审视了自己的未来 【翻译】为什么我切换到了 Firefox 且不再回头 国庆散记 读任冬生《羌风遍野》 博客两周年记 检查你的Ip是否为公网IP 记去电影院看《南京照相馆》 月记之八:我的七月 我是如何使用 Pagefind 构建 Astro 页面的搜索功能的 月记之七:期末总结 如何利用 Github Action 实现 Astro 博客静态文件自动上传到宝塔 我与博客的一天 月记之六:端午节与最近 回答【博客作者呀,我想采访你这 9 个问题!】 使用 Vercel Neon 搭建 Umami 统计
利用 VUE 实现 RSS “归档”
LineXic · 2025-04-06 · via LineXic's website

前言

在尝试使用Astro搭建归档无果后看来还需要多看文档我想到了在外部引入归档的方式虽然这样比较麻烦,于是准备通过vue来实现一个RSS的归档。

实现

初学vue自己也有一些地方不懂,参考了一些AI的代码,其核心是这一段

<script setup>
import { ref, onMounted } from 'vue'
import axios from 'axios'
const articles = ref([])

const parseRSS = async (xmlText) => {
  const parser = new DOMParser()
  const xmlDoc = parser.parseFromString(xmlText, "text/xml")
  return Array.from(xmlDoc.getElementsByTagName('item')).map(item => ({
    title: item.getElementsByTagName('title')[0].textContent,
    link: item.getElementsByTagName('link')[0].textContent,
    pubDate: item.getElementsByTagName('pubDate')[0].textContent
  }))
}

const formatDate = (dateString) => {
  return new Date(dateString).toLocaleDateString('zh-CN')
}

onMounted(async () => {
  try {
    const response = await axios.get('https://www.linexic.top/rss.xml')
    articles.value = (await parseRSS(response.data)).slice(0, 10) // 显示最新10篇文章
  } catch (error) {
    console.error('获取RSS失败:', error)
  }
})
</script>

查看完整源码

这里用 axios 解决了跨域问题,parseRSS 函数解析了RSS的XML数据,formatDate axios 可以通过以下命令安装

npm install axios
pnpm add axios
yearn add axios

我们使用vue的路由 (router) 实现页面的跳转将它以

 <el-breadcrumb-item :to="{ path: '/archives' }">归档</el-breadcrumb-item>

的形式添加到面包屑导航中。

问题

本来以为所有工作已经完成却不想遇到了一个离谱的东西,如此GIF图 离谱

后来询问ai也没有结果无奈询问群友原来还需要设置 vercel.json 果然在文件中加入

{
  "rewrites": [{ "source": "/(.*)", "destination": "/" }]
}

居然就可以正常访问了。好厉害(* ̄▽ ̄)d

最后在主题导航栏引入一个外部链接就大功告成了

留下自己的足迹吧