Publishing absolute URLs in RSS feeds

| emacs

../../notebook/emacs/emacs-wiki-config.el
../../notebook/emacs/planner-config.el

(defvar sacha/emacs-wiki-use-absolute-url-flag nil
  "Non-nil means publish absolute URLs.")

(defadvice planner-rss-add-note (around sacha/absolute-urls activate)
  "Publish absolute URLs."
  (let ((sacha/emacs-wiki-use-absolute-url-flag t))
    ad-do-it))

(require 'w3m)
(defadvice emacs-wiki-markup-link (around sacha activate)
  "Resolve the matched wiki-link into its ultimate  form.
Images used the  tag."
  ;; avoid marking up urls that appear to be inside existing HTML
  (when (and (not (eq (char-after (point)) ?\"))
             (not (eq (char-after (point)) ?\>)))
    (let* (string
           (wiki-link (match-string 0))
           (url (emacs-wiki-link-url wiki-link))
           (name (emacs-wiki-escape-html-string
                  (emacs-wiki-wiki-visible-name wiki-link))))
      (when url
        (unless (emacs-wiki-wiki-url-p url)
          (setq url
                (file-relative-name
                 url
                 (if (string-match "public_html" url)
                     "../../public_html/notebook/plans"
                   "../../notebook/plans")))
          (when sacha/emacs-wiki-use-absolute-url-flag
            (setq url
                  (w3m-expand-url
                   url
                   "http://sacha.free.net.ph/notebook/wiki")))))
      (setq string
            (if (null url)
                (if (and emacs-wiki-serving-p
                         (emacs-wiki-editable-p
                          (emacs-wiki-wiki-base wiki-link)))
                    (format
                     "%s"
                     (emacs-wiki-wiki-base wiki-link) name)
                  (format "%s"
                          emacs-wiki-maintainer name))
              (if (save-match-data
                    (string-match emacs-wiki-image-regexp url))
                  (if (string-equal url name)
                      (format "" url)
                    (format "\"%s\"" url name))
                (if (save-match-data
                      (string-match emacs-wiki-image-regexp name))
                    (format "" url name)
                  (format "%s" url name)))))
      (add-text-properties 0 (1- (length string))
                           '(rear-nonsticky (read-only) read-only
                                            t) string)
      (setq ad-return-value string))))
You can comment with Disqus or you can e-mail me at sacha@sachachua.com.