Sha256: 6a1d4a04dfa6986db1bf90a74e798c8176852f4086a54bee5d7f12835ae3de91

Contents?: true

Size: 1.57 KB

Versions: 26

Compression:

Stored size: 1.57 KB

Contents

# Author: Toby DiPasquale <toby@cbcg.net>
require 'fileutils'
require 'rubygems'
require 'sequel'
 
module Jekyll
  module Typo
    # this SQL *should* work for both MySQL and PostgreSQL, but I haven't 
    # tested PostgreSQL yet (as of 2008-12-16)
    SQL = <<-EOS
    SELECT c.id id,
           c.title title, 
           c.permalink slug, 
           c.body body,
           c.published_at date, 
           c.state state,
           COALESCE(tf.name, 'html') filter
      FROM contents c 
           LEFT OUTER JOIN text_filters tf
                        ON c.text_filter_id = tf.id 
    EOS

    def self.process dbname, user, pass, host='localhost'
      FileUtils.mkdir_p '_posts'
      db = Sequel.mysql dbname, :user => user, :password => pass, :host => host
      db[SQL].each do |post|
        next unless post[:state] =~ /Published/

        name = [ sprintf("%.04d", post[:date].year),
                 sprintf("%.02d", post[:date].month),
                 sprintf("%.02d", post[:date].day),
                 post[:slug].strip ].join('-')
        # Can have more than one text filter in this field, but we just want 
        # the first one for this
        name += '.' + post[:filter].split(' ')[0]

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

  end   # module Typo
end   # module Jekyll

Version data entries

26 entries across 26 versions & 12 rubygems

Version Path
calavera-jekyll-0.4.1 lib/jekyll/converters/typo.rb
codeslinger-jekyll-0.3.0 lib/jekyll/converters/typo.rb
codeslinger-jekyll-0.4.1 lib/jekyll/converters/typo.rb
danski-jekyll-0.4.1 lib/jekyll/converters/typo.rb
dysinger-jekyll-0.4.0 lib/jekyll/converters/typo.rb
elq-jekyll-0.4.2 lib/jekyll/converters/typo.rb
jsjohnst-jekyll-0.4.1.999.1 lib/jekyll/converters/typo.rb
jsjohnst-jekyll-0.4.1.999.2 lib/jekyll/converters/typo.rb
jsjohnst-jekyll-0.4.1.999.3 lib/jekyll/converters/typo.rb
jsjohnst-jekyll-0.4.1.999.4 lib/jekyll/converters/typo.rb
jsjohnst-jekyll-0.4.1.999.6 lib/jekyll/converters/typo.rb
matflores-jekyll-0.4.1.1 lib/jekyll/converters/typo.rb
matflores-jekyll-0.4.1 lib/jekyll/converters/typo.rb
matflores-jekyll-0.4.2 lib/jekyll/converters/typo.rb
matflores-jekyll-0.4.3 lib/jekyll/converters/typo.rb
mattmatt-jekyll-0.4.0 lib/jekyll/converters/typo.rb
mattmatt-jekyll-0.4.1 lib/jekyll/converters/typo.rb
mattmatt-jekyll-0.4.3 lib/jekyll/converters/typo.rb
mattmatt-jekyll-0.4.4 lib/jekyll/converters/typo.rb
mattmatt-jekyll-0.4.5 lib/jekyll/converters/typo.rb