Exemple #1
0
        public static void Generate(GeneratorContext context)
        {
            LoadData(context.Site);

            //Read templates
            var siteIndexTemplate = new SiteIndexTemplate(context);
            var indexTemplate     = new IndexTemplate(context);

            //Clean web target
            FileManager.Clean(context.Site.WebPath);
            //Copy static: Done in calling bash script
            FileManager.Clone(context.Site.StaticPath, context.Site.WebPath);

            //Generate news
            siteIndexTemplate["site:news"] = GenerateNews(context.Site);
            indexTemplate["site:news"]     = GenerateNews(context.Site);

            var pageTemplate = new PageTemplate(context);
            var postTemplate = new PostTemplate(context);

            //Generate all files
            GenerateIndex(siteIndexTemplate, context);
            GenerateFeed(context);
            foreach (Page p in context.Site.Pages)
            {
                GeneratePage(context.Site, p, pageTemplate, indexTemplate);
            }
            foreach (Post p in context.Site.Posts)
            {
                GeneratePost(context.Site, p, postTemplate, indexTemplate);
            }
            GenerateNewPostPageTemplate(context.Site);

            Compressor.CompressDirectoryRecursive(context.Site.WebPath);
        }
Exemple #2
0
        private void CreateIndexFile()
        {
            ExecuteOnStepMessage(StepInput.ChmStrings.CreateIndex);
            var indexHtmlFile = Path.Combine(StepInput.TmpPath, StepInput.SDProject.ProjectName.Replace(" ", "") + "-Index.html");
            var template      = new IndexTemplate();

            File.WriteAllText(indexHtmlFile, template.TransformText());
        }
Exemple #3
0
        private async Task HandleIndex(HttpListenerContext context)
        {
            var index = IndexTemplate.Render(_todos.Get());

            context.Response.ContentType = "text/html";
            context.Response.StatusCode  = 200;
            await context.Response.OutputStream.WriteAsync(index, 0, index.Length);
        }
Exemple #4
0
        private async Task HandleIndex(HttpContext context)
        {
            var todos = context.RequestServices.GetService <TodoList>();
            var index = IndexTemplate.Render(todos.Get());

            context.Response.ContentType = "text/html";
            context.Response.StatusCode  = 200;
            await context.Response.Body.WriteAsync(index, 0, index.Length);
        }
        public void IndexView_Template_Test()
        {
            var template = new IndexTemplate(new EntityInfo()
            {
                Id = _entityId
            }, ApplicationId);
            var output = template.TransformText();

            Assert.NotNull(output);
            Assert.NotEmpty(output);
            Assert.Contains($"@model IEnumerable<{ApplicationId}.Backend.DataModels.{_entityId}>", output);
        }
Exemple #6
0
        static void GeneratePost(Site site, Post p, PostTemplate postTemplate, IndexTemplate indexTemplate)
        {
            string dirPath  = Path.Combine(site.WebPath, p.Path);
            string htmlPath = Path.Combine(dirPath, "index.html");

            Directory.CreateDirectory(dirPath);
            if (Directory.Exists(p.SourceDir))
            {
                FileManager.Clone(p.SourceDir, dirPath);
            }

            var inst = indexTemplate.Create(site);

            inst["title"]    = p.Title;
            inst["tabs"]     = GenerateTabs(site, null, p);
            inst["contents"] = postTemplate.Generate(site, p);
            inst.Write(htmlPath);
        }
