UNPKG

wukong-feed

Version:

A wukong plugin for generating feed.

53 lines (46 loc) 1.22 kB
'use strict'; var RSS = require('rss'); var join = require('path').join; /** * Expose `feed`. */ module.exports = feed; /** * Wukong plugin to hide drafts. * * @return {GeneratorFunction} */ function feed(opts) { if (!opts || typeof opts === 'string') opts = { type: 'atom' }; var type = opts.type; var limit = opts.limit || 20; var fpath = opts.path || ''; var feedUrl = opts.url; var path = opts.path || 'feed.xml'; return function *feed(next) { var files = this.files; var dest = this.wukong.destination(); var metadata = this.wukong.metadata(); var siteUrl = metadata.site_url = metadata.url || metadata.site_url || ''; metadata.feed_url = feedUrl || (siteUrl + '/' + path); var f = new RSS(metadata); var post, link; for (var k in files) { post = files[k]; link = join(siteUrl, post.path); f.item({ title: post.title, description: post.contents.toString(), url: link, link: post.link || link, author: post.author, pubDate: post.date }); } var file = this.wukong.createFile(); file.path = path; file.contents = f.xml(); yield file.write(); yield next; }; }