private void ListProjects(IRenderContext context) { WriteHead(context, "Visual Studio Projects"); var template = _nameManager.ResolveTemplate("/data/project"); if (template != null) { context.Html.WriteOpenTag("ul", "class", Package.NamespaceName + "_index " + Package.NamespaceName + "_project-index"); context.Html.WriteLine(); foreach (var project in SiteMap.Instance.Projects.OrderBy(p => p.ProjectName)) { context.Data.Set(project); context.Data.Set(project.Document); context.Data.Set(project.Repository); context.Html.WriteOpenTag("li", "class", Package.NamespaceName + "_index " + Package.NamespaceName + "_project-index"); context.Html.WriteLine(); template.WritePageArea(context, PageArea.Body); context.Html.WriteCloseTag("li"); context.Html.WriteLine(); } context.Html.WriteCloseTag("ul"); context.Html.WriteLine(); } }
public ITemplateDefinition AddTemplate(string templatePath) { _nameManager.AddResolutionHandler(NameResolutionPhase.ResolveElementReferences, nm => { AddConsumerNeeds(nm.ResolveTemplate(templatePath) as IDataConsumer); }); HeadActions.Add(r => { var t = _nameManager.ResolveTemplate(templatePath); if (t != null) { t.WritePageArea(r, PageArea.Head); } }); ScriptActions.Add(r => { var t = _nameManager.ResolveTemplate(templatePath); if (t != null) { t.WritePageArea(r, PageArea.Scripts); } }); StyleActions.Add(r => { var t = _nameManager.ResolveTemplate(templatePath); if (t != null) { t.WritePageArea(r, PageArea.Styles); } }); BodyActions.Add(r => { var t = _nameManager.ResolveTemplate(templatePath); if (t != null) { t.WritePageArea(r, PageArea.Body); } }); InitializationActions.Add(r => { var t = _nameManager.ResolveTemplate(templatePath); if (t != null) { t.WritePageArea(r, PageArea.Initialization); } }); return(this); }
private void AddTemplateDependencies(INameManager nm, string templatePath) { var template = nm.ResolveTemplate(templatePath); var dataConsumer = template as IDataConsumer; if (dataConsumer == null) { return; } // Note that if you change the template and dynamically reload it // whilst the website is running you can not change the data dependencies var needs = dataConsumer.GetConsumerNeeds(); if (needs == null) { return; } var thisDataConsumer = this as IDataConsumer; if (needs.DataDependencies != null) { foreach (var dependency in needs.DataDependencies) { thisDataConsumer.HasDependency(dependency.DataType, dependency.ScopeName); } } if (needs.DataSupplyDependencies != null) { foreach (var dataSupply in needs.DataSupplyDependencies) { thisDataConsumer.HasDependency(dataSupply); } } if (needs.DataSupplierDependencies != null) { foreach (var dataSupplier in needs.DataSupplierDependencies) { thisDataConsumer.HasDependency(dataSupplier.Item1, dataSupplier.Item2); } } }