在带有RSS的个人网站上显示Hashnode帖子
#node #rss #hashnode #blogging

介绍

你好,

我希望您在个人,社区或公司博客中撰写有关Hashnode的文章。您可能需要在您的个人网站或投资组合中链接并显示您的书面文章,而其他人只能看到您的文章中的其他内容。在这里,我们将看到两种可以轻松完成上述任务的方法。

解决方案

Hashnode官方API

hashnode提供官方的GraphQl API,您可以从中检索各种内容和显示。您可以使用此API测试他们的playground here.,您可以获得各种类型的内容,例如特色帖子,用户帖子和出版物,操纵文章和相关数据。您可能需要一些访问权限的PAT(个人访问令牌)。

有关更多信息,请参考catalin坑的this article

RSS解析

另一种方法是RSS解析。在此中,需要出版物的RSS URL来检索和处理数据。在这里,我将服用my blogs rss并进行处理并显示由我写的文章(又名Piyush Goyani)。

首先,我创建了后端nodejs api,我在其中安装了koude0软件包以解析博客的RSS feed。

import Parser = require('rss-parser');

async getRss() {
  const parser: Parser = new Parser();
  const url = 'https://blog.thesourcepedia.org/rss.xml';
  const feed = await parser.parseURL(url);
  return feed.items.map((item) => {
    return {
      title: item['title'],
      coverImage: item['cover_image'],
      creator: item['creator'],
      link: item['link'],
      pubDate: item['pubDate'],
    };
  });
}

在这里,您可以看到,RSS feed URL是解析的,解析器返回整个数组,它将用特定的键/值对象映射并返回为API响应。

在前端侧,这是通过调用API呈现所有文章的VUE组件。

<template>
  <div>
    {{ items }} // render posts
  </div>
</template>
export default {
  data() {
    return {
      items: [],
    };
  },
  mounted() {
    fetch("https://api.thesourcepedia.org/blog/getRss")
      .then((res) => res.json())
      .then((data) => {
        this.items = data.filter((post) => post.creator === "Piyush Goyani");
      });
  },
};

在这里,我正在调用/getRss api返回文章数组,在这里我可以过滤哪个特定作者(例如我自己),并仅显示我在my personal site中写的那些帖子。

PersonalSitePosts.png

您可以根据需要以不同的方式过滤和处理RSS。

结论

希望您喜欢这篇文章并发现有用。给拇指并订阅更多有趣的东西。