emacs-china / EGO

EGO is a static site generator that depends on Emacs, Git and Org-mode.
94 stars 11 forks source link

怎么在 RSS 中插入文章正文? #99

Closed Liu233w closed 7 years ago

Liu233w commented 7 years ago

现在生成的RSS都只有一个标题,应该怎么把正文也放进rss里呢?

kuangdash commented 7 years ago

这个设计是故意的哈……你可以在 #+description: 里面写点东西(譬如说摘要)

假如信息在 rss 里面都可以收到了,你的网站就不必被打开了,你设计的页面也就浪费了- -

Liu233w commented 7 years ago

其实我的页面也没啥好看的(:зゝ∠)

我觉得把整篇文章都放进rss阅读器里面也不错,毕竟内容更重要一些,而且有一个统一的信息收取中心更方便一些。这个也能加一个选项吗?

kuangdash commented 7 years ago

你可以在 ego-template.el 文件里找到以下代码:

("content" (cl-flet ((org-html-fontify-code
                                 (code lang)
                                 (when code (org-html-encode-plain-text code))))
                        (let ((org-export-function (ego--get-config-option :org-export-function)))
                          (when (functionp org-export-function)
                            (funcall org-export-function)))))

这就是获取了 org 文件转 html 后的内容,并以 “content” 作为 mustache 模板的填充名。

如果要在 ego-project-config-alist 里添加 “是否在 rss 添加文章内容” 的选项,就需要修改 ego--rss-template 变量并把一个 if 语句塞入 ego--update-rss 函数的 mustache-render 处(用 ego--get-cache-create 获取 :post-template 键对应值的 ht 结构里的 “content” 缓存)……这种打补丁的方式让整个 EGO 越发杂乱,所以遇到这种问题我的解决办法一般是……把锅推给 EGO 2.0~

EGO 2.0 有一个完整的结构设计,这会让添加各种选项变得更简单。

总之,把 description 写好即可。把完整内容放入 rss 这种方式一是拖慢渲染速度,二是增加了带宽负担(不感兴趣的内容被推送了的情况)

Liu233w commented 7 years ago

谢谢(´・ω・`)