正如各位所见,本博客改成了 Ruhoh 静态博客。有个问题就是 RSS 输出的时候会连页面元素等不必要的元素都一起输出,格式很混乱看着也不是很美观。
因此,就想更改下其中的代码,于是找到了 Ruhoh 脚本的安装路径,例如在我的 Mac 上面是如下路径(下面称这个目录为 $RUHOH_HOME
)。
/usr/local/lib/ruby/gems/1.9.1/gems/ruhoh-1.1/lib/ruhoh
分析生成的 RSS 的脚本,文件在 $RUHOH_HOME/compilers/rss.rb
,其中有段语句是
xml.description_ (post['description'] ? post['description'] : page.render)
虽然不是很懂 Ruby,但是可以理解它是将页面渲染以后的代码都传了过去,那么再看看这个方法是怎么写的。找到了对应的文件在 $RUHOH_HOME/page.rb 下,里面的 render 方法:
def render
self.ensure_id
self.process_layouts
@templater.render(self.expand_layouts, self.payload)
end
其中 self.expand_layouts 的方法就是或许当前的 layout 然后配合 Markdown 渲染出我们需要的 HTML,那么我考虑就不要模板,直接输出。
所以新增了个方法,simple_render ,代码如下:
def simple_render
self.ensure_id
self.process_layouts
@templater.render("\{\{\{content\}\}\}", self.payload)
end
最后,修改 $RUHOH_HOME/compilers/rss.rb
文件对应的上述行:
xml.description_ (post['description'] ? post['description'] : page.simple_render)
这样就可以不用任何模板直接输出正文内容了,虽然看起来「不干净」但至少「It Works」。
顺便提供下修改以后的脚本文件,覆盖对应的文件即可,只针对 Ruhoh 1.1 版本,希望作者能够尽快修复这个问题吧。
--
2013-02-17 更新:
根据 Ruhoh2.0 alpha 版本的描述,已经修复了此问题 http://ruhoh.com/docs/2/
-- eof --