html个人博客_简单 4 步,为你的个人博客配置 RSS 订阅

d8a83acfeaf59b367bbe3931754b2363.png

最近对于千篇一律的科技新闻,感到了一丝的阅读疲倦。因此,想要寻找一些有有趣的灵魂或者独立思考的博文,打发平时无聊的摸鱼时光。但是,随着在互联网上探索有意思的博客,发现绝大部分都没有提供相关的订阅链接,这将很难追踪新博客的发布。这其中,相当一部分博客是通过静态方式发布博客的。

因此,本文的内容就是通过我的实践展示一下如何给静态博客增加 RSS 订阅。

什么是 RSS

首先我们来看一下维基百科上面对 RSS 的定义:

RSS(全称:RDF Site Summary;Really Simple Syndication),中文译作「简易信息聚合」,也称「聚合内容」,是一种 消息来源 格式规范,用以 聚合经常发布更新资料的网站,例如 博客 文章、新闻、音频 或 视频 的网摘。RSS 文件(或称做摘要、网络摘要、或频更新,提供到频道)包含全文或是节录的文字,再加上发布者所订阅之网摘资料和授权的元数据。简单来说,RSS 能够让用户订阅个人网站个人博客,当订阅的网站有新文章是能够获得通知。

仔细阅读第二个英文全称,它表达的是:RSS 是一个十分简单的聚合技术,最主要的目的就是给个人网站和博客提供信息聚合,并通知所有订阅的阅读者,使信息能够更高效的传播。这正是我们想要的目的。

RSS 的格式

RSS 的本质其实很简单,只是一份定制化的 XML 文件,我们先来看看该文件的基础定义。这份定义参考自 RSSBoard 网站对于 RSS 2.0 版本的定义所提供的最简单的版本。

<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
<channel>
  <title>blog_title</title>
  <atom:link href="blog_link" rel="self" type="application/rss+xml" />
  <link>blog_link</link>
  <description>xxx</description>
  <item>
    <title><![CDATA[article_title]]></title>
    <link>article_link</link>
    <guid isPermaLink="false">article_id</guid>
    <description><![CDATA[article_content]]></description>
    <pubDate>article_date</pubDate>
  </item>
</channel>
</rss>

可以看到,这份 XML 文件十分简单,仅包括对于需要阅读的内容的基础信息,并没有增加其他复杂的信息。其中比较特殊的可能是 guid 这个标签,它提供对于文章的唯一标识,但由于文章的超链接也是唯一的,因此可以把超链接作为 GUID 的标识。

如何生成 RSS

由于需要根据文章内容动态生成该 XML 文件,因此一般的静态博客没有动态处理的能力,所以提供不了这种功能。但是,现代化的静态服务平台都提供了 Continuous Integration(CI)的功能,我们可以利用该功能为我们的博客自动化提供该 XML 文件。

实现的思路总体来说就 4 步:获取最新的文章——根据内容拼接字符串——输出生成内容到 XML 文件——发布 RSS。

下面,我会以自身为例,在 Github 平台上通过 Travis CI 服务,自动化生成 RSS 文件所应该关注的点进行说明。

获取最新的文章

首先我们会遇到第一个问题,该 XML 文件中到底需要包含多少篇文章才算是最新的文章。在这里,我的建议是 10 篇。考虑到个人博客的属性,我们的更新频率不会特别高,10 篇文章足以达到人们通常阅读的频率。以 Git 协议管理的时间作为文章的发布时间,是一个不错的选项。

第二个问题是,RSS 如何知道我哪篇文章是新的?这里就需要严格控制文章的生成的 pubDate标签。在 RSS 2.0 的协议规范里面,规定了该时间的时间戳使用的是 RFC 822 的规范。否则,该订阅源在阅读器中会出现混乱的排序情况,尤其注意。Git 命令中提供了 format 选项 “%aD” 可以获取该规范下的时间戳。

根据内容拼接字符串

