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

推荐订阅源

Hugging Face - Blog
Hugging Face - Blog
云风的 BLOG
云风的 BLOG
Google DeepMind News
Google DeepMind News
美团技术团队
J
Java Code Geeks
V
V2EX
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
The Cloudflare Blog
宝玉的分享
宝玉的分享
博客园 - Franky
Y
Y Combinator Blog
爱范儿
爱范儿
H
Help Net Security
腾讯CDC
G
Google Developers Blog
B
Blog RSS Feed
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
阮一峰的网络日志
阮一峰的网络日志
罗磊的独立博客
V
Visual Studio Blog
The GitHub Blog
The GitHub Blog
博客园_首页
C
Check Point Blog
博客园 - 三生石上(FineUI控件)

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

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

留下自己的足迹吧