#!/usr/bin/ruby # encoding: utf-8 require 'rubygems' infile = File.new('DefaultKeyBinding.dict','r') input = infile.read infile.close date = Time.now.strftime('%m/%d/%Y') output = '' style =< STYLE intro =<Installation: Copy the DefaultKeyBindings.dict file to the `~/Library/KeyBindings/` directory (create `KeyBindings` if it doesn't already exist). Any open applications will need to be re-started before the key bindings will take effect -- or log out and log back in. Documentation (last updated #{date}.) *Grouped items begin with the groups shortcut (if exists), followed by a subgroup (if exists) followed by the keys specified.* INTRO outro =<\s*(.*)$/ note += " " + $1 elsif line =~ /^\s*\};\s*$/ level -= 1 if level == 1 subgroup_command = '' subgroup_desc = '' output += "|||||\n" elsif level == 0 output += "[ #{group_desc} ]\n\n" group_command = '' group_desc = '' end next elsif line =~ /^\s*\/\/\s*(.*)/ desc = $1 next elsif line =~ /^\s*"([^"]+)"\s*=\s*\{.*?\/\/\s*(.*)/ level += 1 if level == 1 group_command = translate_command($1) group_desc = $2 output += "\n|#{group_desc} (#{group_command})||||\n|:----:|:----:|:----:|:----|\n" elsif level == 2 subgroup_command = translate_command($1) subgroup_desc = $2 output += "|#{subgroup_desc} (#{subgroup_command})||| |\n" else prefix = $1 end next elsif line =~ /^\s*"([^"]+)"\s*=\s*\(/ command = translate_command($1) note = "(#{note})" if note != '' if level == 0 toplevel.push("|#{command}|#{desc} #{note}|\n") else command = prefix + "," + command if prefix output += "|#{group_command} |#{subgroup_command} |#{command} |#{desc} #{note}|\n" end note = '' end } topoutput = "|General Commands||\n|Key|Function|\n|:----:|:----|\n" toplevel.each {|line| topoutput += line } topoutput += "[ General Commands ]\n\n" # output = style + topoutput + output output = topoutput + output htmlout = %x{echo #{e_sh output}|/usr/local/bin/multimarkdown} outfile = File.new('readme.md','w') outfile.puts intro outfile.puts htmlout outfile.puts outro outfile.close