#!/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