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)); }
public override void writePage(PageWriter writer, string html) { var siteWriter = writer.SiteWriter; var top = ExtractHTML.byId(html, TopId); var bottom = ExtractHTML.byId(html, BottomId); var contentPath = Path.Combine(Id, "wp-content"); var themePath = Path.Combine(contentPath, "themes"); var thisThemePath = Path.Combine(themePath, _themeName); siteWriter.writeText(Path.Combine(thisThemePath, TopId) + ".html", top); siteWriter.writeText(Path.Combine(thisThemePath, BottomId) + ".html", bottom); var header = ExtractHTML.contentOfElement(html, "head"); siteWriter.writeText(Path.Combine(thisThemePath, Head + ".html"), header); }