Exemple #7
0
        static void GenerateIndex(IndexTemplate template, Site site)
        {
            var indexInstance = template.Create(site);

            if (site.GetPage("index") != null)
            {
                return;
            }

            var compactPostTemplate = new CompactPostTemplate(site);

            indexInstance["title"]    = site.Title;
            indexInstance["tabs"]     = GenerateTabs(site, null, null);
            indexInstance["contents"] = new Html();
            foreach (Post p in site.Posts)
            {
                indexInstance["contents"] += compactPostTemplate.Generate(site, p);
            }
            indexInstance.Write(Path.Combine(site.WebPath, "index.html"));
        }
        private void TransformViews(SmartAppInfo manifest)
        {
            var enabledEntities = manifest.DataModel.Entities.Where(e => !e.IsAbstract);

            foreach (var entity in enabledEntities)
            {
                var applicationId = manifest.Id;

                var createTemplate = new CreateTemplate(entity, applicationId);
                var editTemplate   = new EditTemplate(entity, applicationId);
                var detailTemplate = new DetailsTemplate(entity, applicationId);
                var deleteTemplate = new DeleteTemplate(entity, applicationId);
                var indexTemplate  = new IndexTemplate(entity, applicationId);

                _writingService.WriteFile(Path.Combine(_context.BasePath, createTemplate.OutputPath, entity.Id, "Create.cshtml"), createTemplate.TransformText());
                _writingService.WriteFile(Path.Combine(_context.BasePath, editTemplate.OutputPath, entity.Id, "Edit.cshtml"), editTemplate.TransformText());
                _writingService.WriteFile(Path.Combine(_context.BasePath, deleteTemplate.OutputPath, entity.Id, "Delete.cshtml"), deleteTemplate.TransformText());
                _writingService.WriteFile(Path.Combine(_context.BasePath, detailTemplate.OutputPath, entity.Id, "Details.cshtml"), detailTemplate.TransformText());
                _writingService.WriteFile(Path.Combine(_context.BasePath, indexTemplate.OutputPath, entity.Id, "Index.cshtml"), indexTemplate.TransformText());
            }
        }
Exemple #9
0
        static void GeneratePost(Site site, Post p, PostTemplate postTemplate, IndexTemplate indexTemplate)
        {
            string dirPath  = Path.Combine(site.WebPath, p.Path);
            string htmlPath = Path.Combine(dirPath, "index.html");

            Directory.CreateDirectory(dirPath);
            if (Directory.Exists(p.SourceDir))
            {
                FileManager.Clone(p.SourceDir, dirPath);
            }

            var inst = indexTemplate.Create(site);

            inst["title"]    = p.Title;
            inst["author"]   = p.Author;
            inst["date"]     = p.Date.ToString("yyyy-MM-dd hh:mm:ss");
            inst["tabs"]     = GenerateTabs(site, null, p);
            inst["contents"] = postTemplate.Generate(site, p);
            inst["metatags"] = Html.Raw(p.MetaTags.ToHtml(inst));
            inst.Write(htmlPath);
        }
Exemple #10
0
        static void GeneratePage(Site site, Page p, PageTemplate pageTemplate, IndexTemplate indexTemplate)
        {
            string dirPath = Path.Combine(site.WebPath, p.Path);

            if (p.Path == "index/")
            {
                dirPath = site.WebPath;
            }
            Directory.CreateDirectory(dirPath);
            if (Directory.Exists(p.SourceDir))
            {
                FileManager.Clone(p.SourceDir, dirPath);
            }

            var indexInstance = indexTemplate.Create(site);

            indexInstance["title"]    = p.Title;
            indexInstance["tabs"]     = GenerateTabs(site, p, null);
            indexInstance["contents"] = pageTemplate.Generate(site, p);
            indexInstance.Write(Path.Combine(dirPath, "index.html"));
        }
Exemple #11
0
        public ActionResult Index()
        {
            var html = IndexTemplate.Render(order);

            return(Content(html));
        }
        public void IndexView_Template_NullParameter_Test()
        {
            var template = new IndexTemplate(null, null);

            Assert.Throws <ArgumentNullException>(() => template.TransformText());
        }
 public virtual void Visit(IndexTemplate indexTemplate)
 {
 }
 public virtual void Leave(IndexTemplate indexTemplate)
 {
 }
Exemple #15
0
 public override void Visit(IndexTemplate indexTemplate) => Visit(indexTemplate);