Javascript从SVN关键字替换中提取作者/日期

时间:2008-09-22 18:42:57

标签: javascript html svn

SVN关键字替换给出的并不漂亮。如,

  

上次更新时间:$ Date $ by $ Author $

产量

  

上次更新时间:$ Date:2008-09-22   14:38:43 - 0400(2008年9月22日,星期一)$ by   $作者:cconway $“

是否有人有一个Javascript代码段可以美化并输出一些HTML?结果应该更像是:

  

最后更新:2008年9月22日,来自cconway

P.S。有没有办法用显示名称替换“cconway”?

3 个答案:

答案 0 :(得分: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提供了获取它的方法,或访问一个充满用户名和相关显示名称的表(虽然可能有点像安全风险。嘿孩子们,看看你是否可以使用其中一个用户名进入我的服务器!)

答案 1 :(得分:0)

某些JavaScript库提供模板功能。

原型 - http://www.prototypejs.org/api/template
Ext JS - http://extjs.com/deploy/dev/docs/?class=Ext.DomHelper

我相信你能找到一个JQuery插件。

答案 2 :(得分: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" />,您希望时间戳文本显示在哪里。