private async Task <Site> Load(string sitePath, string outputPath, IEnumerable <string> renderedExtensions) { Site site; SiteConfig config; using (var capture = Statistics.Current.Start(StatisticTiming.LoadedConfiguration)) { var command = new LoadSiteConfigCommand(); command.ConfigPath = Path.Combine(sitePath, "site.config"); command.OutputPath = outputPath; config = await command.ExecuteAsync(); } using (var capture = Statistics.Current.Start(StatisticTiming.LoadedSite)) { // Load documents. IEnumerable <DocumentFile> documents; { var load = new LoadDocumentsCommand(); load.Author = config.Author; load.OutputRootPath = config.OutputPath; load.RenderedExtensions = renderedExtensions; load.DocumentsPath = config.DocumentsPath; load.RootUrl = config.RootUrl; load.ApplicationUrl = config.Url; documents = await load.ExecuteAsync(); } // Load files. IEnumerable <StaticFile> files; { var load = new LoadFilesCommand(); load.OutputPath = config.OutputPath; load.FilesPath = config.FilesPath; load.RootUrl = config.RootUrl; load.Url = config.Url; files = load.Execute(); } // Load layouts. IEnumerable <LayoutFile> layouts; { var load = new LoadLayoutsCommand(); load.LayoutsPath = config.LayoutsPath; layouts = await load.ExecuteAsync(); } site = new Site(config, documents, files, layouts); } Statistics.Current.SiteFiles = site.Documents.Count + site.Files.Count + site.Layouts.Count; return(site); }
public void CanGetDefaultUrlFromData() { var command = new LoadSiteConfigCommand() { ConfigPath = "data\\site.config" }; var config = command.ExecuteAsync().Result; var site = new Site(config, Enumerable.Empty <DocumentFile>(), Enumerable.Empty <StaticFile>(), Enumerable.Empty <LayoutFile>()); var data = site.GetAsDynamic(); Assert.Equal("/blog/", data.Url); }
public void CanGetTitle() { var command = new LoadSiteConfigCommand() { ConfigPath = "data\\site.config" }; var config = command.ExecuteAsync().Result; var site = new Site(config, Enumerable.Empty <DocumentFile>(), Enumerable.Empty <StaticFile>(), Enumerable.Empty <LayoutFile>()); var data = site.GetAsDynamic(); Assert.Equal("Test Blog.", (string)data.Title); }
public void CanLoadSiteConfig() { //TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"); var dataFolder = Path.GetFullPath(@"data\"); var command = new LoadSiteConfigCommand() { ConfigPath = dataFolder + "site.config" }; var config = command.ExecuteAsync().Result; Assert.Empty(config.SubsiteConfigs); Assert.Equal(dataFolder + @"build\here\", config.OutputPath); //Assert.Equal(tzi, config.TimeZone); }
public void CanLoadSiteConfigWithSubsites() { TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"); var dataFolder = Path.GetFullPath(@"data\"); var command = new LoadSiteConfigCommand() { ConfigPath = dataFolder + "parent.config" }; var config = command.ExecuteAsync().Result; Assert.Equal(dataFolder + @"parent_build\", config.OutputPath); Assert.NotEmpty(config.SubsiteConfigs); Assert.Equal(1, config.SubsiteConfigs.Length); foreach (var subsite in config.SubsiteConfigs) { Assert.Equal(config, subsite.Parent); } }