]> source.dussan.org Git - redmine.git/commitdiff
Better handling of external link style assignment.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Mon, 1 Oct 2007 17:45:40 +0000 (17:45 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Mon, 1 Oct 2007 17:45:40 +0000 (17:45 +0000)
git-svn-id: http://redmine.rubyforge.org/svn/trunk@792 e93f8b46-1217-0410-a6f0-8f06a7374b81

lib/redcloth.rb
lib/redmine/wiki_formatting.rb
public/stylesheets/application.css
test/unit/helpers/application_helper_test.rb

index e1a995da23908430824847b4ed00c9953b47b164..c4b504871007cb60bfb0c06bdb2d22aed1bfc6e5 100644 (file)
@@ -784,7 +784,9 @@ class RedCloth < String
             atts << " title=\"#{ title }\"" if title
             atts = shelve( atts ) if atts
             
-            "#{ pre }<a#{ atts }>#{ text }</a>#{ post }"
+            external = (url =~ /^http:\/\//) ? ' class="external"' : ''
+            
+            "#{ pre }<a#{ atts }#{ external }>#{ text }</a>#{ post }"
         end
     end
 
index 6f2aea0aec09711390360978b5a0278873b559c9..da04dd932facd752cd53151376139fc9e60fe401 100644 (file)
@@ -99,7 +99,7 @@ module Redmine
             # and URL's prefixed with ! !> !< != (textile images)
             all
           else            
-            %(#{leading}<a href="#{proto=="www."?"http://www.":proto}#{url}">#{proto + url}</a>#{post})
+            %(#{leading}<a class="external" href="#{proto=="www."?"http://www.":proto}#{url}">#{proto + url}</a>#{post})
           end
         end
       end
index d31e3a3202c608ec772c04706cb40708cda85fd1..a1e1cca2280fa9bfe506c390712644c1711b61b6 100644 (file)
@@ -278,18 +278,13 @@ div.wiki table, div.wiki td, div.wiki th {
     padding: 4px;
 }
 
-div.wiki a {
+div.wiki .external {
     background-position: 0% 60%;
     background-repeat: no-repeat;
     padding-left: 12px;
     background-image: url(../images/external.png);
 }
 
-div.wiki a.wiki-page, div.wiki a.issue, div.wiki a.changeset, div.wiki a.email, div.wiki div.toc a {
-    padding-left: 0;
-    background-image: none;
-}
-
 div.wiki a.new {
     color: #b73535;
 }
index 24935bbb75da4d147d2fd6318b2c6beb4becf7f4..1da25b6fe136cffe860bf81bdcff3a0e8cac855a 100644 (file)
@@ -28,12 +28,12 @@ class ApplicationHelperTest < HelperTestCase
   
   def test_auto_links
     to_test = {
-      'http://foo.bar' => '<a href="http://foo.bar">http://foo.bar</a>',
-      'http://foo.bar.' => '<a href="http://foo.bar">http://foo.bar</a>.',
-      'http://foo.bar/foo.bar#foo.bar.' => '<a href="http://foo.bar/foo.bar#foo.bar">http://foo.bar/foo.bar#foo.bar</a>.',
-      'www.foo.bar' => '<a href="http://www.foo.bar">www.foo.bar</a>',
-      'http://foo.bar/page?p=1&t=z&s=' => '<a href="http://foo.bar/page?p=1&#38;t=z&#38;s=">http://foo.bar/page?p=1&#38;t=z&#38;s=</a>',
-      'http://foo.bar/page#125' => '<a href="http://foo.bar/page#125">http://foo.bar/page#125</a>'
+      'http://foo.bar' => '<a class="external" href="http://foo.bar">http://foo.bar</a>',
+      'http://foo.bar.' => '<a class="external" href="http://foo.bar">http://foo.bar</a>.',
+      'http://foo.bar/foo.bar#foo.bar.' => '<a class="external" href="http://foo.bar/foo.bar#foo.bar">http://foo.bar/foo.bar#foo.bar</a>.',
+      'www.foo.bar' => '<a class="external" href="http://www.foo.bar">www.foo.bar</a>',
+      'http://foo.bar/page?p=1&t=z&s=' => '<a class="external" href="http://foo.bar/page?p=1&#38;t=z&#38;s=">http://foo.bar/page?p=1&#38;t=z&#38;s=</a>',
+      'http://foo.bar/page#125' => '<a class="external" href="http://foo.bar/page#125">http://foo.bar/page#125</a>'
     }
     to_test.each { |text, result| assert_equal "<p>#{result}</p>", textilizable(text) }
   end
@@ -49,8 +49,9 @@ class ApplicationHelperTest < HelperTestCase
       '!http://foo.bar/image.jpg!' => '<img src="http://foo.bar/image.jpg" alt="" />',
       'floating !>http://foo.bar/image.jpg!' => 'floating <div style="float:right"><img src="http://foo.bar/image.jpg" alt="" /></div>',
       # textile links
-      'This is a "link":http://foo.bar' => 'This is a <a href="http://foo.bar">link</a>',
-      '"link (Link title)":http://foo.bar' => '<a href="http://foo.bar" title="Link title">link</a>'
+      'This is a "link":http://foo.bar' => 'This is a <a href="http://foo.bar" class="external">link</a>',
+      'This is an intern "link":/foo/bar' => 'This is an intern <a href="/foo/bar">link</a>',
+      '"link (Link title)":http://foo.bar' => '<a href="http://foo.bar" title="Link title" class="external">link</a>'
     }
     to_test.each { |text, result| assert_equal "<p>#{result}</p>", textilizable(text) }
   end