From fc3fa709b4b9af0b1a486bb46621a85f9029fe6c Mon Sep 17 00:00:00 2001 From: Edwin Fuquen Date: Fri, 7 Nov 2014 21:33:43 -0500 Subject: [PATCH 1/3] added content:encoded to rss item --- lib/rss.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/rss.js b/lib/rss.js index 11ca491..2441675 100755 --- a/lib/rss.js +++ b/lib/rss.js @@ -47,6 +47,7 @@ function generateXML (data){ ifTruePush(item.description, item_values, { description: { _cdata: item.description } }); ifTruePush(item.url, item_values, { link: item.url }); ifTruePush(item.link || item.guid || item.title, item_values, { guid: [ { _attr: { isPermaLink: !item.guid && !!item.url } }, item.guid || item.url || item.title ] }); + ifTruePush(item.content, item_values, { 'content:encoded': { _cdata: item.content } }); item.categories.forEach(function(category) { ifTruePush(category, item_values, { category: { _cdata: category } }); @@ -139,6 +140,7 @@ function RSS (options, items) { description: options.description || '', url: options.url, guid: options.guid, + content: options.content, categories: options.categories || [], author: options.author, date: options.date, From fb2c1abcc1103848e0a062a7c7ce53ab97de5a95 Mon Sep 17 00:00:00 2001 From: Edwin Fuquen Date: Thu, 20 Nov 2014 13:55:17 -0500 Subject: [PATCH 2/3] updated readme with new property --- readme.md | 1 + 1 file changed, 1 insertion(+) diff --git a/readme.md b/readme.md index 95d5e27..e16b75c 100644 --- a/readme.md +++ b/readme.md @@ -55,6 +55,7 @@ feed.item(itemOptions); * `guid` **unique string** A unique string feed readers use to know if an item is new or has already been seen. If you use a guid never change it. If you don't provide a guid then your item urls must be unique. + * `content` **string** Long form content for the item. Sets the content:encoded tag of the rss xml. * `categories` _optional_ **array of strings** If provided, each array item will be added as a category element * `author` _optional_ **string** If included it is the name of the item's creator. If not provided the item author will be the same as the feed author. This is typical From da9a1458b29947d19731bc37300239864825844e Mon Sep 17 00:00:00 2001 From: Edwin Fuquen Date: Tue, 25 Nov 2014 11:51:58 -0500 Subject: [PATCH 3/3] added content to feed items in tests --- test/rss.test.js | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/test/rss.test.js b/test/rss.test.js index d035797..8a427f9 100644 --- a/test/rss.test.js +++ b/test/rss.test.js @@ -39,18 +39,21 @@ describe('rss module', function(done) { feed.item({ title: 'item 1', description: 'description 1', + content: 'content 1', url: 'http://example.com/article1', date: 'May 24, 2012 04:00:00 GMT' }) .item({ title: 'item 2', description: 'description 2', + content: 'content 2', url: 'http://example.com/article2', date: 'May 25, 2012 04:00:00 GMT' }) .item({ title: 'item 3', description: 'description 3', + content: 'content 3', url: 'http://example.com/article3', guid: 'item3', date: 'May 26, 2012 04:00:00 GMT' @@ -58,6 +61,8 @@ describe('rss module', function(done) { .item({ title: 'item 4 & html test with ', description: 'description 4 uses some html', + content: 'content 4', + url: 'http://example.com/article3', url: 'http://example.com/article4?this&that', author: 'Guest Author', date: 'May 27, 2012 04:00:00 GMT' @@ -65,6 +70,7 @@ describe('rss module', function(done) { .item({ title: 'item 5 & test for categories', description: 'description 5', + content: 'content 5', url: 'http://example.com/article5', categories: ['Category 1','Category 2','Category 3','Category 4'], author: 'Guest Author', @@ -87,7 +93,7 @@ describe('rss module', function(done) { it('should work with an easy test', function(done) { var feed = simpleFeed(); - var expectedResult = '\n<![CDATA[title]]>http://example.comhttp://example.com/icon.pngtitlehttp://example.comExample Generator' + new Date().toUTCString() +'Sun, 20 May 2012 04:00:00 GMThttp://example.com/rss/docs.html60<![CDATA[item 1]]>http://example.com/article1http://example.com/article1Thu, 24 May 2012 04:00:00 GMT<![CDATA[item 2]]>http://example.com/article2http://example.com/article2Fri, 25 May 2012 04:00:00 GMT<![CDATA[item 3]]>http://example.com/article3item3Sat, 26 May 2012 04:00:00 GMT<![CDATA[item 4 & html test with <strong>]]>html]]>http://example.com/article4?this&thathttp://example.com/article4?this&thatSun, 27 May 2012 04:00:00 GMT<![CDATA[item 5 & test for categories]]>http://example.com/article5http://example.com/article5Mon, 28 May 2012 04:00:00 GMT'; + var expectedResult = '\n<![CDATA[title]]>http://example.comhttp://example.com/icon.pngtitlehttp://example.comExample Generator' + new Date().toUTCString() +'Sun, 20 May 2012 04:00:00 GMThttp://example.com/rss/docs.html60<![CDATA[item 1]]>http://example.com/article1http://example.com/article1Thu, 24 May 2012 04:00:00 GMT<![CDATA[item 2]]>http://example.com/article2http://example.com/article2Fri, 25 May 2012 04:00:00 GMT<![CDATA[item 3]]>http://example.com/article3item3Sat, 26 May 2012 04:00:00 GMT<![CDATA[item 4 & html test with <strong>]]>html]]>http://example.com/article4?this&thathttp://example.com/article4?this&thatSun, 27 May 2012 04:00:00 GMT<![CDATA[item 5 & test for categories]]>http://example.com/article5http://example.com/article5Mon, 28 May 2012 04:00:00 GMT'; var result = feed.xml(); expect(result).to.equal(expectedResult); @@ -114,18 +120,21 @@ describe('rss module', function(done) { feed.item({ title: 'item 1', description: 'description 1', + content: 'content 1', url: 'http://example.com/article1', date: 'May 24, 2012 04:00:00 GMT' }) .item({ title: 'item 2', description: 'description 2', + content: 'content 2', url: 'http://example.com/article2', date: 'May 25, 2012 04:00:00 GMT' }) .item({ title: 'item 3', description: 'description 3', + content: 'content 3', url: 'http://example.com/article3', guid: 'item3', date: 'May 26, 2012 04:00:00 GMT' @@ -133,6 +142,7 @@ describe('rss module', function(done) { .item({ title: 'item 4 & html test with ', description: 'description 4 uses some html', + content: 'content 4', url: 'http://example.com/article4?this&that', author: 'Guest Author', date: 'May 27, 2012 04:00:00 GMT' @@ -140,13 +150,14 @@ describe('rss module', function(done) { .item({ title: 'item 5 & test for categories', description: 'description 5', + content: 'content 5', url: 'http://example.com/article5', categories: ['Category 1','Category 2','Category 3','Category 4'], author: 'Guest Author', date: 'May 28, 2012 04:00:00 GMT' }); - var expectedResult = '\n<![CDATA[title]]>http://example.comRSS for Node' + new Date().toUTCString() +'Sun, 20 May 2012 04:00:00 GMThttp://example.com/rss/docs.html60<![CDATA[item 1]]>http://example.com/article1http://example.com/article1Thu, 24 May 2012 04:00:00 GMT<![CDATA[item 2]]>http://example.com/article2http://example.com/article2Fri, 25 May 2012 04:00:00 GMT<![CDATA[item 3]]>http://example.com/article3item3Sat, 26 May 2012 04:00:00 GMT<![CDATA[item 4 & html test with <strong>]]>html]]>http://example.com/article4?this&thathttp://example.com/article4?this&thatSun, 27 May 2012 04:00:00 GMT<![CDATA[item 5 & test for categories]]>http://example.com/article5http://example.com/article5Mon, 28 May 2012 04:00:00 GMT'; + var expectedResult = '\n<![CDATA[title]]>http://example.comRSS for Node' + new Date().toUTCString() +'Sun, 20 May 2012 04:00:00 GMThttp://example.com/rss/docs.html60<![CDATA[item 1]]>http://example.com/article1http://example.com/article1Thu, 24 May 2012 04:00:00 GMT<![CDATA[item 2]]>http://example.com/article2http://example.com/article2Fri, 25 May 2012 04:00:00 GMT<![CDATA[item 3]]>http://example.com/article3item3Sat, 26 May 2012 04:00:00 GMT<![CDATA[item 4 & html test with <strong>]]>html]]>http://example.com/article4?this&thathttp://example.com/article4?this&thatSun, 27 May 2012 04:00:00 GMT<![CDATA[item 5 & test for categories]]>http://example.com/article5http://example.com/article5Mon, 28 May 2012 04:00:00 GMT'; var result = feed.xml(); expect(result).to.equal(expectedResult); @@ -165,6 +176,7 @@ describe('rss module', function(done) { feed.item({ title: 'item 1', description: 'description 1', + content: 'content 1', url: 'http://example.com/article1', date: 'May 24, 2012 04:00:00 GMT', enclosure : 'incorrect value' @@ -173,6 +185,7 @@ describe('rss module', function(done) { feed.item({ title: 'item 2', description: 'description 2', + content: 'content 2', url: 'http://example.com/article1', date: 'May 24, 2012 04:00:00 GMT', enclosure : {url: '/media/some-file.flv'} @@ -181,6 +194,7 @@ describe('rss module', function(done) { feed.item({ title: 'item 3', description: 'description 3', + content: 'content 3', url: 'http://example.com/article1', date: 'May 24, 2012 04:00:00 GMT', enclosure : {url: '/media/image.png', file : __dirname+'/image.png'} @@ -188,9 +202,9 @@ describe('rss module', function(done) { var expectedResult = '\n<![CDATA[title]]>http://example.comRSS for Node' + new Date().toUTCString() +''+ '' + - '<![CDATA[item 1]]>http://example.com/article1http://example.com/article1Thu, 24 May 2012 04:00:00 GMT'+ - '<![CDATA[item 2]]>http://example.com/article1http://example.com/article1Thu, 24 May 2012 04:00:00 GMT'+ - '<![CDATA[item 3]]>http://example.com/article1http://example.com/article1Thu, 24 May 2012 04:00:00 GMT'+ + '<![CDATA[item 1]]>http://example.com/article1http://example.com/article1Thu, 24 May 2012 04:00:00 GMT'+ + '<![CDATA[item 2]]>http://example.com/article1http://example.com/article1Thu, 24 May 2012 04:00:00 GMT'+ + '<![CDATA[item 3]]>http://example.com/article1http://example.com/article1Thu, 24 May 2012 04:00:00 GMT'+ ''; var result = feed.xml(); @@ -211,6 +225,7 @@ describe('rss module', function(done) { feed.item({ title: 'item 1', description: 'description 1', + content: 'content 1', url: 'http://example.com/article1', date: 'May 24, 2012 04:00:00 GMT', lat: 12232, @@ -220,14 +235,15 @@ describe('rss module', function(done) { feed.item({ title: 'item 2', description: 'description 2', + content: 'content 2', url: 'http://example.com/article1', date: 'May 24, 2012 04:00:00 GMT' }); var expectedResult = '\n<![CDATA[title]]>http://example.comRSS for Node' + new Date().toUTCString() +''+ '' + - '<![CDATA[item 1]]>http://example.com/article1http://example.com/article1Thu, 24 May 2012 04:00:00 GMT1223213333.23323'+ - '<![CDATA[item 2]]>http://example.com/article1http://example.com/article1Thu, 24 May 2012 04:00:00 GMT'+ + '<![CDATA[item 1]]>http://example.com/article1http://example.com/article1Thu, 24 May 2012 04:00:00 GMT1223213333.23323'+ + '<![CDATA[item 2]]>http://example.com/article1http://example.com/article1Thu, 24 May 2012 04:00:00 GMT'+ ''; var result = feed.xml();