开发一个 Rss 阅读器 04 - 文章详情

(停更了很久了,继续继续)

上一次制作了简单的文章列表,这一次需要加入详情页面,能够全文抓取的文章,一般我不太会打开原文,所以有一个看正文的页面还是很有必要的。

正文需要:

  • 显示文章的标题,正文,发布时间等信息

  • 打开则自动标记为已读

替换列表链接

要让列表中的文章标题点击后打开正文页面,需要更新其链接页面。

修改 app/views/items/index.html.erb

将原文链接替换为详情页面链接,因为 rails 会自动识别链接,所以 link_to 的链接参数直接使用 item 对象即可,它会指向 /items/<item.id> 的链接。

<%= link_to item.title, item.link, target: '_blank' %>
替换为
<%= link_to item.title, item, target: '_blank' %>

此时的文章详情页面还比较乱。

简化页面

简单的编辑一下查看页面,替换文件 app/views/items/_item.html.erb 内容为

<div id="<%= dom_id item %>">
  <h1><%= link_to item.title, item.link %></h1>
  <time datetime="<%= item.published_at %>"><%= item.published_at.to_s(:short) %></time>

  <div class="item-content">
    <%== item.content.blank? ? item.description : item.content %>
  </div>
</div>
  • 标题直接链接到原文

  • 正文优先读取全文 content, 如果找不到,再尝试读取摘要 description

修改后大致是下面的效果。

最后再清理一下底部的 Edit this item 和 Destroy this item 的操作链接和按钮,编辑 app/views/items/show.html.erb 删除相关代码即可。

虽然整体上还是没什么可读性,但是以后再优化吧。

下一步

标记已读和在列表中显示已读和未读状态就下次再做吧。