介绍
你好,
我希望您在个人,社区或公司博客中撰写有关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中写的那些帖子。
您可以根据需要以不同的方式过滤和处理RSS。
结论
希望您喜欢这篇文章并发现有用。给拇指并订阅更多有趣的东西。