public string postProcess(PageWriter writer, string xml)
        {
            bool anyModulesReplaced;
            var  document = ExtractHTML.loadHTML(xml);

            do
            {
                anyModulesReplaced = false;
                var references = findModuleReferences(document).ToArray();

                foreach (var reference in references)
                {
                    var moduleName = reference.URI.LocalPath;
                    var template   = resolveModuleTemplate(writer.Site, moduleName);

                    var parameters     = ModuleParameters.fromReference(reference);
                    var moduleContext  = new ModuleContext(writer, parameters);
                    var moduleHTML     = "<root>" + template.generateHTML(moduleContext) + "</root>";
                    var moduleDocument = ExtractHTML.loadWithoutDTD(moduleHTML);
                    reference.expand(moduleDocument.DocumentElement.ChildNodes);

                    anyModulesReplaced = true;
                }
            } while (anyModulesReplaced);

            return(XHTMLWriter.writeStrict(document));
        }
Beispiel #2
0
 public string postProcess(PageWriter pageWriter, string html)
 {
     return(_moduleProcessor.postProcess(pageWriter, html));
 }