protected override void Impl(SnowyData snowyData, SnowSettings settings)
        {
            foreach (var tempCategory in TestModule.Categories)
            {
                var category = tempCategory;

                var posts = snowyData.Files.Where(x => x.Categories.Contains(category.Name));

                TestModule.Category        = category;
                TestModule.PostsInCategory = posts.ToList();

                var result = snowyData.Browser.Post("/static");

                result.ThrowIfNotSuccessful(SourceFile);

                var outputFolder = Path.Combine(snowyData.Settings.Output, "category", category.Url);

                if (!Directory.Exists(outputFolder))
                {
                    Directory.CreateDirectory(outputFolder);
                }

                File.WriteAllText(Path.Combine(outputFolder, "index.html"), result.Body.AsString());
            }
        }
示例#2
0
        public void Process(SnowyData snowyData, SnowSettings settings)
        {
            ParseDirectories(snowyData);
            TestModule.StaticFile = SourceFile;

            Impl(snowyData, settings);
        }
        protected override void Impl(SnowyData snowyData, SnowSettings settings)
        {
            foreach (var tempCategory in TestModule.Categories)
            {
                var category = tempCategory;

                var posts = GetPosts(snowyData.Files, category);

                TestModule.Category = category;
                TestModule.GeneratedUrl = settings.SiteUrl + "/category/" + category.Url + "/";
                TestModule.PostsInCategory = posts.ToList();

                var result = snowyData.Browser.Post("/static");

                result.ThrowIfNotSuccessful(SourceFile);

                var outputFolder = Path.Combine(snowyData.Settings.Output, "category", category.Url);

                if (!Directory.Exists(outputFolder))
                {
                    Directory.CreateDirectory(outputFolder);
                }

                File.WriteAllText(Path.Combine(outputFolder, "index.html"), result.Body.AsString());
            }
        }
示例#4
0
        public void Process(SnowyData snowyData, SnowSettings settings)
        {
            ParseDirectories(snowyData);
            TestModule.StaticFile = SourceFile;

            Impl(snowyData, settings);
        }
        public override void Process(SnowyData snowyData, SnowSettings settings)
        {
            foreach (var tempCategory in TestModule.Categories)
            {
                var category = tempCategory;

                var posts = snowyData.Files.Where(x => x.Categories.Contains(category.Name));

                TestModule.Category = category;
                TestModule.PostsInCategory = posts.ToList();
                
                var result = snowyData.Browser.Post("/static");

                result.ThrowIfNotSuccessful(snowyData.File.File);

                var outputFolder = Path.Combine(snowyData.Settings.Output, "category", category.Url);

                if (!Directory.Exists(outputFolder))
                {
                    Directory.CreateDirectory(outputFolder);
                }

                File.WriteAllText(Path.Combine(outputFolder, "index.html"), result.Body.AsString());
            }
        }
        protected override void Impl(SnowyData snowyData, SnowSettings settings)
        {
            var result = snowyData.Browser.Post("/static");

            result.ThrowIfNotSuccessful(SourceFile);

            if (!Directory.Exists(Destination))
            {
                Directory.CreateDirectory(Destination);
            }

            File.WriteAllText(Path.Combine(Destination, "index.html"), result.Body.AsString());
        }
示例#7
0
        protected override void Impl(SnowyData snowyData, SnowSettings settings)
        {
            var result = snowyData.Browser.Post("/sitemap");

            var outputFolder = snowyData.Settings.Output;

            if (!Directory.Exists(outputFolder))
            {
                Directory.CreateDirectory(outputFolder);
            }

            File.WriteAllText(Path.Combine(outputFolder, SourceFile), result.Body.AsString());
        }
示例#8
0
        public override void Process(SnowyData snowyData, SnowSettings settings)
        {
            var result = snowyData.Browser.Post("/sitemap");

            var outputFolder = snowyData.Settings.Output;

            if (!Directory.Exists(outputFolder))
            {
                Directory.CreateDirectory(outputFolder);
            }

            File.WriteAllText(Path.Combine(outputFolder, snowyData.File.File), result.Body.AsString());
        }
        public static void SetPostUrl(this IEnumerable<Post> posts, SnowSettings settings)
        {
            foreach (var postHeader in posts)
            {
                var urlFormat = "/" + settings.UrlFormat.Trim('/') + "/";

                foreach (var s in UrlFormatParser.OrderBy(x => x.Key).Select(x => x.Value))
                {
                    urlFormat = s.Invoke(urlFormat, postHeader.Date, postHeader.Url);
                }

                postHeader.Url = urlFormat;
            }
        }
        public static void SetPostUrl(this IEnumerable <Post> posts, SnowSettings settings)
        {
            foreach (var postHeader in posts)
            {
                var urlFormat = "/" + settings.UrlFormat.Trim('/') + "/";

                foreach (var s in UrlFormatParser.OrderBy(x => x.Key).Select(x => x.Value))
                {
                    urlFormat = s.Invoke(urlFormat, postHeader.Date, postHeader.Url);
                }

                postHeader.Url = urlFormat;
            }
        }
        public override void Process(SnowyData snowyData, SnowSettings settings)
        {
            var result = snowyData.Browser.Post("/static");

            result.ThrowIfNotSuccessful(snowyData.File.File);

            var outputFolder = Path.Combine(snowyData.Settings.Output, snowyData.File.File.Substring(0, snowyData.File.File.IndexOf('.')));

            if (!Directory.Exists(outputFolder))
            {
                Directory.CreateDirectory(outputFolder);
            }

            File.WriteAllText(Path.Combine(outputFolder, "index.html"), result.Body.AsString());
        }
