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()); } }
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()); } }
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()); }
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()); }
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()); }
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()); }
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()); }
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()); }
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()); }
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; } } } }
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; } }
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; } }
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(); } }
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(); } }
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(); } }
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; } }
public override void SetSnowSettings(SnowSettings defaults) { base.SetSnowSettings(defaults); Layout = defaults.DefaultPageLayout; }
protected abstract void Impl(SnowyData snowyData, SnowSettings settings);
protected override void Impl(SnowyData snowyData, SnowSettings settings) { TestModule.Published = Published.Draft; base.Impl(snowyData, settings); }
internal List <Post> GetPostsForAtom(IList <Post> files, SnowSettings settings) { return(files.Where(ShouldProcess.Feed).Take(settings.FeedSize).ToList()); }
public abstract void Process(SnowyData snowyData, SnowSettings settings);
public void SetSnowSettings(SnowSettings defaults) { Author = defaults.Author; Email = defaults.Email; Layout = defaults.DefaultPostLayout; }
public void SetSnowSettings(SnowSettings defaults) { Author = defaults.Author; Email = defaults.Email; }