2011-05-22 83 views

回答

0

下面是我解決這個問題的方法。 我使用CodeRay的數字生成了html。但CodeRay不會對官方網站準確documantation,所以找throught的CodeRay的代碼後,我做了這樣的:

content = CodeRay.scan(file.read, :ruby).div(:css => :class, 
               :line_numbers => :inline) 

:line_numbers => :table不會在我的情況下正常工作模式這是我應該使用:inline模式。如果你不喜歡你的HTML頁面中的數字,我認爲你可以通過CSS或JavaScript刪除它。 後來我寫了小javascript函數:

$('span').not('.no').click(function(e) { 
    var target = $(e.target); 
    target.effect('highlight', {}, 'slow'); 
    var i = 0; 
    var prev_element = target.prev(); 
    var element; 
    while (i++ < 10) { 
     element = $(prev_element[0]).context; 
     if (element.className == "no") break; 
     prev_element = prev_element.prev(); 
    } 
    if (i > 9) { 
     alert("Some problem with the finding number line"); 
    } 
    else { 
     var line_number; 
     if (element.children.length > 0) line_number = element.children[0].innerHTML; 
     else        line_number = element.innerHTML; 
     alert(line_number); 
    } 
    e.stopPropagation(); 
}) 

任何建議和改進將不勝感激。