2008-09-22 44 views
-1

SVN關鍵字替換給出的並不漂亮。例如,JavaScript從SVN關鍵字替換中提取作者/日期

最後更新:由$ $作者日期$ $

產量

最後更新:$日期:2008-09-22 十四時38分43秒-0400 (週一,2008年09月22日)$由 $作者:cconway $」

是否有人有一段JavaScript代碼,即prettifies事情和產出索姆e HTML?結果應該是更象:

最後更新日期:2008年9月由cconway

附:22有沒有辦法用顯示名稱替換「cconway」?

回答

2

Errr。這感覺有點像我做你的工作對你:),但這裏有雲:

function formatSvnString(string){ 
    var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] 

    var re = /\$Date: (\d{4})-(\d\d)-(\d\d).*?\$Author: (\S+) \$/ 
    return string.replace(re, function(match, year, month, day, author){ 
     var date = new Date([year, month, day].join('/')) 
     return date.getDate() 
      + ' ' + months[date.getMonth()] 
      + ' ' + date.getFullYear() 
      + ' by ' + author 
    }) 
} 

用法:

formatSvnString("$Date: 2008-09-22 14:38:43 -0400 (Mon, 22 Sep 2008) $ by $Author: cconway $") 
// returns: 22 Sep 2008 by cconway 

我會讓你來了解如何找到這些SVN字符串並自動應用上述代碼:)

要做用戶的顯示名稱,您必須說服SVN插入它(我不認爲它可以這樣做,但我可能是錯的),或者一些如何爲JS提供一種手段來獲取它,或者訪問一個充滿用戶名和相關顯示名稱的表(可能有點像安全風險,儘管如此。嘿孩子,看你能不能闖進使用這些用戶名我的一個服務器)

0

這裏有一個小的jQuery代碼做的工作:

 
$(document).ready(function() { 
    var date = "$Date: 2008-09-23 00:10:56 -0400 (Tue, 23 Sep 2008) $" 
     .replace(/\$Date:.*\((.*)\)\s*\$/,"$1"); 
    $(".timestamp").text("Last updated: " + date); 
}); 

那裏是在任何你想要的HTML一個<div class="timestamp" />要顯示的時間戳文本。