UNPKG

855 BJavaScriptView Raw
1var ejs = require('ejs');
2var pathFn = require('path');
3var fs = require('fs');
4
5ejs.filters.cdata = function(str){
6 return str ? '<![CDATA[' + str + ']]>' : '';
7};
8
9var atomTmplSrc = pathFn.join(__dirname, '../atom.ejs');
10var atomTmpl = ejs.compile(fs.readFileSync(atomTmplSrc, 'utf8'));
11var rss2TmplSrc = pathFn.join(__dirname, '../rss2.ejs');
12var rss2Tmpl = ejs.compile(fs.readFileSync(rss2TmplSrc, 'utf8'));
13
14module.exports = function(locals){
15 var config = this.config;
16 var feedConfig = config.feed;
17 var template = feedConfig.type === 'rss2' ? rss2Tmpl : atomTmpl;
18
19 var posts = locals.posts.sort('-date');
20 if (feedConfig.limit) posts = posts.limit(feedConfig.limit);
21
22
23 var xml = template({
24 config: config,
25 posts: posts,
26 feed_url: config.root + feedConfig.path
27 });
28
29 return {
30 path: feedConfig.path,
31 data: xml
32 };
33};
\No newline at end of file