@@ -784,7 +784,9 class RedCloth < String | |||||
784 | atts << " title=\"#{ title }\"" if title |
|
784 | atts << " title=\"#{ title }\"" if title | |
785 | atts = shelve( atts ) if atts |
|
785 | atts = shelve( atts ) if atts | |
786 |
|
786 | |||
787 | "#{ pre }<a#{ atts }>#{ text }</a>#{ post }" |
|
787 | external = (url =~ /^http:\/\//) ? ' class="external"' : '' | |
|
788 | ||||
|
789 | "#{ pre }<a#{ atts }#{ external }>#{ text }</a>#{ post }" | |||
788 | end |
|
790 | end | |
789 | end |
|
791 | end | |
790 |
|
792 |
@@ -99,7 +99,7 module Redmine | |||||
99 | # and URL's prefixed with ! !> !< != (textile images) |
|
99 | # and URL's prefixed with ! !> !< != (textile images) | |
100 | all |
|
100 | all | |
101 | else |
|
101 | else | |
102 | %(#{leading}<a href="#{proto=="www."?"http://www.":proto}#{url}">#{proto + url}</a>#{post}) |
|
102 | %(#{leading}<a class="external" href="#{proto=="www."?"http://www.":proto}#{url}">#{proto + url}</a>#{post}) | |
103 | end |
|
103 | end | |
104 | end |
|
104 | end | |
105 | end |
|
105 | end |
@@ -278,18 +278,13 div.wiki table, div.wiki td, div.wiki th { | |||||
278 | padding: 4px; |
|
278 | padding: 4px; | |
279 | } |
|
279 | } | |
280 |
|
280 | |||
281 | div.wiki a { |
|
281 | div.wiki .external { | |
282 | background-position: 0% 60%; |
|
282 | background-position: 0% 60%; | |
283 | background-repeat: no-repeat; |
|
283 | background-repeat: no-repeat; | |
284 | padding-left: 12px; |
|
284 | padding-left: 12px; | |
285 | background-image: url(../images/external.png); |
|
285 | background-image: url(../images/external.png); | |
286 | } |
|
286 | } | |
287 |
|
287 | |||
288 | div.wiki a.wiki-page, div.wiki a.issue, div.wiki a.changeset, div.wiki a.email, div.wiki div.toc a { |
|
|||
289 | padding-left: 0; |
|
|||
290 | background-image: none; |
|
|||
291 | } |
|
|||
292 |
|
||||
293 | div.wiki a.new { |
|
288 | div.wiki a.new { | |
294 | color: #b73535; |
|
289 | color: #b73535; | |
295 | } |
|
290 | } |
@@ -28,12 +28,12 class ApplicationHelperTest < HelperTestCase | |||||
28 |
|
28 | |||
29 | def test_auto_links |
|
29 | def test_auto_links | |
30 | to_test = { |
|
30 | to_test = { | |
31 | 'http://foo.bar' => '<a href="http://foo.bar">http://foo.bar</a>', |
|
31 | 'http://foo.bar' => '<a class="external" href="http://foo.bar">http://foo.bar</a>', | |
32 | 'http://foo.bar.' => '<a href="http://foo.bar">http://foo.bar</a>.', |
|
32 | 'http://foo.bar.' => '<a class="external" href="http://foo.bar">http://foo.bar</a>.', | |
33 | 'http://foo.bar/foo.bar#foo.bar.' => '<a href="http://foo.bar/foo.bar#foo.bar">http://foo.bar/foo.bar#foo.bar</a>.', |
|
33 | '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>.', | |
34 | 'www.foo.bar' => '<a href="http://www.foo.bar">www.foo.bar</a>', |
|
34 | 'www.foo.bar' => '<a class="external" href="http://www.foo.bar">www.foo.bar</a>', | |
35 | 'http://foo.bar/page?p=1&t=z&s=' => '<a href="http://foo.bar/page?p=1&t=z&s=">http://foo.bar/page?p=1&t=z&s=</a>', |
|
35 | 'http://foo.bar/page?p=1&t=z&s=' => '<a class="external" href="http://foo.bar/page?p=1&t=z&s=">http://foo.bar/page?p=1&t=z&s=</a>', | |
36 | 'http://foo.bar/page#125' => '<a href="http://foo.bar/page#125">http://foo.bar/page#125</a>' |
|
36 | 'http://foo.bar/page#125' => '<a class="external" href="http://foo.bar/page#125">http://foo.bar/page#125</a>' | |
37 | } |
|
37 | } | |
38 | to_test.each { |text, result| assert_equal "<p>#{result}</p>", textilizable(text) } |
|
38 | to_test.each { |text, result| assert_equal "<p>#{result}</p>", textilizable(text) } | |
39 | end |
|
39 | end | |
@@ -49,8 +49,9 class ApplicationHelperTest < HelperTestCase | |||||
49 | '!http://foo.bar/image.jpg!' => '<img src="http://foo.bar/image.jpg" alt="" />', |
|
49 | '!http://foo.bar/image.jpg!' => '<img src="http://foo.bar/image.jpg" alt="" />', | |
50 | 'floating !>http://foo.bar/image.jpg!' => 'floating <div style="float:right"><img src="http://foo.bar/image.jpg" alt="" /></div>', |
|
50 | 'floating !>http://foo.bar/image.jpg!' => 'floating <div style="float:right"><img src="http://foo.bar/image.jpg" alt="" /></div>', | |
51 | # textile links |
|
51 | # textile links | |
52 | 'This is a "link":http://foo.bar' => 'This is a <a href="http://foo.bar">link</a>', |
|
52 | 'This is a "link":http://foo.bar' => 'This is a <a href="http://foo.bar" class="external">link</a>', | |
53 | '"link (Link title)":http://foo.bar' => '<a href="http://foo.bar" title="Link title">link</a>' |
|
53 | 'This is an intern "link":/foo/bar' => 'This is an intern <a href="/foo/bar">link</a>', | |
|
54 | '"link (Link title)":http://foo.bar' => '<a href="http://foo.bar" title="Link title" class="external">link</a>' | |||
54 | } |
|
55 | } | |
55 | to_test.each { |text, result| assert_equal "<p>#{result}</p>", textilizable(text) } |
|
56 | to_test.each { |text, result| assert_equal "<p>#{result}</p>", textilizable(text) } | |
56 | end |
|
57 | end |
General Comments 0
You need to be logged in to leave comments.
Login now