[TxMt] Wrap selection as link with title

Brett Terpstra brett at circlesixdesign.com
Sun Oct 22 15:00:32 UTC 2006


Hi everybody.

As some of you may have figured out, I work a lot in HTML and CSS and  
I have a fetish for descriptive titles on links.  I've been rewriting  
the wrap selection as link command and have it all worked out to grab  
the title of the link in the clipboard if it starts with http(s).  I  
can't get it to validate the link, though.

Here's the text of the command:

#!/usr/bin/env ruby
require "#{ENV['TM_SUPPORT_PATH']}/lib/progress.rb"
require 'open-uri'
link = "http://site.com"
title = #{ENV['TM_SELECTED_TEXT']}
s = IO.popen('pbpaste', 'r+').read
if s.match(/(http(s?):\/\/)/) then
TextMate.call_with_progress(:title => "Opening Link", :message =>  
"Retrieving Title for #{s}") do
           begin
              fp = open(s)
          title = fp.read.match(/<title>([^<>]*)<\/title>/i).to_a 
[1].strip
          link = s
            rescue
              title = "site unreachable"
            end
end
end
print %{<a href="${1:#{link}}" title="${2:#{title}}" > 
$TM_SELECTED_TEXT</a>}

I've tried all kinds of overly complex methods that all yield the  
same results when the link is bogus:

/usr/lib/ruby/1.8/timeout.rb:42:in /bin/bash: -c: line 1: unexpected  
EOF while looking for matching `''
/bin/bash: -c: line 3: syntax error: unexpected end of fileconnect'
from /usr/lib/ruby/1.8/net/protocol.rb:64:in /bin/bash: -c: line 1:  
unexpected EOF while looking for matching `''
/bin/bash: -c: line 3: syntax error: unexpected end of fileopen'
from /usr/lib/ruby/1.8/net/http.rb:430:in /bin/bash: -c: line 1:  
unexpected EOF while looking for matching `''
/bin/bash: -c: line 3: syntax error: unexpected end of filestart'
from /usr/lib/ruby/1.8/net/http.rb:324:in /bin/bash: -c: line 1:  
unexpected EOF while looking for matching `''
/bin/bash: -c: line 3: syntax error: unexpected end of fileproxy_open'
from /usr/lib/ruby/1.8/open-uri.rb:525:in /bin/bash: -c: line 1:  
unexpected EOF while looking for matching `''
/bin/bash: -c: line 5: syntax error: unexpected end of filepopen'
from /Users/brett/Library/Application Support/TextMate/Support/lib/ 
progress.rb:11:in
This is what I get (and should get, I think) when I run it from a  
Ruby dialog:
<a href="${1:http://site.com}" title="${2:site unreachable}" > 
$TM_SELECTED_TEXT</a>

It works great when the site in the clipboard is valid.  Any  
suggestions would be appreciated.

Thanks,
Brett


Brett Terpstra : Art Director
Circle Six Design, Inc.
111 Riverfront Dr, Suite 204






More information about the textmate mailing list