protected override void ProcessResource( IResourceBuildHelper helper, string virtualPath, string sourceText, out string resource, out string compacted, List <ParseException> errors) { // parse JBST markup this.jbstWriter = new JbstWriter(virtualPath); try { HtmlDistiller parser = new HtmlDistiller(); parser.EncodeNonAscii = false; parser.BalanceTags = false; parser.NormalizeWhitespace = false; parser.HtmlWriter = this.jbstWriter; parser.HtmlFilter = new NullHtmlFilter(); parser.Parse(sourceText); // determine which globalization keys were used JbstCodeProvider.ExtractGlobalizationKeys(this.jbstWriter.JbstParseTree, this.GlobalizationKeys); } catch (ParseException ex) { errors.Add(ex); } catch (Exception ex) { errors.Add(new ParseError(ex.Message, virtualPath, 0, 0, ex)); } string renderedTemplate; using (StringWriter sw = new StringWriter()) { // render the pretty-printed version this.jbstWriter.Render(sw); sw.Flush(); renderedTemplate = sw.ToString(); resource = ScriptResourceCodeProvider.FirewallScript(virtualPath, renderedTemplate, false); } // min the output for better compaction compacted = ScriptCompactionAdapter.Compact(virtualPath, renderedTemplate, errors); compacted = ScriptResourceCodeProvider.FirewallScript(virtualPath, compacted, true); }
string IResourceNameGenerator.GenerateResourceName(string virtualPath) { return(JbstCodeProvider.GetClassForJbst(this.jbstWriter.JbstName)); }