From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arun Isaac Subject: [PATCH] Prevent org-rss-headline dropping lower level headlines Date: Tue, 19 Apr 2016 14:17:45 +0530 Message-ID: <87h9eyc7da.fsf@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:40400) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1asRKS-0007ET-Nx for emacs-orgmode@gnu.org; Tue, 19 Apr 2016 04:48:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1asRKP-0003os-A2 for emacs-orgmode@gnu.org; Tue, 19 Apr 2016 04:48:16 -0400 Received: from mail-pf0-x241.google.com ([2607:f8b0:400e:c00::241]:32938) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1asRKO-0003oe-Pu for emacs-orgmode@gnu.org; Tue, 19 Apr 2016 04:48:13 -0400 Received: by mail-pf0-x241.google.com with SMTP id e190so1167567pfe.0 for ; Tue, 19 Apr 2016 01:48:12 -0700 (PDT) Received: from steel ([223.227.60.163]) by smtp.gmail.com with ESMTPSA id dh4sm19324971pad.37.2016.04.19.01.48.05 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Apr 2016 01:48:09 -0700 (PDT) List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: Emacs orgmode --=-=-= Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" --==-=-= Content-Type: text/plain Hi, Currently, the RSS exporter (org-rss-headline) drops lower level headlines (headlines with level > 1), and therefore they do not appear in the exported RSS. This is a bug. For example, if the following file were exported to RSS, "Headline level 2" would not appear in the output. ===== file begins here ===== * Headline level 1 foo ** Headline level 2 bar ===== file end here ===== Please find attached a patch fixing this. Regards, Arun Isaac. --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJXFfCxAAoJEC4l7othgCuzDU0IALGkgzW8Hym8PdMoftzlMZMw H3V9e5YfekSbo0ZM0EcMw9lqeXLARgTReQnsDYDJ+PDjwF7AAyfXK58lSnRkOOTN BYo7RI3Pw6VU73uAEeHDbgspeF+PMzzWNNDxzPwhajNUX3vNvYncxVPl1VlT0iCz NhermMGYrrbSKzMWDjIjYVRkUu+Q2G9HpoirbStfId9WjX7BJwFaDj+MMJ3Leq3L HW0ovsHqLyoQG7uMi42xZm+HqMM4rdh9orGS+4gsri3szl+auysRfzvMaIwHDjo6 88Zl1f9Xsy0vWmeTngLe03cvcjLCBRYqFyQpbDpJ4vUeGFMs5kscmzjD0wUeZo0= =csla -----END PGP SIGNATURE----- --==-=-=-- --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=ox-rss-Prevent-dropping-lower-level-headlines.patch >From e000940d29b4bf5f63274e82f6a7341021000fd2 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Tue, 19 Apr 2016 13:53:50 +0530 Subject: [PATCH] ox-rss: Prevent dropping lower level headlines * contrib/lisp/ox-rss.el (org-rss-headline): Transcode lower level headlines (headlines with level > 1) with org-html-headline. Do not drop them. Previously, lower level headlines were dropped and did not appear in the exported RSS output. --- contrib/lisp/ox-rss.el | 106 ++++++++++++++++++++++++------------------------- 1 file changed, 53 insertions(+), 53 deletions(-) diff --git a/contrib/lisp/ox-rss.el b/contrib/lisp/ox-rss.el index 39fce30..eba461d 100644 --- a/contrib/lisp/ox-rss.el +++ b/contrib/lisp/ox-rss.el @@ -228,59 +228,59 @@ Return output file name." "Transcode HEADLINE element into RSS format. CONTENTS is the headline contents. INFO is a plist used as a communication channel." - (unless (or (org-element-property :footnote-section-p headline) - ;; Only consider first-level headlines - (> (org-export-get-relative-level headline info) 1)) - (let* ((author (and (plist-get info :with-author) - (let ((auth (plist-get info :author))) - (and auth (org-export-data auth info))))) - (htmlext (plist-get info :html-extension)) - (hl-number (org-export-get-headline-number headline info)) - (hl-home (file-name-as-directory (plist-get info :html-link-home))) - (hl-pdir (plist-get info :publishing-directory)) - (hl-perm (org-element-property :RSS_PERMALINK headline)) - (anchor (org-export-get-reference headline info)) - (category (org-rss-plain-text - (or (org-element-property :CATEGORY headline) "") info)) - (pubdate0 (org-element-property :PUBDATE headline)) - (pubdate (let ((system-time-locale "C")) - (if pubdate0 - (format-time-string - "%a, %d %b %Y %H:%M:%S %z" - (org-time-string-to-time pubdate0))))) - (title (or (org-element-property :RSS_TITLE headline) - (replace-regexp-in-string - org-bracket-link-regexp - (lambda (m) (or (match-string 3 m) - (match-string 1 m))) - (org-element-property :raw-value headline)))) - (publink - (or (and hl-perm (concat (or hl-home hl-pdir) hl-perm)) - (concat - (or hl-home hl-pdir) - (file-name-nondirectory - (file-name-sans-extension - (plist-get info :input-file))) "." htmlext "#" anchor))) - (guid (if org-rss-use-entry-url-as-guid - publink - (org-rss-plain-text - (or (org-element-property :ID headline) - (org-element-property :CUSTOM_ID headline) - publink) - info)))) - (if (not pubdate0) "" ;; Skip entries with no PUBDATE prop - (format - (concat - "\n" - "%s\n" - "%s\n" - "%s\n" - "%s\n" - "%s\n" - (org-rss-build-categories headline info) "\n" - "\n" - "\n") - title publink author guid pubdate contents))))) + (if (> (org-export-get-relative-level headline info) 1) + (org-html-headline headline contents info) + (unless (org-element-property :footnote-section-p headline) + (let* ((author (and (plist-get info :with-author) + (let ((auth (plist-get info :author))) + (and auth (org-export-data auth info))))) + (htmlext (plist-get info :html-extension)) + (hl-number (org-export-get-headline-number headline info)) + (hl-home (file-name-as-directory (plist-get info :html-link-home))) + (hl-pdir (plist-get info :publishing-directory)) + (hl-perm (org-element-property :RSS_PERMALINK headline)) + (anchor (org-export-get-reference headline info)) + (category (org-rss-plain-text + (or (org-element-property :CATEGORY headline) "") info)) + (pubdate0 (org-element-property :PUBDATE headline)) + (pubdate (let ((system-time-locale "C")) + (if pubdate0 + (format-time-string + "%a, %d %b %Y %H:%M:%S %z" + (org-time-string-to-time pubdate0))))) + (title (or (org-element-property :RSS_TITLE headline) + (replace-regexp-in-string + org-bracket-link-regexp + (lambda (m) (or (match-string 3 m) + (match-string 1 m))) + (org-element-property :raw-value headline)))) + (publink + (or (and hl-perm (concat (or hl-home hl-pdir) hl-perm)) + (concat + (or hl-home hl-pdir) + (file-name-nondirectory + (file-name-sans-extension + (plist-get info :input-file))) "." htmlext "#" anchor))) + (guid (if org-rss-use-entry-url-as-guid + publink + (org-rss-plain-text + (or (org-element-property :ID headline) + (org-element-property :CUSTOM_ID headline) + publink) + info)))) + (if (not pubdate0) "" ;; Skip entries with no PUBDATE prop + (format + (concat + "\n" + "%s\n" + "%s\n" + "%s\n" + "%s\n" + "%s\n" + (org-rss-build-categories headline info) "\n" + "\n" + "\n") + title publink author guid pubdate contents)))))) (defun org-rss-build-categories (headline info) "Build categories for the RSS item." -- 2.8.0 --=-=-=--