summaryrefslogtreecommitdiff
path: root/script/converter.rb
diff options
context:
space:
mode:
Diffstat (limited to 'script/converter.rb')
-rwxr-xr-xscript/converter.rb54
1 files changed, 54 insertions, 0 deletions
diff --git a/script/converter.rb b/script/converter.rb
new file mode 100755
index 0000000..ec57404
--- /dev/null
+++ b/script/converter.rb
@@ -0,0 +1,54 @@
+#!/usr/bin/env ruby
+
+require 'reverse_markdown'
+
+class OldNewsItem
+
+ RE_TITLE = /\#{3}(.*)/
+ RE_DATE = /(\d+-\d+-\d+).*/
+
+ attr_reader :html, :markdown
+
+ def initialize(filename)
+ @filename = filename
+ @html = File.read(@filename)
+ end
+
+ def self.convert(filename)
+ new(filename).converted
+ end
+
+ def date
+ @filename[RE_DATE,1]
+ end
+
+ def markdown
+ @markdown ||= ReverseMarkdown.convert(@html)
+ end
+
+ def title
+ markdown[RE_TITLE,1].lstrip
+ end
+
+ def body
+ markdown.gsub(RE_TITLE,'').lstrip
+ end
+
+ def frontmatter
+ <<-EOS
+---
+title: "#{title}"
+date: #{date}
+---
+ EOS
+ end
+
+ def converted
+ frontmatter << body
+ end
+
+end
+
+if __FILE__ == $0
+ puts OldNewsItem.convert(ARGV.shift)
+end