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(); }
/// <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) { }