预编译HTML文件以作为静态文件发布

时间:2012-01-19 11:48:43

标签: .net html publishing precompile custom-tags

我有一个项目,其中大量技术规范目前作为HTML文件“发布”。 HTML文件不是托管在Web服务器上,而是压缩并分发以便从PC的本地文件系统进行访问。

我正在探索创建“发布”系统的想法,其中发布者可以根据HTML本身内的自定义标记修改HTML文件的内容。我想这与使用PHP或ASP类似,如果它是基于服务器的。

例如,我可以添加

<Publisher action="___" params="________" />

发布商会检测到“标记”是否存在执行所需的处理,然后将必要的HTML注入替换标记的文件中。

有没有人知道使用基于.NET的技术实现这一目标的方法,或其他方式来实现相同的目标。

1 个答案:

答案 0 :(得分:0)

好的,不确定这是否是最优雅的解决方案,它有效。

1)基于Cannot delete directory with Directory.Delete(path, true),我清除了已发布的“网站”的目标。

2)然后,我根据接受的问题Copy the entire contents of a directory in C#解决方案使用代码复制所有文件。

3)我拦截所有“HTM”或“HTML”文件并使用正则表达式查看是否需要任何“处理”。这是基于此处http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex.replace(v=vs.71).aspx网站的代码(如下所示)

using System.Text.RegularExpressions;

class RegExSample 
{
   static string CapText(Match m) 
   {
     // Get the matched string.
     string x = m.ToString();
     // If the first char is lower case...
     if (char.IsLower(x[0])) 
     {
        // Capitalize it.
       return char.ToUpper(x[0]) + x.Substring(1, x.Length-1);
     }
     return x;
   }

   static void Main() 
   {
     string text = "four score and seven years ago";
     System.Console.WriteLine("text=[" + text + "]");
     string result = Regex.Replace(text, @"\w+",
        new MatchEvaluator(RegExSample.CapText));
     System.Console.WriteLine("result=[" + result + "]");
   }
}