#+TITLE: Org Publish RSS
Quickly add RSS feeds to org-publish projects.
This works similar to the :auto-sitemap publishing option.
* Setup
To use org-publish-rss.el you must add the configuration options
to your org-publish-project-alist settings. The minimum required
options are:
- :auto-rss :: (t/nil) Enables RSS feed generation.
- :rss-title :: Channel title of the RSS feed. If blank will fall
back to :sitemap-title.
- :rss-description :: Channel description of the RSS feed.
- :rss-link :: The URL to the website corresponding to the RSS
channel. Will use :html-link-home if blank.
For complete list of options see the Commentary section of
[[file:org-publish-rss.el]].
** Running
M-x org-publish-rss [RET] PROJECT
You may get a cache error, retry this after recently publishing the
corresponding project.
Verify that the generated urls for the articles' `<link>' tags are correct. If
not, adjust the `:rss-root-url' property.
** Run Automatically when Publishing
You can run this automatically by adding org-publish-rss as a
:completion-function which will run after any publishing action for
that project. This is the final publishing step so uploading the RSS
file will need to be handled by a separate project, see example project.
** Example Project
#+begin_src emacs-lisp
(setq org-publish-project-alist
'(("blog"
:base-directory "~/Documents/org/website/"
:base-extension "org"
:publishing-directory "~/public_html/"
:publishing-function org-html-publish-to-html
:html-link-home "https://example.com"
:auto-rss t
:rss-title "Example Posts"
:rss-description "My example website."
:completion-function org-publish-rss
("static"
:base-directory "~/Documents/org/website/"
:base-extension "css\\|jpg\\|png\||gif"
:include ("rss.xml")
:publishing-directory "~/public_html/"
:publishing-function org-publish-attachment)
("example.com" :components ("blog" "static"))))
#+end_src
*Note*: When publishing a file you can ensure all related projects are
also published by using: ~org-publish-current-project~ (C-c C-e P p).
* Why not use ox-rss.el?
Using an Org exporter adds an additional export steps and
configuration that is unnecessary for a basic project.
Org project --> Generate Org sitemap --> Export sitemap to RSS
Org project --> RSS feed
Ox-rss.el is still a great solution if you want to convert one
monolithic Org file into an RSS feed. If you are interested in using
ox-rss with org-publish see the [[https://writepermission.com/org-blogging-rss-feed.html][clever solution provided by Toon
Claes]].
* Outstanding Development Goals
** TODO Optionally generate GUID tags
** TODO Add global customization variables
** TODO Add ability to export with full HTML post content
* License GPLv3
See LICENSE file.
#+begin_quote
This file is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
For a full copy of the GNU General Public License
see <http://www.gnu.org/licenses/>.
#+end_quote