Javascript для извлечения автора / даты из подстановки ключевых слов SVN - PullRequest
0 голосов
/ 22 сентября 2008

Подстановка ключевых слов SVN дает не красиво. Например.,

Последнее обновление: $ Date $ от $ Author $

выходы

Последнее обновление: $ Дата: 2008-09-22 14:38:43 -0400 (понедельник, 22 сентября 2008 г.) $ Автор: cconway $ "

У кого-нибудь есть фрагмент Javascript, который преобразует вещи и выводит какой-то HTML? Результат должен быть больше похож на:

Последнее обновление: 22 сентября 2008 г., автор cconway

P.S. Есть ли способ заменить "cconway" отображаемым именем?

Ответы [ 3 ]

2 голосов
/ 22 сентября 2008

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 голосов
/ 24 сентября 2008

Вот небольшой код 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" /> везде, где вы хотите, чтобы текст метки времени появлялся.

0 голосов
/ 22 сентября 2008

Некоторые библиотеки JavaScript предоставляют функциональность шаблонов.

Прототип - http://www.prototypejs.org/api/template
Ext JS - http://extjs.com/deploy/dev/docs/?class=Ext.DomHelper

Я уверен, что вы можете найти плагин для JQuery.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...