    fname = ARGV[0]
    fname_input = "#{fname}.md"
    myseg = :start
    segments = {}
    segments[myseg] = []
    File.open(fname_input).each do |line|
      if(line.start_with?('## '))
        myseg = line[3..].chomp
        segments[myseg] = []
      end
      if(line.start_with?(' '))
        segments[myseg].push(line)
      end
    end
    def put_lines(file, segments, sname)
      segments[sname].each do |line|
        if(m = /^\s*<<([^>]+)>>\s*$/.match(line))
          put_lines(file, segments, m[1])
        else
          file.puts line
        end
      end
    end
    File.open("#{fname}.rb", 'w') do |out|
      put_lines(out, segments, :start)
    end
    require 'rdoc'
    data = File.read(fname_input)
    formatter = RDoc::Markup::ToHtml.new(RDoc::Options.new, nil)
    html = RDoc::Markdown.parse(data).accept(formatter)
    File.open("#{fname}.html", 'w') do |out|
      out.puts("<html><body>")
      out.print(html)
      out.puts("</body></html>")
    end
