Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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);
            }
        }