2008-09-22 5 views
-1

Substitution de mots-clés SVN donne n'est pas joli. Par exemple,Javascript pour extraire l'auteur/la date de la substitution de mot-clé SVN

Dernière mise à jour: $ Date $ par $ Auteur

$

rendements

Dernière mise à jour: $ Date: 2008-09-22 14:38:43 -0400 (lun 22 Sep 2008) $ par $ Auteur: cconway $ »

Quelqu'un at-il un extrait de code JavaScript que les choses de enjolive et sorties som e HTML? Le résultat devrait être plus comme:

Dernière mise à jour: 22 Sep 2008 par cconway

post-scriptum Est-il possible de remplacer "cconway" par un nom d'affichage?

Répondre

2

Errr .. Cela se sent un peu comme moi de faire votre travail pour vous :), mais voilà:

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 
    }) 
} 

Utilisation:

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

Je vais laisser à vous comment trouver cette chaîne SVN et appliquer le code ci-dessus automatiquement :)

Pour afficher le nom d'utilisateur de l'utilisateur, vous devrez soit convaincre SVN de l'insérer (je ne pense pas qu'il puisse le faire, mais Je peux me tromper), ou certains comment fournir un moyen pour que JS le récupère, ou pour avoir accès à une table pleine de noms d'utilisateur et de nom d'affichage associé (peut-être un peu trop comme un risque de sécurité cependant. Hé, les enfants, voir si vous pouvez casser dans mon serveur en utilisant l'un de ces noms d'utilisateur)

0

est ici un peu de code jQuery pour faire le travail:

 
$(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); 
}); 

où il y a une <div class="timestamp" /> dans le code HTML où vous voulez le texte d'horodatage à afficher.

Questions connexes