Пример #1
0
        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));
        }
Пример #2
0
        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);
        }