示例#12
0
        public override void Process(SnowyData snowyData, SnowSettings settings)
        {
            var result = snowyData.Browser.Post("/static");

            result.ThrowIfNotSuccessful(snowyData.File.File);

            var outputFolder = Path.Combine(snowyData.Settings.Output, snowyData.File.File.Substring(0, snowyData.File.File.IndexOf('.')));

            if (!Directory.Exists(outputFolder))
            {
                Directory.CreateDirectory(outputFolder);
            }

            File.WriteAllText(Path.Combine(outputFolder, "index.html"), result.Body.AsString());
        }
        protected override void Impl(SnowyData snowyData, SnowSettings settings)
        {
            TestModule.GeneratedUrl = settings.SiteUrl + "/" + DestinationName.Trim(new[] { '/' }) + "/";

            var result = snowyData.Browser.Post("/static");

            result.ThrowIfNotSuccessful(SourceFile);

            if (!Directory.Exists(Destination))
            {
                Directory.CreateDirectory(Destination);
            }

            File.WriteAllText(Path.Combine(Destination, "index.html"), result.Body.AsString());
        }
示例#14
0
        protected override void Impl(SnowyData snowyData, SnowSettings settings)
        {
            TestModule.GeneratedUrl = settings.SiteUrl + "/" + DestinationName.Trim(new[] { '/' }) + "/";

            var result = snowyData.Browser.Post("/static");

            result.ThrowIfNotSuccessful(SourceFile);

            if (!Directory.Exists(Destination))
            {
                Directory.CreateDirectory(Destination);
            }

            File.WriteAllText(Path.Combine(Destination, "index.html"), result.Body.AsString());
        }
示例#15
0
        protected override void Impl(SnowyData snowyData, SnowSettings settings)
        {
            var postsForRss = GetPostsForRss(snowyData.Files);

            TestModule.PostsPaged = postsForRss;

            var result = snowyData.Browser.Post("/rss");

            var outputFolder = snowyData.Settings.Output;

            if (!Directory.Exists(outputFolder))
            {
                Directory.CreateDirectory(outputFolder);
            }

            File.WriteAllText(Path.Combine(outputFolder, SourceFile), result.Body.AsString());
        }
示例#16
0
        public override void Process(SnowyData snowyData, SnowSettings settings)
        {
            var postsForRss = snowyData.Files.Take(10).ToList();
            TestModule.PostsPaged = postsForRss;
            TestModule.StaticFile = snowyData.File;

            var result = snowyData.Browser.Post("/rss");
            
            var outputFolder = snowyData.Settings.Output;

            if (!Directory.Exists(outputFolder))
            {
                Directory.CreateDirectory(outputFolder);
            }
            
            File.WriteAllText(Path.Combine(outputFolder, snowyData.File.File), result.Body.AsString());
        }
示例#17
0
        protected override void Impl(SnowyData snowyData, SnowSettings settings)
        {
            var postsForAtom = GetPostsForAtom(snowyData.Files);

            TestModule.PostsPaged = postsForAtom;

            var result = snowyData.Browser.Post("/atom");

            var outputFolder = snowyData.Settings.PostsOutput;

            if (!Directory.Exists(outputFolder))
            {
                Directory.CreateDirectory(outputFolder);
            }

            File.WriteAllText(Path.Combine(outputFolder, SourceFile), result.Body.AsString());
        }
示例#18
0
        public override void Process(SnowyData snowyData, SnowSettings settings)
        {
            var postsForRss = snowyData.Files.Take(10).ToList();

            TestModule.PostsPaged = postsForRss;
            TestModule.StaticFile = snowyData.File;

            var result = snowyData.Browser.Post("/rss");

            var outputFolder = snowyData.Settings.Output;

            if (!Directory.Exists(outputFolder))
            {
                Directory.CreateDirectory(outputFolder);
            }

            File.WriteAllText(Path.Combine(outputFolder, snowyData.File.File), result.Body.AsString());
        }
