Sha256: fb2a4795de9396c69afaf3ec252dc233df51c4190f8134b2b9b4af649732b18a

Contents?: true

Size: 1.44 KB

Versions: 12

Compression:

Stored size: 1.44 KB

Contents

# Adapted by Rodrigo Pinto <rodrigopqn@gmail.com>
# Based on typo.rb by Toby DiPasquale

require 'fileutils'
require 'rubygems'
require 'sequel'

module Jekyll
  module Enki
    SQL = <<-EOS
      SELECT p.id,
             p.title,
             p.slug,
             p.body,
             p.published_at as date,
             p.cached_tag_list as tags
      FROM posts p
    EOS

    # Just working with postgres, but can be easily adapted
    # to work with both mysql and postgres.
    def self.process(dbname, user, pass, host = 'localhost')
      FileUtils.mkdir_p('_posts')
      db = Sequel.postgres(:database => dbname,
                           :user => user,
                           :password => pass,
                           :host => host,
                           :encoding => 'utf8')

      db[SQL].each do |post|
        name = [ sprintf("%.04d", post[:date].year),
                 sprintf("%.02d", post[:date].month),
                 sprintf("%.02d", post[:date].day),
                 post[:slug].strip ].join('-')
        name += '.textile'

        File.open("_posts/#{name}", 'w') do |f|
          f.puts({ 'layout'   => 'post',
                   'title'    => post[:title].to_s,
                   'enki_id'  => post[:id],
                   'categories'  => post[:tags]
                 }.delete_if { |k, v| v.nil? || v == '' }.to_yaml)
          f.puts '---'
          f.puts post[:body].delete("\r")
        end
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 4 rubygems

Version Path
jekyll-0.12.1 lib/jekyll/migrators/enki.rb
jekyll-reloaded-0.12.2 lib/jekyll/migrators/enki.rb
jekyll-0.12.0 lib/jekyll/migrators/enki.rb
spinto-jekyll-0.11.2.5 lib/jekyll/migrators/enki.rb
jekyll-reloaded-0.12.1 lib/jekyll/migrators/enki.rb
jekyll-reloaded-0.12 lib/jekyll/migrators/enki.rb
spinto-jekyll-0.11.2.3 lib/jekyll/migrators/enki.rb
spinto-jekyll-0.11.2.2 lib/jekyll/migrators/enki.rb
spinto-jekyll-0.11.2.1 lib/jekyll/migrators/enki.rb
jekyll-0.11.2 lib/jekyll/migrators/enki.rb
vanity-1.7.1 vendor/ruby/1.9.1/gems/jekyll-0.11.0/lib/jekyll/migrators/enki.rb
jekyll-0.11.0 lib/jekyll/migrators/enki.rb