NVelocityに適当なフィルタを組み込んで使う

djangoでいうところの@register.filterのように、NVelocityに自作のフィルタを組み込んで使うには、
適当なクラスを

#region NVelocity filter class
class nvFilterTools{
	public static string escape(string str){
		return System.Web.HttpUtility.HtmlEncode(str);
	}
	public static string comma(long n){
		return string.Format("{0:N0}", n);
	}
	public static long divk(long n){
		if (n < 1024){
			if (n != 0){
				n = 1;
			}
		}else{
			n /= 1024;
		}
		return n;
	}
}
#endregion

Putして

Velocity.Init();
VelocityContext vct = new VelocityContext();
vct.Put("filter", new nvFilterTools());

テンプレート中で使う

<tr><td class="name"><a href="./$filter.escape($file.Name)">$filter.escape($file.Name)</a></td><td class="size">$filter.comma($filter.divk($file.Length)) KB</td><td class="updated">$file.LastWriteTime</td></tr>