Exemple #1
0
        public static void Render(ScriptObject model, List <ScriptObject> posts, int totalPages, string outputDir, int PageSize)
        {
            var store = Engine.App.Store;

            for (int i = 0; i < totalPages; i++)
            {
                var currentPage = i + 1;
                var outPath     = outputDir + $"/page/{currentPage}/index.html";

                var curPageModel = model.Clone(true) as ScriptObject;
                var template     = curPageModel.GetSafeValue <string>("_rawText");
                var content      = renderRaw(template, posts, curPageModel, currentPage, PageSize);
                curPageModel.Add("_content", content);

                var layout          = curPageModel.GetSafeValue <string>("layout");
                var layoutPageModel = store.GetLayoutFromCache(layout);
                var finalPostHtml   = LayoutRenderer.Render(curPageModel, layoutPageModel);
                Directory.CreateDirectory(Path.GetDirectoryName(outPath));
                File.WriteAllText(outPath, finalPostHtml);
            }
            File.Copy(outputDir + "/page/1/index.html",
                      outputDir + "/index.html", true);
        }