示例#19
0
        public PostHeaderSettings(Dictionary<string, object> settings, SnowSettings defaults)
        {
            Author = defaults.Author;
            Email = defaults.Email;

            Categories = Enumerable.Empty<string>();

            foreach (var setting in settings)
            {
                switch (setting.Key.ToLower())
                {
                    case "categories":
                    case "category":
                    {
                        var categories = ((string) setting.Value).Split(
                            new[] {","},
                            StringSplitOptions.RemoveEmptyEntries);

                        Categories = categories.Select(x => x.Trim());
                        break;
                    }
                    case "title":
                    {
                        Title = (string) setting.Value;
                        break;
                    }
                    case "layout":
                    {
                        Layout = (string) setting.Value;
                        break;
                    }
                    case "author":
                    {
                        Author = (string)setting.Value;
                        break;
                    }
                    case "email":
                    {
                        Email = (string)setting.Value;
                        break;
                    }
                }
            }
        }
示例#20
0
        public static void SetPostUrl(this IEnumerable <Post> posts, SnowSettings settings)
        {
            foreach (var postHeader in posts)
            {
                var urlFormat = "/" + settings.UrlFormat.Trim('/').AppendSlashIfNecessary();

                if (postHeader.Published == Published.Draft)
                {
                    urlFormat = "/drafts" + urlFormat;
                }

                foreach (var s in UrlFormatParser.OrderBy(x => x.Key).Select(x => x.Value))
                {
                    urlFormat = s.Invoke(urlFormat, postHeader);
                }

                postHeader.Url = urlFormat;
            }
        }
示例#21
0
        public static void SetPostUrl(this IEnumerable<Post> posts, SnowSettings settings)
        {
            foreach (var postHeader in posts)
            {
                var urlFormat = "/" + settings.UrlFormat.Trim('/').AppendSlashIfNecessary();

                if (postHeader.Published == Published.Draft)
                {
                    urlFormat = "/drafts" + urlFormat;
                }

                foreach (var s in UrlFormatParser.OrderBy(x => x.Key).Select(x => x.Value))
                {
                    urlFormat = s.Invoke(urlFormat, postHeader);
                }

                postHeader.Url = urlFormat;
            }
        }
示例#22
0
        protected override void Impl(SnowyData snowyData, SnowSettings settings)
        {

            var filteredPosts = snowyData.Files.Where(ShouldProcess).ToList();

            const int pageSize = 10;
            var skip = 0;
            var iteration = 1;
            var currentIteration = filteredPosts.Skip(skip).Take(pageSize).ToList();
            var totalPages = (int)Math.Ceiling((double)filteredPosts.Count / pageSize);

            TestModule.TotalPages = totalPages;

            while (currentIteration.Any())
            {
                var folder = skip <= 1 ? "" : "page" + iteration;

                TestModule.PostsPaged = currentIteration.ToList();
                TestModule.PageNumber = iteration;
                TestModule.HasNextPage = iteration < totalPages;
                TestModule.HasPreviousPage = iteration > 1 && totalPages > 1;
                TestModule.GeneratedUrl = (settings.SiteUrl + "/" + folder).TrimEnd('/') + "/";

                var result = snowyData.Browser.Post("/static");

                result.ThrowIfNotSuccessful(snowyData.File.File);

                var outputFolder = Path.Combine(snowyData.Settings.Output, folder);

                if (!Directory.Exists(outputFolder))
                {
                    Directory.CreateDirectory(outputFolder);
                }

                File.WriteAllText(Path.Combine(outputFolder, "index.html"), result.Body.AsString());

                skip += pageSize;
                iteration++;
                currentIteration = filteredPosts.Skip(skip).Take(pageSize).ToList();
            }
        }
示例#23
0
        protected override void Impl(SnowyData snowyData, SnowSettings settings)
        {
            var filteredPosts = snowyData.Files.Where(ShouldProcess).ToList();

            var pageSize         = settings.PageSize;
            var skip             = 0;
            var iteration        = 1;
            var currentIteration = filteredPosts.Skip(skip).Take(pageSize).ToList();
            var totalPages       = (int)Math.Ceiling((double)filteredPosts.Count / pageSize);

            TestModule.TotalPages = totalPages;

            while (currentIteration.Any())
            {
                var folder = skip <= 1 ? "" : "page" + iteration;

                TestModule.PostsPaged      = currentIteration.ToList();
                TestModule.PageNumber      = iteration;
                TestModule.HasNextPage     = iteration < totalPages;
                TestModule.HasPreviousPage = iteration > 1 && totalPages > 1;
                TestModule.GeneratedUrl    = (settings.SiteUrl + "/" + folder).TrimEnd('/') + "/";

                var result = snowyData.Browser.Post("/static");

                result.ThrowIfNotSuccessful(snowyData.File.File);

                var outputFolder = Path.Combine(snowyData.Settings.Output, folder);

                if (!Directory.Exists(outputFolder))
                {
                    Directory.CreateDirectory(outputFolder);
                }

                File.WriteAllText(Path.Combine(outputFolder, "index.html"), result.Body.AsString());

                skip += pageSize;
                iteration++;
                currentIteration = filteredPosts.Skip(skip).Take(pageSize).ToList();
            }
        }
