Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
## seksi.rb use_template_engine :erb Merb::Config.use { |c| c[:framework] = { :public => [Merb.root / "public", nil] } c[:session_store] = 'none' c[:exception_details] = true c[:log_level] = :debug # or error, warn, info or fatal c[:log_stream] = STDOUT c[:reload_classes] = true c[:reload_templates] = true } Merb::Router.prepare do match('/').to(:controller => 'seksi', :action =>'index') match(%r{/img/(.*)}).to(:controller => 'seksi', :action => 'image', :for => '[1]') end Merb.add_mime_type(:png, :to_png, %w[image/png], "Content-Type" => "image/png") class Seksi < Merb::Controller PRE ="\\documentclass[12pt]{article}\n\\usepackage{color}\n\\usepackage[dvips]{graphicx}\n\\pagestyle{empty}\n\\pagecolor{white}\n\\begin{document}\n{\\color{black}\n\\begin{eqnarray*}\n" POST = "\n\\end{eqnarray*}}\n\\end{document}" TEMP = '/tmp/tex2img/' def index if request.post? @img_url = "/img/#{params[:formula].gsub('"', "''")}" end render :template => '../../index' end def image pwd = FileUtils.pwd filename = Time.now.to_f.to_s + rand.to_s FileUtils.mkdir_p TEMP FileUtils.cd TEMP File.open(filename+'.tex',"w"){|file| file.puts PRE + params[:for].gsub(/%([a-fA-F\d]{2})/){eval("0x#$1").chr} + POST} `latex -interaction=batchmode #{filename}.tex -output-format=dvi` `dvips -o #{filename}.eps -E #{filename}.dvi 2> /dev/null` `convert +adjoin -antialias -density 150x150 #{filename}.eps #{filename}.png` content = File.read(filename+".png") FileUtils.rm %w(png eps dvi aux log tex).map{|x| filename+'.'+x} FileUtils.cd pwd render content, :format => :png, :layout => false end end ## index.html.erb <?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet type="text/css" href="style.css"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl"> <head> <title>Formula!</title> <script type="text/javascript"> var eqOld = ""; function update() { var eq = document.getElementById('formula').value; eq = encodeURIComponent(eq); if(eq != eqOld) { document.images[0].src = '/img/' + eq; } eqOld = eq; } </script> </head> <body> Enter your secret forumla:</br> <form action="/" method="post"> <textarea onkeyup="update()" "rows="10" cols="50" id="formula" name="formula"><%= params[:formula] %></textarea><br/> <input type="submit" value="Create" /> <p><img src="<%= @img_url %>" /></p> </body> </html> ## stats l1@eden pon paź 13 08:25:09 ~/projekty/seksi/ wc seksi.rb index.html.erb 49 152 1722 seksi.rb 27 77 846 index.html.erb 76 229 2568 razem ## run (merb 0.99-git) l1@eden pon paź 13 08:26:19 ~/projekty/seksi/ merb -I seksi.rb Loading init file from seksi.rb ~ Parent pid: 8418 ~ Cluster: 0 merb : worker (port 4000) ~ Starting Mongrel at port 4000 merb : worker (port 4000) ~ Successfully bound to port 4000
This paste will be private.
From the Design Piracy series on my blog: