I wonder - do we have some helper/processor/gem to automatically convert all URLs in a passed string to their canonical equivalent - i.e. with the protocol, host and such prepended based on the Rails environment. Super-duper infty for RSS feeds (I hate their requirement for canonical URLs everywhere). -- Julian ''Julik'' Tarkhanov please send all personal mail to me at julik.nl
Julian ''Julik'' Tarkhanov wrote:> I wonder - do we have some helper/processor/gem to automatically > convert all URLs in a passed string to their canonical equivalent - > i.e. with the protocol, host and such prepended based on the Rails > environment. Super-duper infty for RSS feeds (I hate their > requirement for canonical URLs everywhere). > -- > Julian ''Julik'' Tarkhanov > please send all personal mail to > me at julik.nlI''m not sure about strings, but the url_helpers have an :only_path parameter that should do what you want. The following line will give a url with host protocol and port. url_for :action => ''foo'', :only_path => false You can even set up your own defaults for the url helpers. Add the default_url_options method to your application_controller def default_url_options(options) {:only_path => false} end All urls in your entire app will now be absolute, unless you pass in :only_path=>true when creating the url -- Posted via http://www.ruby-forum.com/.
On 4-jun-2006, at 20:17, Alex Wayne wrote:> > I''m not sure about strings, but the url_helpers have an :only_path > parameter that should do what you want. The following line will > give a > url with host protocol and port.I am talking about URLs typed in by users, and relating to the site root - as in a Markdown-formatted entry: We are proud to announce our new [bodily parts enlargment contraption](/products/magic-device). After being processed with Markdown I would like to process all href= and src= attributes so that they include the host, port and protocol. -- Julian ''Julik'' Tarkhanov please send all personal mail to me at julik.nl
On 4-jun-2006, at 21:14, Julian ''Julik'' Tarkhanov wrote:> > I am talking about URLs typed in by users, and relating to the site > root - as in a Markdown-formatted entry:Ok, thanks to some ruby-foo of Mauricio Fernandez :-P I don''t have to write this myself, all rejoice http://eigenclass.org/hiki.rb?Turning+Hiki+into+a+simple+CMS require ''cgi'' require ''uri'' def rss_make_content_relative_to(htmlcontent, root) htmlcontent.gsub(/(<(img|a)\b[^>]*(src|href)=)(["''])(.*?)\4/) do md = $~ url = URI.parse CGI.unescapeHTML(md[5]) if url.relative? && url.path !~ /^\// md[1] + md[4] + root + "/" + md[5] + md[4] else md.to_s end end end -- Julian ''Julik'' Tarkhanov please send all personal mail to me at julik.nl