[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