[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[O] [PATCH] Prevent org-rss-headline dropping lower level headlines
From: |
Arun Isaac |
Subject: |
[O] [PATCH] Prevent org-rss-headline dropping lower level headlines |
Date: |
Tue, 19 Apr 2016 14:17:45 +0530 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
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.
signature.asc
Description: PGP signature
>From e000940d29b4bf5f63274e82f6a7341021000fd2 Mon Sep 17 00:00:00 2001
From: Arun Isaac <address@hidden>
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
- "<item>\n"
- "<title>%s</title>\n"
- "<link>%s</link>\n"
- "<author>%s</author>\n"
- "<guid isPermaLink=\"false\">%s</guid>\n"
- "<pubDate>%s</pubDate>\n"
- (org-rss-build-categories headline info) "\n"
- "<description><![CDATA[%s]]></description>\n"
- "</item>\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
+ "<item>\n"
+ "<title>%s</title>\n"
+ "<link>%s</link>\n"
+ "<author>%s</author>\n"
+ "<guid isPermaLink=\"false\">%s</guid>\n"
+ "<pubDate>%s</pubDate>\n"
+ (org-rss-build-categories headline info) "\n"
+ "<description><![CDATA[%s]]></description>\n"
+ "</item>\n")
+ title publink author guid pubdate contents))))))
(defun org-rss-build-categories (headline info)
"Build categories for the RSS item."
--
2.8.0
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [O] [PATCH] Prevent org-rss-headline dropping lower level headlines,
Arun Isaac <=