Beispiel #1
0
        public string Render(string templateFile, ViewModel viewmodel)
        {
            string fName = Path.GetFileName(templateFile);
            string fDir = Path.GetDirectoryName(templateFile);

            var descriptor = new SparkViewDescriptor();
            descriptor.AddTemplate(fName);
            descriptor.TargetNamespace = "templates";

            this.engine.ViewFolder = new FileSystemViewFolder(fDir);

            var view = (MarkdownPageTemplate)this.engine.CreateInstance(descriptor);

            StringWriter writer = new StringWriter();

            try
            {
                view.Model = viewmodel;
                view.RenderView(writer);
                return writer.ToString();
            }
            finally
            {
                this.engine.ReleaseInstance(view);
            }
        }
        protected override string InternalHandler(HttpContext context, TargetSite target, string targetRootDir, string requestedPath, ViewModel vm)
        {
            string sitemapPath;
            if (target.HasCustomLayout)
            {
                sitemapPath = Path.Combine(targetRootDir, Constants.LayoutFolderName, Constants.SitemapFileName);
            }
            else
            {
                sitemapPath = Path.Combine(Session.GetInstance().WebRoot, Constants.LayoutFolderName, Constants.SitemapFileName);
            }

            if (!File.Exists(sitemapPath))
            {
                throw new InvalidOperationException(String.Format("Sitemap template file for '{0}' is missing. It should be at '{1}'", target.Name, sitemapPath));
            }

            vm.Sitemap = this.BuildSitemap(targetRootDir);

            SparkRenderer renderer = new SparkRenderer();
            string sitemapOutput = renderer.Render(sitemapPath, vm);

            vm.MarkdownHtml = sitemapOutput;
            string output = renderer.Render(target.TemplateFile, vm);

            return output;
        }
        protected override string InternalHandler(HttpContext context, TargetSite target, string targetRootDir, string requestedPath, ViewModel vm)
        {
            string mdFilePath = String.Format("{0}.md", Path.Combine(targetRootDir, requestedPath));

            vm.MarkdownHtml = MarkdownHelper.ProcessMarkdown(MarkdownHelper.GetMarkdown(mdFilePath));

            SparkRenderer renderer = new SparkRenderer();
            string output = renderer.Render(target.TemplateFile, vm);

            return output;
        }
Beispiel #4
0
 protected abstract string InternalHandler(HttpContext context, TargetSite target, string targetRootDir, string requestedPath, ViewModel vm);