Exemplo n.º 1
0
 public WikiRenderer(IPluginFinder pluginFinder, IWebContext webContext)
 {
     Renderers["Comment"]       = new CommentRenderer();
     Renderers["UserInfo"]      = new UserInfoRenderer();
     Renderers["InternalLink"]  = new InternalLinkRenderer(webContext);
     Renderers["ExternalLink"]  = new ExternalLinkRenderer();
     Renderers["Text"]          = FallbackRenderer = new TextRenderer();
     Renderers["Template"]      = new TemplateRenderer(pluginFinder.GetPlugins <ITemplateRenderer>());
     Renderers["Heading"]       = new HeadingRenderer();
     Renderers["Line"]          = new LineRenderer();
     Renderers["OrderedList"]   = new OrderedListRenderer();
     Renderers["UnorderedList"] = new UnorderedListRenderer();
     Renderers["Format"]        = new FormatRenderer();
 }
Exemplo n.º 2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="FormatPattern"/> class.
 /// </summary>
 /// <param name="format">The format.</param>
 /// <param name="renderers">The renderers.</param>
 internal FormatPattern(string format, FormatRenderer[] renderers)
 {
     _format = format;
     _renderers = renderers;
 }
 internal TruncateTransformer(FormatRenderer renderer)
     : base(renderer)
 {
     this.Length = 0;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="FormatTransformer"/> class.
 /// </summary>
 /// <param name="renderer">The renderer.</param>
 protected FormatTransformer(FormatRenderer renderer)
 {
     _renderer = renderer;
 }
        private void MapArguments(FormatRenderer renderer, IEnumerable<FormatArgumentNode> arguments)
        {
            if (!arguments.Any())
            {
                return;
            }

            // Get identifier to property mappings.
            var mappings = new Dictionary<string, PropertyInfo>(StringComparer.OrdinalIgnoreCase);
            foreach (PropertyInfo property in renderer.GetType().GetPublicProperties())
            {
                if (!mappings.ContainsKey(property.Name))
                {
                    mappings.Add(property.Name, property);
                }
            }

            // Iterate through all keys in the argument dictionary.
            foreach (FormatArgumentNode argument in arguments)
            {
                // Got a property mapping?
                if (mappings.ContainsKey(argument.Name))
                {
                    // Get the property's type.
                    Type propertyType = mappings[argument.Name].PropertyType;

                    // Get the type converter.
                    var typeConverter = TypeDescriptor.GetConverter(propertyType);
                    if (typeConverter != null && typeConverter.CanConvertFrom(typeof(string)))
                    {
                        object value = typeConverter.ConvertFromInvariantString(argument.Value);
                        mappings[argument.Name].SetValue(renderer, value, null);
                    }
                }
            }
        }
 internal Rot13Transformer(FormatRenderer renderer)
     : base(renderer)
 {
 }
 internal LowercaseTransformer(FormatRenderer renderer)
     : base(renderer)
 {
 }