这里有两个标签需要特别注意一下的。

其一是link标签。由于部分人的文件是以中文命名的,这在 RSS 中并不能直接访问到正确的内容。正确的做法是自行将 URL 手动 encode 成标准的 Unicode 编码,可以仅对中文部分处理,也可以对整个 URL 进行编码。一般来说,仅对中文部分处理会使最终生成的 URL 相对好看一些。

另一是 description 标签。由于大部分人现在都是使用 Markdown 语言来写博客,而 Markdown 的纯文本并不适合直接阅读,而目前的 RSS 阅读器并不支持渲染 Markdown 语言。我们更希望将它进行解析到 HTML 语言,以便后续能够更好的渲染成优秀排版。这里,我们使用万能的瑞士军刀 Pandoc 软件即可解析。

但是,由于 HTML 语言和 XML 的语言都是属于标记型语言,混合在一起容易产生歧义解析。因此需要使用 <![CDATA[ html_content ]]> 逃逸字符来控制 HTML 内容不属于 XML 的一部分。

输出生成内容到 XML 文件

通过不同的编程语言控制文件输出到 XML 这不难。根据自己选择的编程语言生成即可。

这里,我建议大家对生成的 XML 进行校验,确保生成的 RSS 是正确并能够解析的。W3C 联盟提供了标准的 RSS 文件校验服务:https://validator.w3.org/feed/,可以在线输入和链接校验两种方式。

发布 RSS

对于静态博客,最直接的方法是将 XML 文件推送到静态服务平台,然后以 RAW 格式访问,即为一个合格的 RSS 订阅链接。

更进阶一步的方法,可以利用前端框架里面的静态路由方式,解析通用的 /feed 路由到生成的 RSS 文件中,配合标准的图标,能够让人清晰直观的发现该博客提供了 RSS 订阅链接。

后记

上述的说明只描述了我认为在这个方案中需要注意的事项,隐去了每一步的操作细节。想要抄作业的各位同学,可以移步到 https://github.com/Wsine/blog/blob/master/build.sh 查看具体的实现方法,直接复制到自己的仓库中就可以使用。

具体的展示可以查看我的博客看看具体效果:https://wsine.github.io/blog ,也欢迎订阅。

在这里,我也呼吁大家为自己的博客增加 RSS 订阅链接,如想分享可以在评论区留下你的订阅链接。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,你的问题是关于Django个人博客的需求分析。 首先,一个Django个人博客需要以下的功能: 1. 用户注册和登录功能:用户可以注册自己的账号并登录,以便于发布博客、管理自己的博客和评论等操作。 2. 博客管理功能:用户可以创建、编辑、删除自己的博客,以及发布、查看博客等操作。 3. 分类和标签功能:用户可以为自己的博客添加分类和标签,以便于用户更好地浏览和搜索博客。 4. 评论功能:用户可以对他人的博客进行评论,也可以对自己的博客进行回复。 5. 搜索功能:用户可以在博客中搜索关键词,以便于快速找到自己需要的内容。 6. 友情链接功能:用户可以添加自己的友情链接,以便于让其他用户访问自己的友情链接。 7. RSS订阅功能:用户可以订阅自己的博客,以便于及时了解自己的博客更新情况。 8. 站内信功能:用户之间可以发送站内信,以便于进行互动和交流。 除此之外,一个完整的Django个人博客还需要具备以下的技术要求: 1. 响应式设计:可以在不同的设备上进行浏览,包括桌面电脑、平板电脑和手机等。 2. 安全性:博客需要具备一定的安全性,包括防止SQL注入、XSS攻击和CSRF攻击等。 3. 性能优化:博客需要具备一定的性能优化,包括缓存、压缩和CDN等。 4. SEO优化:博客需要具备一定的SEO优化,包括友好的URL、网站地图和元标签等。 综上所述,一个完整的Django个人博客需要具备上述的功能和技术要求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值