コード例 #1
0
ファイル: TextBlock.cs プロジェクト: lonelyong/ServiceStack
        public override void Write(MarkdownViewBase instance, TextWriter textWriter, Dictionary <string, object> scopeArgs)
        {
            var model = GetModel(scopeArgs);
            var memberExprEnumerator = GetMemberExprEnumerator(model);

            if (IsNested)
            {
                //Write Markdown
                foreach (var item in memberExprEnumerator)
                {
                    scopeArgs[this.EnumeratorName] = item;
                    base.Write(instance, textWriter, scopeArgs);
                }
            }
            else
            {
                //Buffer Markdown output before converting and writing HTML
                var sw = StringWriterCacheAlt.Allocate();
                foreach (var item in memberExprEnumerator)
                {
                    scopeArgs[this.EnumeratorName] = item;
                    base.Write(instance, sw, scopeArgs);
                }

                var markdown       = StringWriterCacheAlt.ReturnAndFree(sw);
                var renderedMarkup = Transform(markdown);
                textWriter.Write(renderedMarkup);
            }
        }
コード例 #2
0
ファイル: TextBlock.cs プロジェクト: lonelyong/ServiceStack
        protected void WriteStatement(MarkdownViewBase instance, TextWriter textWriter, Dictionary <string, object> scopeArgs)
        {
            if (IsNested)
            {
                //Write Markdown
                WriteInternal(instance, textWriter, scopeArgs);
            }
            else
            {
                //Buffer Markdown output before converting and writing HTML
                var sw = StringWriterCacheAlt.Allocate();
                WriteInternal(instance, sw, scopeArgs);

                var markdown = StringWriterCacheAlt.ReturnAndFree(sw);
                var html     = Transform(markdown);
                textWriter.Write(html);
            }
        }