private string RenderContentForExtension(SourceFile source, string content, string extension, DocumentFile contextDocument, string documentContent, LayoutFile contextLayout)
        {
            RenderingEngine engine;

            if (this.Transaction.Engines.TryGetValue(extension, out engine))
            {
                var backupContent = contextDocument.Content;

                try
                {
                    contextDocument.Content = documentContent;

                    dynamic data = new DynamicRenderDocument(contextDocument, contextLayout, this.Transaction.Site);

                    var result = engine.Render(source, content, data);

                    return result;
                }
                finally
                {
                    contextDocument.Content = backupContent;
                }
            }
            else
            {
                Console.WriteLine("Cannot find a rendering engine for extension: {0}", extension);
                return null;
            }
        }
        public string Render(SourceFile sourceFile, string template, object data)
        {
            var path = sourceFile.SourcePath;

            lock (_renderLock)
            {
                try
                {
                    Func<object, string> compiledTemplate;

                    if (!this.compiledTemplates.TryGetValue(path, out compiledTemplate))
                    {
                        compiledTemplate = Handlebars.Compile(path, template);

                        this.compiledTemplates.Add(path, compiledTemplate);
                    }

                    var result = compiledTemplate(data);

                    return result;
                }
                catch (Exception e)
                {
                    Console.Error.WriteLine("Handelbars failure while processing: {0}, error: {1}", path, e.Message);
                }

                return null;
            }
        }
Exemple #3
0
        public SourceFile AddContributingFile(SourceFile contributor)
        {
            if (contributor != null && contributor != this)
            {
                this.ContributingFiles.Add(contributor);
            }

            return this;
        }
        public string Render(SourceFile sourceFile, string template, object data)
        {
            lock (_renderLock)
            {
                var result = Less.Parse(template);

                return result;
            }
        }
Exemple #5
0
        public string Render(SourceFile sourceFile, string template, object data)
        {
            var pipeline = new MarkdownPipelineBuilder()
                .UseAdvancedExtensions()
                .Build();

            var result = Markdown.ToHtml(template, pipeline);

            return result.Trim();
        }
Exemple #6
0
 protected SourceFile(SourceFile original)
 {
     this.Date = original.Date;
     this.FileName = original.FileName;
     this.Name = original.Name;
     this.Modified = original.Modified;
     this.Extension = original.Extension;
     this.SourcePath = original.SourcePath;
     this.SourceRelativeFolder = original.SourceRelativeFolder;
     this.SourceRelativePath = original.SourceRelativePath;
 }
Exemple #7
0
        public string Render(SourceFile sourceFile, string template, object data)
        {
            if (this.Renderer == null)
            {
                lock (_sync)
                {
                    if (this.Renderer == null)
                    {
                        this.Renderer = Activator.CreateInstance(this.Type) as IRenderer;
                    }
                }

                if (this.Renderer == null)
                {
                    throw new InvalidCastException($"The render of type '{this.Type}' does not implement IRenderer. Ensure your renderer inherits from IRenderer.");
                }
            }

            return this.Renderer.Render(sourceFile, template, data);
        }
        public string Render(SourceFile sourceFile, string template, dynamic data)
        {
            var document = data.Document;

            var content = String.Empty;

            lock (_renderLock)
            {
                try
                {
                    foreach (var keyedToken in JObject.Parse(template))
                    {
                        var token = keyedToken.Value;

                        if (keyedToken.Key.Equals("Content", StringComparison.OrdinalIgnoreCase))
                        {
                            content = (string)token;
                        }
                        else if (token.Type == JTokenType.Array || token.Type == JTokenType.Object)
                        {
                            document[keyedToken.Key] = CaseInsensitiveExpando.FromJToken(token);
                        }
                        else
                        {
                            document[keyedToken.Key] = (string)token;
                        }
                    }
                }
                catch (JsonReaderException e)
                {
                    Console.Error.WriteLine("{0}({1},{2}): error JSON1 : {3}", sourceFile.SourcePath, e.LineNumber, e.LinePosition, e.Message);
                    return null;
                }
            }

            return content;
        }
        public string Render(SourceFile sourceFile, string template, object data)
        {
            var result = Nustache.Core.Render.StringToString(template, data);

            return result;
        }
Exemple #10
0
        private string RenderContentForExtension(SourceFile source, string content, string extension, DocumentFile contextDocument, string documentContent, LayoutFile contextLayout)
        {
            RenderingEngine engine;

            if (this.Transaction.Engines.TryGetValue(extension, out engine))
            {
                var backupContent = contextDocument.Content;

                try
                {
                    contextDocument.Content = documentContent;

                    var data = new DynamicRenderDocument(contextDocument, contextLayout, this.Transaction.Site);

                    var result = engine.Render(source, content, data);

                    return result;
                }
                catch (RuntimeBinderException e)
                {
                    Console.WriteLine("{0} : error TS0101: Internal failure while processing template. This almost always indicates a failure in a Razor template @Include() by this file. Additional detail: {1}", source.SourcePath, e.Message);
                    return String.Empty;
                }
                finally
                {
                    contextDocument.Content = backupContent;
                }
            }
            else
            {
                Console.WriteLine("Cannot find a rendering engine for extension: {0}", extension);
                return null;
            }
        }
Exemple #11
0
 protected SourceFile(SourceFile original) :
     base(original)
 {
 }
 public string Render(SourceFile sourceFile, string template, object data)
 {
     var result = CommonMarkConverter.Convert(template);
     
     return result.Trim();
 }