39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
# File 'lib/jekyll-import/importers/typo.rb', line 39
def self.process(options)
server = options.fetch("server")
dbname = options.fetch("dbname")
user = options.fetch("user")
pass = options.fetch("password", "")
host = options.fetch("host", "localhost")
FileUtils.mkdir_p "_posts"
case server.intern
when :postgres
db = Sequel.postgres(dbname, :user => user, :password => pass, :host => host, :encoding => "utf8")
when :mysql
db = Sequel.mysql2(dbname, :user => user, :password => pass, :host => host, :encoding => "utf8")
else
raise "Unknown database server '#{server}'"
end
db[SQL].each do |post|
next unless post[:state] =~ %r!published!i
if post[:slug].nil?
post[:slug] = "no slug"
end
if post[:extended]
post[:body] << "\n<!-- more -->\n"
post[:body] << post[:extended]
end
name = [ format("%.04d", post[:date].year),
format("%.02d", post[:date].month),
format("%.02d", post[:date].day),
post[:slug].strip, ].join("-")
name += "." + post[:filter].split(" ")[0]
File.open("_posts/#{name}", "w") do |f|
f.puts({ "layout" => "post",
"title" => (post[:title] && post[:title].to_s.force_encoding("UTF-8")),
"tags" => (post[:keywords] && post[:keywords].to_s.force_encoding("UTF-8")),
"typo_id" => post[:id], }.delete_if { |_k, v| v.nil? || v == "" }.to_yaml)
f.puts "---"
f.puts post[:body].delete("\r")
end
end
end
|