protected override void Render() { // Capture placeholder content var placeholderContent = HxlPlaceholderContentProvider.FromElement(Element); HxlMasterInfo masterInfo = new HxlMasterInfo(placeholderContent, null, this.Element, _layoutName); var output = this.Output; HxlTemplateContext context = this.TemplateContext; var master = LoadMaster(context.TemplateFactory, _ignoreErrors, _layoutName); var childContext = context.CreateChildContext(master); childContext.SetMasterInfo(masterInfo); master.Transform(output, childContext); }
protected override void Render() { // Only render the content placeholders var placeholderContent = HxlPlaceholderContentProvider.FromElement(Element); var masterInfo = new HxlMasterInfo(placeholderContent, null, Element, _layout); masterInfo.InSpa = true; var master = LayoutTemplate.LoadMaster(TemplateContext.TemplateFactory, false, _layout); var tc = TemplateContext.CreateChildContext(master); tc.SetMasterInfo(masterInfo); master.Transform(TextWriter.Null, tc); // TODO Could have multiple items scheduled // TODO Skip over single-page elements that were disabled // TODO Output correct spa locations // If Output is null writer, then we're nested if (ReferenceEquals(Output, TextWriter.Null)) { return; } Output.WriteLine("{ "); object versionString = "1"; Output.WriteLine(string.Format("\"version\": \"{0}\", ", versionString)); Output.WriteLine("\"fragments\": ["); bool comma = false; foreach (StringWriter b in TemplateContext.EndBufferContent("spaFragments")) { if (comma) { Output.Write(","); } Output.WriteLine(b); comma = true; } Output.WriteLine("] }"); }
internal void SetMasterInfo(HxlMasterInfo masterInfo) { this._masterInfo = masterInfo; }