Example #1
0
        private void ConvertToHtml(BlogPostModel blogPost)
        {
            string layout = File.ReadAllText(Path.Join(topLevelConfig.Config.LayoutsDir, blogPost.Layout + ".hbs"));

            string result = handlebarsConverter.Convert(layout, new Dictionary <string, object>
            {
                { "post", blogPost.ToDictionary(topLevelConfig.Config) }
            });

            foreach (string postCategory in blogPost.Categories)
            {
                string languagePrefix = Config.MultipleLanguages switch
                {
                    true => blogPost.Language,
                    false => ""
                };

                string outputDir = Path.Join(
                    Config.OutputDir, languagePrefix, Slugify(postCategory),
                    blogPost.Date.Year.ToString(), blogPost.Date.Month.ToString(), blogPost.Date.Day.ToString(),
                    Slugify(blogPost.Title)
                    );

                string outputPath = Path.Join(outputDir, "index.html");

                Directory.CreateDirectory(outputDir);
                File.WriteAllText(outputPath, result);
            }
        }
    }