sinatra で書く markdown viewer

markdown viewer

ローカルで書いた markdown ファイルをすぐ見たいですね。Ctrl-S, Alt-Tab, Ctrl-r で。

require 'sinatra/base'
require 'rdiscount'

module MarkdownViewer
  class Application < Sinatra::Base
    include ERB::Util
    get '/:file.md/?:opt?' do
      filename = params[:file] + ".md"
      if File.exists?(filename)
        File.open(filename){|f|
          if params[:opt] == 'raw'
            erb "<pre>#{h f.read}</pre>"
          else
            erb RDiscount.new(f.read, :autolink, :filter_html).to_html
          end
        }
      else
        erb "no such file: #{h filename}"
      end
    end
  end
end