Changeset 19785

Show
Ignore:
Timestamp:
09/24/08 00:48:18 (5 years ago)
Author:
drry
Message:
  • 正規表現を修正しました。
  • ほか。
Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/javascript/vimperator-plugins/trunk/haiku.js

    r19778 r19785  
    8181        var html = <style type="text/css"><![CDATA[ 
    8282            span.haiku.entry-title { text-decoration: underline; } 
    83             span.haiku.entry-content { white-space:normal; } 
     83            span.haiku.entry-content { white-space: normal; } 
    8484            span.haiku.entry-content a { text-decoration: none; } 
    8585            img.haiku.photo { border; 0px; width: 16px; height: 16px; vertical-align: baseline; } 
     
    108108    } 
    109109    function convert(str){ 
    110         function createHTML(url,userid){ 
     110        function createHTML(all){ 
    111111            var str = ''; 
    112             if (userid){ 
    113                 str = '<a href="http://h.hatena.ne.jp/id/'+userid+'">id:'+userid+'</a>' 
    114             } else if (/\.(?:jpe?g|gif|png|bmp)$/.test(url)){ 
    115                 str = '<img src="'+url+'"/>'; 
    116             } else if (/^http:\/\/www\.youtube\.com\/(?:watch\?v=|v\/)([-\w]+)$/.test(url)){ 
     112            if (all.indexOf("id:") == 0){ 
     113                str = '<a href="http://h.hatena.ne.jp/id/' + all.substring(3) + '">' + all + '</a>' 
     114            } else if (/\.(?:jpe?g|gif|png|bmp)$/.test(all)){ 
     115                str = '<img src="' + all + '"/>'; 
     116            } else if (/^http:\/\/www\.youtube\.com\/(?:watch\?v=|v\/)([-\w]+)$/.test(all)){ 
    117117                var url = "http://www.youtube.com/v/" + RegExp.$1; 
    118118                str = '<a href="#" class="hl-URL">' + url + '</a>\n' + 
     
    121121                      '</object></div>'; 
    122122            } else { 
    123                 if (url.charAt(0) == "<") 
    124                     str = url.replace(/(href|src)="\//g,'$1="http://h.hatena.ne.jp/'); 
    125                 else  
    126                     str = '<a href="#" class="hl-URL">'+url+'</a>'; 
     123                if (all.charAt(0) == "<") 
     124                    str = all.replace(/(?:href|src)="(?=\/)/g,'$&http://h.hatena.ne.jp'); 
     125                else 
     126                    str = '<a href="#" class="hl-URL">' + all + '</a>'; 
    127127            } 
    128128            return str; 
    129129        } 
    130         return str.replace(/<[^>]+>|https?:\/\/[-\w!#$%&'()*+,.\/:;=?@~]+|id:([-\w]+)/g, createHTML) 
     130        return str.replace(/<[^>]+>|https?:\/\/[-\w!#$%&'()*+,.\/:;=?@~]+|id:[a-zA-Z][-\w]{1,30}[a-zA-Z\d]/g, createHTML) 
    131131                  .replace("\n","<br/>","g"); 
    132132    }