/// <summary> /// Constructs HTML for the given parse rule by using values in the supplied token /// </summary> /// <param name="token">token to get values from</param> /// <returns>part html</returns> public virtual string ConstructHtml(Token token) { if (token.HasProperty(PropertyName)) return String.Format("{0}='{1}'", PropertyNameReplacement, token[PropertyName]); return String.Empty; }
/// <summary> /// Parses Token properties into HTML attributes /// </summary> /// <param name="token">token to parse</param> /// <param name="globalPropertyParseRules">global property parse rules</param> /// <returns>HTML for attributes to add to element</returns> private string ParsePropertiesInAttributes(Token token, IEnumerable<PropertyParseRule> globalPropertyParseRules) { var propertiesHtmlBuilder = new StringBuilder(); List<PropertyParseRule> propertyParseRules = new List<PropertyParseRule>(_localPropertyParseRules); foreach (var ppr in globalPropertyParseRules) { if (propertyParseRules.Count(ppr2 => ppr2.PropertyName == ppr.PropertyName) == 0) propertyParseRules.Add(ppr); } foreach (PropertyParseRule ppr in propertyParseRules) { if (token.HasProperty(ppr.PropertyName)) propertiesHtmlBuilder.AppendFormat(" {0}", ppr.ConstructHtml(token)); } return propertiesHtmlBuilder.ToString(); }