Sha256: 045788e6677e2df0cd52d96aca656f3ae1f3c88b93f96dffdb6f6877dbbd57e2
Contents?: true
Size: 1.29 KB
Versions: 9
Compression:
Stored size: 1.29 KB
Contents
# Created by Kendall Buchanan (https://github.com/kendagriff) on 2011-12-22. # Use at your own risk. The end. # # Usage: # (URL) # ruby -r '_import/rss.rb' -e "Jekyll::MigrateRSS.process('http://yourdomain.com/your-favorite-feed.xml')" # # (Local file) # ruby -r '_import/rss.rb' -e "Jekyll::MigrateRSS.process('./somefile/on/your/computer.xml')" require 'rubygems' require 'rss/1.0' require 'rss/2.0' require 'open-uri' require 'fileutils' require 'yaml' module Jekyll module MigrateRSS # The `source` argument may be a URL or a local file. def self.process(source) content = "" open(source) { |s| content = s.read } rss = RSS::Parser.parse(content, false) raise "There doesn't appear to be any RSS items at the source (#{source}) provided." unless rss rss.items.each do |item| formatted_date = item.date.strftime('%Y-%m-%d') post_name = item.title.split(%r{ |!|/|:|&|-|$|,}).map { |i| i.downcase if i != '' }.compact.join('-') name = "#{formatted_date}-#{post_name}" header = { 'layout' => 'post', 'title' => item.title } File.open("_posts/#{name}.html", "w") do |f| f.puts header.to_yaml f.puts "---\n" f.puts item.description end end end end end
Version data entries
9 entries across 9 versions & 3 rubygems