示例#24
0
        public override void Process(SnowyData snowyData, SnowSettings settings)
        {
            const int pageSize         = 10;
            var       skip             = 0;
            var       iteration        = 1;
            var       currentIteration = snowyData.Files.Skip(skip).Take(pageSize).ToList();
            var       totalPages       = (int)Math.Ceiling((double)snowyData.Files.Count() / pageSize);

            TestModule.TotalPages = totalPages;

            while (currentIteration.Any())
            {
                TestModule.PostsPaged      = currentIteration.ToList();
                TestModule.PageNumber      = iteration;
                TestModule.HasNextPage     = iteration < totalPages;
                TestModule.HasPreviousPage = iteration > 1 && totalPages > 1;

                var result = snowyData.Browser.Post("/static");

                result.ThrowIfNotSuccessful(snowyData.File.File);

                var folder       = skip <= 1 ? "" : "page" + iteration;
                var outputFolder = Path.Combine(snowyData.Settings.Output, folder);

                if (!Directory.Exists(outputFolder))
                {
                    Directory.CreateDirectory(outputFolder);
                }

                File.WriteAllText(Path.Combine(outputFolder, "index.html"), result.Body.AsString());

                skip += pageSize;
                iteration++;
                currentIteration = snowyData.Files.Skip(skip).Take(pageSize).ToList();
            }
        }
示例#25
0
        public static void SetPostUrl(this IEnumerable <Post> posts, SnowSettings settings)
        {
            foreach (var postHeader in posts)
            {
                if (postHeader.Url != null && postHeader.Url.StartsWith("/"))
                {
                    continue;
                }

                var urlFormat = "/" + settings.UrlFormat.Trim('/') + "/";

                if (postHeader.Published == Published.Draft)
                {
                    urlFormat = "/drafts" + urlFormat;
                }

                foreach (var s in UrlFormatParser.OrderBy(x => x.Key).Select(x => x.Value))
                {
                    urlFormat = s.Invoke(urlFormat, postHeader);
                }

                postHeader.Url = urlFormat;
            }
        }
示例#26
0
 public override void SetSnowSettings(SnowSettings defaults)
 {
   base.SetSnowSettings(defaults);
   Layout = defaults.DefaultPageLayout;
 }
示例#27
0
 protected abstract void Impl(SnowyData snowyData, SnowSettings settings);
示例#28
0
        protected override void Impl(SnowyData snowyData, SnowSettings settings)
        {
            TestModule.Published = Published.Draft;

            base.Impl(snowyData, settings);
        }
示例#29
0
 protected override void Impl(SnowyData snowyData, SnowSettings settings)
 {
     TestModule.Published = Published.Draft;
     
     base.Impl(snowyData, settings);
 }
示例#30
0
 internal List <Post> GetPostsForAtom(IList <Post> files, SnowSettings settings)
 {
     return(files.Where(ShouldProcess.Feed).Take(settings.FeedSize).ToList());
 }
示例#31
0
 public override void SetSnowSettings(SnowSettings defaults)
 {
     base.SetSnowSettings(defaults);
     Layout = defaults.DefaultPageLayout;
 }
示例#32
0
 public abstract void Process(SnowyData snowyData, SnowSettings settings);
示例#33
0
 public void SetSnowSettings(SnowSettings defaults)
 {
     Author = defaults.Author;
     Email  = defaults.Email;
     Layout = defaults.DefaultPostLayout;
 }
示例#34
0
 protected abstract void Impl(SnowyData snowyData, SnowSettings settings);
示例#35
0
 public void SetSnowSettings(SnowSettings defaults)
 {
     Author = defaults.Author;
     Email  = defaults.Email;
 }
示例#36
0
 public void SetSnowSettings(SnowSettings defaults)
 {
     Author = defaults.Author;
     Email = defaults.Email;
     Layout = defaults.DefaultPostLayout;
 }
示例#37
0
 public void SetSnowSettings(SnowSettings defaults)
 {
     Author = defaults.Author;
     Email = defaults.Email;
 }