make.rb
来自「用ruby on rails写的一个博客程序,还不错..ruby on rail」· RB 代码 · 共 360 行
RB
360 行
$:.unshift '../lib'require 'yaml'require 'redcloth'class String # # Flexible HTML escaping # def htmlesc!( mode ) gsub!( '&', '&' ) gsub!( '"', '"' ) if mode != :NoQuotes gsub!( "'", ''' ) if mode == :Quotes gsub!('<', '<') gsub!('>', '>') endenddef a_name( phrase ) phrase.downcase. gsub( /\W+/, '-' )endfile_name = ARGV.shiftcase file_namewhen 'README' puts <<-HTML <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>RedCloth [Textile Humane Web Text for Ruby]</title> <style type="text/css"> BODY { margin: 10px 60px 40px 60px; font-family: georgia, serif; font-size: 12pt; } TABLE { padding: 15px; width: 250px; } TH { text-align: left; } TD { border-top: solid 1px #eee; } H4 { border: solid 1px #caa; margin: 10px 15px 5px 10px; padding: 5px; color: white; background-color: #333; font-weight: bold; font-size: 12pt; } P { margin: 10px 15px 5px 15px; } P.example1 { background-color: #FEE; font-weight: bold; font-size: 9pt; padding: 5px; } P.example2 { border: solid 1px #DDD; background-color: #EEE; font-size: 9pt; padding: 5px; } .big { font-size: 15pt; } #big-red { font-size: 15pt; color: red; } #big-red2 { font-size: 15pt; color: red; } #sidebar { float: right; font-family: verdana, arial, sans-serif; font-size: 10pt; border-left: solid 1px #999; margin-left: 10px; width: 200px; } /* VARIATION BUTTON STYLING (v2.0) - SIZABLE SIZE */ #css-buttons ul{list-style: none;margin: 0 0 10px 0;padding: 0;} #css-buttons li{border: 1px solid #999; margin: 5px 0 0 20px; width:9.0em;} head:first-child+body #css-buttons li{padding-right:2px;} #css-buttons li a{color: #333; text-decoration: none;} .css-button { display:block; font: 0.8em verdana, arial, sans-serif; padding: 2px 0 2px 0px; border: 1px solid white; text-decoration: none; width:100%; background: #ddd;color: #333; } .css-button span { font: bold 1.0em verdana, arial, sans-serif; padding: 2px 3px 2px 3px; color: #fff; } /* BUTTON LOGO STYLING */ .rss span{background:#f60;} .w3c span {background: #fff; color: #069; font: bold 1.1em helvetica, arial, Sans-Serif;} .w3c2{background: #fc6;color: black !important;} </style> </head> <body> HTML puts RedCloth.new( File.open( file_name ).read ).to_html puts "</body>" puts "</html>"when 'QUICK-REFERENCE' YAML::add_private_type( "example" ) do |type, val| esc = val.dup esc.htmlesc!( :NoQuotes ) [ :example, esc.gsub( /\n/, '<br />' ), RedCloth.new( val ).to_html ] end content = YAML::load( File.open( 'REFERENCE' ) ) sections = content.collect { |c| c.keys.first } sections.shift puts <<-HTML <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Textile Quick Reference</title> <style type="text/css"> BODY { margin: 5px; } TABLE { font-family: georgia, serif; font-size: 10pt; padding: 5px; width: 200px; } TH { padding-top: 10px; } TD { border-top: solid 1px #eee; } H1 { font-size: 18pt; } H4 { color: #999; background-color: #fee; border: solid 1px #caa; margin: 10px 15px 5px 10px; padding: 5px; } P { margin: 2px 5px 2px 5px; } TD.example1 PRE { background-color: #FEE; font-family: georgia, serif; font-size: 8pt; padding: 5px; padding: 5px; } TD.example3 { border: solid 1px #DDD; background-color: #EEE; font-size: 8pt; padding: 5px; } .big { font-size: 12pt; } #big-red { font-size: 12pt; color: red; } #big-red2 { font-size: 15pt; color: red; } </style> </head> <body> <table> <tr><th colspan='3'><h1>Textile Quick Reference</h1></th></tr> <tr><th colspan='3'>Sections: #{ sections.collect { |s| "<a href='##{ a_name( s ) }'>#{ s.gsub( /\s/, ' ' ) }</a>" }.join( ' | ' ) }</th></tr> HTML ct = 0 content.each do |section| section.each do |header, parags| puts "<tr><th colspan='5'><a name='#{ a_name( header ) }'>#{ header }</a></th></tr>" if ct.nonzero? parags.each do |p| if p.is_a?( Array ) and p[0] == :example puts "<tr><td class='example1'><pre>#{ p[1] }</pre></td><td>→</td>" + "<td class='example2'>#{ p[2] }</td></tr>" end end end ct += 1 end puts "</table>" puts "</body>" puts "</html>"when 'REFERENCE' YAML::add_private_type( "example" ) do |type, val| esc = val.dup esc.htmlesc!( :NoQuotes ) [ esc.gsub( /\n/, '<br />' ), RedCloth.new( val ).to_html. gsub( /;(\w)/, '; \1' ). htmlesc!( :NoQuotes ). gsub( /\n/, '<br />' ), RedCloth.new( val ).to_html ] end content = YAML::load( File.open( file_name ) ) sections = content.collect { |c| c.keys.first } sections.shift puts <<-HTML <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Textile Reference</title> <style type="text/css"> BODY { margin: 10px 30px; } TABLE { font-family: georgia, serif; font-size: 11pt; padding: 15px; } TH { border-bottom: solid 1px black; font-size: 24pt; font-weight: bold; padding-top: 30px; } H1 { font-size: 42pt; } H4 { color: #666; background-color: #fee; border: solid 1px #caa; margin: 10px 0px 5px 0px; padding: 5px; } P { margin: 10px 15px 5px 15px; } TD.sections { background: black; color: white; font-family: georgia, serif; font-weight: bold; font-size: 9pt; padding: 5px; } TD.sections A { color: #CCEEFF; } TD.sections A:link { color: #CCEEFF; } TD.sections A:visited { color: #CCEEFF; } TD.sections A:active { color: #EEEEEE; } TD.sections A:hover { color: #EEEEEE; } TD.example1 PRE { background-color: #B30; color: white; font-family: georgia, serif; font-weight: bold; font-size: 9pt; padding: 5px; } TD.example2 P { border: solid 1px #DDD; background-color: #EEE; font-family: georgia, serif; font-size: 9pt; padding: 5px; } TD.example3 { border: solid 1px #EED; background-color: #FFE; padding: 5px; } .big { font-size: 15pt; } #big-red { font-size: 15pt; color: red } </style> <script type="text/javascript"> function quickRedReference() { window.open( "quick.html", "redRef", "height=600,width=550,channelmode=0,dependent=0," + "directories=0,fullscreen=0,location=0,menubar=0," + "resizable=0,scrollbars=1,status=1,toolbar=0" ); } </script> </head> <body> <table> HTML ct = 0 content.each do |section| section.each do |header, parags| if ct.zero? puts "<tr><th colspan='3'><h1>#{ header }</h1></th></tr>" puts "<tr><td class='sections' colspan='3'>Sections: #{ sections.collect { |s| "<a href='##{ a_name( s ) }'>#{ s.gsub( /\s/, ' ' ) }</a>" }.join( ' | ' ) }</td></tr>" else puts "<tr><th colspan='3'><a name='#{ a_name( header ) }'><small>#{ ct }.</small></a><br />#{ header }</th></tr>" end parags.each do |p| if p.is_a? Array puts "<tr><td class='example1' valign='top'><pre>#{ p[0] }</pre></td><td>→</td>" + "<td class='example2'><p>#{ p[1] }</p></td></tr><tr><td colspan='2'></td>" + "<td class='example3'>#{ p[2] }</td></tr>" else puts "<tr><td class='explain' colspan='3'>" puts RedCloth.new( p ).to_html puts "</td></tr>" end end unless ct.zero? puts "<tr><td colspan='5' style='border-bottom: solid 1px #eee;'></td></tr>" end end ct += 1 end puts "</table>" puts "</body>" puts "</html>"end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?