Merge remote-tracking branch 'rodrigopinto/master'
This commit is contained in:
commit
0dc55aacff
|
@ -0,0 +1,51 @@
|
||||||
|
# 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 # module Enki
|
||||||
|
end # module Jekyll
|
Loading…
Reference in New Issue