v0.1 for XNA 3.1
This commit is contained in:
		| @@ -2,6 +2,8 @@ | ||||
| using System.Collections.Generic; | ||||
| using System.Linq; | ||||
| using System.Text; | ||||
| using Microsoft.Xna.Framework.Graphics; | ||||
| using PlanB.Html.Utility; | ||||
|  | ||||
| namespace PlanB.Html.Nodes | ||||
| { | ||||
| @@ -180,7 +182,24 @@ namespace PlanB.Html.Nodes | ||||
|  | ||||
|         public void AddStyle(KeyValuePair<string, string> style) | ||||
|         { | ||||
|             KeyValuePair<string, string> newStyle = new KeyValuePair<string,string>(style.Key.ToLower(), style.Value); | ||||
|             string key = style.Key.ToLower(); | ||||
|             string value = style.Value; | ||||
|  | ||||
|             if (key == "color") | ||||
|             { | ||||
|                 Color color = ColorHelper.FromCss(value); | ||||
|  | ||||
|                 if (color.A == 0xff) | ||||
|                 { | ||||
|                     value = String.Format("rgb({0}, {1}, {2})", color.R, color.G, color.B); | ||||
|                 } | ||||
|                 else | ||||
|                 { | ||||
|                     value = String.Format("rgba({0}, {1}, {2}, {3})", color.R, color.G, color.B, color.A); | ||||
|                 } | ||||
|             } | ||||
|  | ||||
|             KeyValuePair<string, string> newStyle = new KeyValuePair<string, string>(key, value); | ||||
|  | ||||
|             Styles.RemoveAll(i => i.Key == newStyle.Key); | ||||
|             Styles.Add(newStyle); | ||||
|   | ||||
| @@ -103,6 +103,7 @@ | ||||
|     <Compile Include="Tokens\HtmlImgToken.cs" /> | ||||
|     <Compile Include="Tokens\HtmlTextToken.cs" /> | ||||
|     <Compile Include="Tokens\HtmlToken.cs" /> | ||||
|     <Compile Include="Utility\ColorHelper.cs" /> | ||||
|   </ItemGroup> | ||||
|   <ItemGroup> | ||||
|     <NestedContentProject Include="Content\Content.contentproj"> | ||||
|   | ||||
| @@ -8,8 +8,8 @@ using System.Runtime.InteropServices; | ||||
| [assembly: AssemblyTitle("Plan B Html Parser")] | ||||
| [assembly: AssemblyProduct("Plan B Html Parser")] | ||||
| [assembly: AssemblyDescription("")] | ||||
| [assembly: AssemblyCompany("Microsoft")] | ||||
| [assembly: AssemblyCopyright("Copyright © Microsoft 2009")] | ||||
| [assembly: AssemblyCompany("Plan B Game Studios Inc.")] | ||||
| [assembly: AssemblyCopyright("Copyright © Plan B Game Studios Inc. 2010")] | ||||
| [assembly: AssemblyTrademark("")] | ||||
| [assembly: AssemblyCulture("")] | ||||
|  | ||||
| @@ -19,7 +19,7 @@ using System.Runtime.InteropServices; | ||||
| [assembly: ComVisible(false)] | ||||
|  | ||||
| // The following GUID is for the ID of the typelib if this project is exposed to COM | ||||
| [assembly: Guid("b8545a1e-c024-4eec-9d5e-a3e470e43671")] | ||||
| [assembly: Guid("25b75844-05a1-4b9c-b054-a3835cbda08c")] | ||||
|  | ||||
| // Version information for an assembly consists of the following four values: | ||||
| // | ||||
| @@ -28,4 +28,4 @@ using System.Runtime.InteropServices; | ||||
| //      Build Number | ||||
| //      Revision | ||||
| // | ||||
| [assembly: AssemblyVersion("1.0.0.0")] | ||||
| [assembly: AssemblyVersion("0.1.0.0")] | ||||
|   | ||||
| @@ -0,0 +1,614 @@ | ||||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.Linq; | ||||
| using System.Text; | ||||
| using System.Text.RegularExpressions; | ||||
| using Microsoft.Xna.Framework; | ||||
| using Microsoft.Xna.Framework.Graphics; | ||||
|  | ||||
| namespace PlanB.Html.Utility | ||||
| { | ||||
|     internal class ColorHelper | ||||
|     { | ||||
|         internal static Color FromHtml(string htmlColorString) | ||||
|         { | ||||
|             Regex htmlColorRegex = new Regex("^#(?<color>[0-9A-Fa-f]{6})(?<alpha>[0-9A-Fa-f]{2})?$"); | ||||
|  | ||||
|             Match match = htmlColorRegex.Match(htmlColorString); | ||||
|  | ||||
|             if (match.Success) | ||||
|             { | ||||
|                 string strColor = match.Groups["color"].Value; | ||||
|                 string strAlpha = match.Groups["alpha"].Value; | ||||
|  | ||||
|                 int red = int.Parse(strColor.Substring(0, 2), System.Globalization.NumberStyles.HexNumber); | ||||
|                 int green = int.Parse(strColor.Substring(2, 2), System.Globalization.NumberStyles.HexNumber); | ||||
|                 int blue = int.Parse(strColor.Substring(4, 2), System.Globalization.NumberStyles.HexNumber); | ||||
|                 int alpha = 255; | ||||
|                 if (!String.IsNullOrEmpty(strAlpha)) | ||||
|                 { | ||||
|                     alpha = int.Parse(strAlpha, System.Globalization.NumberStyles.HexNumber); | ||||
|                 } | ||||
|  | ||||
|                 Vector4 v = new Vector4(); | ||||
|                 v.W = alpha / 255.0f; | ||||
|                 v.X = red / 255.0f; | ||||
|                 v.Y = green / 255.0f; | ||||
|                 v.Z = blue / 255.0f; | ||||
|  | ||||
|                 return new Color(v); | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|                 throw new NotImplementedException(); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         internal static Color FromCssName(string cssName) | ||||
|         { | ||||
|             cssName = cssName.ToLower(); | ||||
|             if (cssName == "aliceblue") | ||||
|             { | ||||
|                 return FromHtml("#F0F8FF"); | ||||
|             } | ||||
|             else if (cssName == "antiquewhite") | ||||
|             { | ||||
|                 return FromHtml("#FAEBD7"); | ||||
|             } | ||||
|             else if (cssName == "aqua") | ||||
|             { | ||||
|                 return FromHtml("#00FFFF"); | ||||
|             } | ||||
|             else if (cssName == "aquamarine") | ||||
|             { | ||||
|                 return FromHtml("#7FFFD4"); | ||||
|             } | ||||
|             else if (cssName == "azure") | ||||
|             { | ||||
|                 return FromHtml("#F0FFFF"); | ||||
|             } | ||||
|             else if (cssName == "beige") | ||||
|             { | ||||
|                 return FromHtml("#F5F5DC"); | ||||
|             } | ||||
|             else if (cssName == "bisque") | ||||
|             { | ||||
|                 return FromHtml("#FFE4C4"); | ||||
|             } | ||||
|             else if (cssName == "black") | ||||
|             { | ||||
|                 return FromHtml("#000000"); | ||||
|             } | ||||
|             else if (cssName == "blanchedalmond") | ||||
|             { | ||||
|                 return FromHtml("#FFEBCD"); | ||||
|             } | ||||
|             else if (cssName == "blue") | ||||
|             { | ||||
|                 return FromHtml("#0000FF"); | ||||
|             } | ||||
|             else if (cssName == "blueviolet") | ||||
|             { | ||||
|                 return FromHtml("#8A2BE2"); | ||||
|             } | ||||
|             else if (cssName == "brown") | ||||
|             { | ||||
|                 return FromHtml("#A52A2A"); | ||||
|             } | ||||
|             else if (cssName == "burlywood") | ||||
|             { | ||||
|                 return FromHtml("#DEB887"); | ||||
|             } | ||||
|             else if (cssName == "cadetblue") | ||||
|             { | ||||
|                 return FromHtml("#5F9EA0"); | ||||
|             } | ||||
|             else if (cssName == "chartreuse") | ||||
|             { | ||||
|                 return FromHtml("#7FFF00"); | ||||
|             } | ||||
|             else if (cssName == "chocolate") | ||||
|             { | ||||
|                 return FromHtml("#D2691E"); | ||||
|             } | ||||
|             else if (cssName == "coral") | ||||
|             { | ||||
|                 return FromHtml("#FF7F50"); | ||||
|             } | ||||
|             else if (cssName == "cornflowerblue") | ||||
|             { | ||||
|                 return FromHtml("#6495ED"); | ||||
|             } | ||||
|             else if (cssName == "cornsilk") | ||||
|             { | ||||
|                 return FromHtml("#FFF8DC"); | ||||
|             } | ||||
|             else if (cssName == "crimson") | ||||
|             { | ||||
|                 return FromHtml("#DC143C"); | ||||
|             } | ||||
|             else if (cssName == "cyan") | ||||
|             { | ||||
|                 return FromHtml("#00FFFF"); | ||||
|             } | ||||
|             else if (cssName == "darkblue") | ||||
|             { | ||||
|                 return FromHtml("#00008B"); | ||||
|             } | ||||
|             else if (cssName == "darkvyan") | ||||
|             { | ||||
|                 return FromHtml("#008B8B"); | ||||
|             } | ||||
|             else if (cssName == "darkgoldenrod") | ||||
|             { | ||||
|                 return FromHtml("#B8860B"); | ||||
|             } | ||||
|             else if (cssName == "darkgray") | ||||
|             { | ||||
|                 return FromHtml("#A9A9A9"); | ||||
|             } | ||||
|             else if (cssName == "darkgreen") | ||||
|             { | ||||
|                 return FromHtml("#006400"); | ||||
|             } | ||||
|             else if (cssName == "darkkhaki") | ||||
|             { | ||||
|                 return FromHtml("#BDB76B"); | ||||
|             } | ||||
|             else if (cssName == "darkmagenta") | ||||
|             { | ||||
|                 return FromHtml("#8B008B"); | ||||
|             } | ||||
|             else if (cssName == "darkolivegreen") | ||||
|             { | ||||
|                 return FromHtml("#556B2F"); | ||||
|             } | ||||
|             else if (cssName == "darkorange") | ||||
|             { | ||||
|                 return FromHtml("#FF8C00"); | ||||
|             } | ||||
|             else if (cssName == "darkorchid") | ||||
|             { | ||||
|                 return FromHtml("#9932CC"); | ||||
|             } | ||||
|             else if (cssName == "darkred") | ||||
|             { | ||||
|                 return FromHtml("#8B0000"); | ||||
|             } | ||||
|             else if (cssName == "darksalmon") | ||||
|             { | ||||
|                 return FromHtml("#E9967A"); | ||||
|             } | ||||
|             else if (cssName == "darkseagreen") | ||||
|             { | ||||
|                 return FromHtml("#8FBC8F"); | ||||
|             } | ||||
|             else if (cssName == "darkslateblue") | ||||
|             { | ||||
|                 return FromHtml("#483D8B"); | ||||
|             } | ||||
|             else if (cssName == "darkslategray") | ||||
|             { | ||||
|                 return FromHtml("#2F4F4F"); | ||||
|             } | ||||
|             else if (cssName == "darkturquoise") | ||||
|             { | ||||
|                 return FromHtml("#00CED1"); | ||||
|             } | ||||
|             else if (cssName == "darviolet") | ||||
|             { | ||||
|                 return FromHtml("#9400D3"); | ||||
|             } | ||||
|             else if (cssName == "deeppink") | ||||
|             { | ||||
|                 return FromHtml("#FF1493"); | ||||
|             } | ||||
|             else if (cssName == "deepskyblue") | ||||
|             { | ||||
|                 return FromHtml("#00BFFF"); | ||||
|             } | ||||
|             else if (cssName == "dimgray") | ||||
|             { | ||||
|                 return FromHtml("#696969"); | ||||
|             } | ||||
|             else if (cssName == "dodgerblue") | ||||
|             { | ||||
|                 return FromHtml("#1E90FF"); | ||||
|             } | ||||
|             else if (cssName == "firebrick") | ||||
|             { | ||||
|                 return FromHtml("#B22222"); | ||||
|             } | ||||
|             else if (cssName == "floralwhite") | ||||
|             { | ||||
|                 return FromHtml("#FFFAF0"); | ||||
|             } | ||||
|             else if (cssName == "forestgreen") | ||||
|             { | ||||
|                 return FromHtml("#228B22"); | ||||
|             } | ||||
|             else if (cssName == "fuchsia") | ||||
|             { | ||||
|                 return FromHtml("#FF00FF"); | ||||
|             } | ||||
|             else if (cssName == "gainsboro") | ||||
|             { | ||||
|                 return FromHtml("#DCDCDC"); | ||||
|             } | ||||
|             else if (cssName == "ghostwhite") | ||||
|             { | ||||
|                 return FromHtml("#F8F8FF"); | ||||
|             } | ||||
|             else if (cssName == "gold") | ||||
|             { | ||||
|                 return FromHtml("#FFD700"); | ||||
|             } | ||||
|             else if (cssName == "goldenrod") | ||||
|             { | ||||
|                 return FromHtml("#DAA520"); | ||||
|             } | ||||
|             else if (cssName == "gray") | ||||
|             { | ||||
|                 return FromHtml("#808080"); | ||||
|             } | ||||
|             else if (cssName == "green") | ||||
|             { | ||||
|                 return FromHtml("#008000"); | ||||
|             } | ||||
|             else if (cssName == "greenyellow") | ||||
|             { | ||||
|                 return FromHtml("#ADFF2F"); | ||||
|             } | ||||
|             else if (cssName == "honeydew") | ||||
|             { | ||||
|                 return FromHtml("#F0FFF0"); | ||||
|             } | ||||
|             else if (cssName == "hotpink") | ||||
|             { | ||||
|                 return FromHtml("#FF69B4"); | ||||
|             } | ||||
|             else if (cssName == "indianred") { return FromHtml("#CD5C5C"); } | ||||
|             else if (cssName == "indigo") { return FromHtml("#4B0082"); } | ||||
|             else if (cssName == "ivory") | ||||
|             { | ||||
|                 return FromHtml("#FFFFF0"); | ||||
|             } | ||||
|             else if (cssName == "khaki") | ||||
|             { | ||||
|                 return FromHtml("#F0E68C"); | ||||
|             } | ||||
|             else if (cssName == "lavender") | ||||
|             { | ||||
|                 return FromHtml("#E6E6FA"); | ||||
|             } | ||||
|             else if (cssName == "lavenderblush") | ||||
|             { | ||||
|                 return FromHtml("#FFF0F5"); | ||||
|             } | ||||
|             else if (cssName == "lawngreen") | ||||
|             { | ||||
|                 return FromHtml("#7CFC00"); | ||||
|             } | ||||
|             else if (cssName == "lemonchiffon") | ||||
|             { | ||||
|                 return FromHtml("#FFFACD"); | ||||
|             } | ||||
|             else if (cssName == "lightblue") | ||||
|             { | ||||
|                 return FromHtml("#ADD8E6"); | ||||
|             } | ||||
|             else if (cssName == "lightcoral") | ||||
|             { | ||||
|                 return FromHtml("#F08080"); | ||||
|             } | ||||
|             else if (cssName == "lightcyan") | ||||
|             { | ||||
|                 return FromHtml("#E0FFFF"); | ||||
|             } | ||||
|             else if (cssName == "lightgoldenrodyellow") | ||||
|             { | ||||
|                 return FromHtml("#FAFAD2"); | ||||
|             } | ||||
|             else if (cssName == "lightgrey") | ||||
|             { | ||||
|                 return FromHtml("#D3D3D3"); | ||||
|             } | ||||
|             else if (cssName == "lightgreen") | ||||
|             { | ||||
|                 return FromHtml("#90EE90"); | ||||
|             } | ||||
|             else if (cssName == "lightpink") | ||||
|             { | ||||
|                 return FromHtml("#FFB6C1"); | ||||
|             } | ||||
|             else if (cssName == "lightsalmon") | ||||
|             { | ||||
|                 return FromHtml("#FFA07A"); | ||||
|             } | ||||
|             else if (cssName == "lightseagreen") | ||||
|             { | ||||
|                 return FromHtml("#20B2AA"); | ||||
|             } | ||||
|             else if (cssName == "lightskyblue") | ||||
|             { | ||||
|                 return FromHtml("#87CEFA"); | ||||
|             } | ||||
|             else if (cssName == "lightslategray") | ||||
|             { | ||||
|                 return FromHtml("#778899"); | ||||
|             } | ||||
|             else if (cssName == "lightsteelblue") | ||||
|             { | ||||
|                 return FromHtml("#B0C4DE"); | ||||
|             } | ||||
|             else if (cssName == "lightyellow") | ||||
|             { | ||||
|                 return FromHtml("#FFFFE0"); | ||||
|             } | ||||
|             else if (cssName == "lime") | ||||
|             { | ||||
|                 return FromHtml("#00FF00"); | ||||
|             } | ||||
|             else if (cssName == "limegreen") | ||||
|             { | ||||
|                 return FromHtml("#32CD32"); | ||||
|             } | ||||
|             else if (cssName == "linen") | ||||
|             { | ||||
|                 return FromHtml("#FAF0E6"); | ||||
|             } | ||||
|             else if (cssName == "magenta") | ||||
|             { | ||||
|                 return FromHtml("#FF00FF"); | ||||
|             } | ||||
|             else if (cssName == "maroon") | ||||
|             { | ||||
|                 return FromHtml("#800000"); | ||||
|             } | ||||
|             else if (cssName == "mediumaquamarine") | ||||
|             { | ||||
|                 return FromHtml("#66CDAA"); | ||||
|             } | ||||
|             else if (cssName == "mediumblue") | ||||
|             { | ||||
|                 return FromHtml("#0000CD"); | ||||
|             } | ||||
|             else if (cssName == "mediumorchid") | ||||
|             { | ||||
|                 return FromHtml("#BA55D3"); | ||||
|             } | ||||
|             else if (cssName == "mediumpurple") | ||||
|             { | ||||
|                 return FromHtml("#9370D8"); | ||||
|             } | ||||
|             else if (cssName == "mediumseagreen") | ||||
|             { | ||||
|                 return FromHtml("#3CB371"); | ||||
|             } | ||||
|             else if (cssName == "mediumslateblue") | ||||
|             { | ||||
|                 return FromHtml("#7B68EE"); | ||||
|             } | ||||
|             else if (cssName == "mediumspringgreen") | ||||
|             { | ||||
|                 return FromHtml("#00FA9A"); | ||||
|             } | ||||
|             else if (cssName == "mediumturquoise") | ||||
|             { | ||||
|                 return FromHtml("#48D1CC"); | ||||
|             } | ||||
|             else if (cssName == "mediumvioletred") | ||||
|             { | ||||
|                 return FromHtml("#C71585"); | ||||
|             } | ||||
|             else if (cssName == "midnightblue") | ||||
|             { | ||||
|                 return FromHtml("#191970"); | ||||
|             } | ||||
|             else if (cssName == "mintcream") | ||||
|             { | ||||
|                 return FromHtml("#F5FFFA"); | ||||
|             } | ||||
|             else if (cssName == "mistyrose") | ||||
|             { | ||||
|                 return FromHtml("#FFE4E1"); | ||||
|             } | ||||
|             else if (cssName == "moccasin") | ||||
|             { | ||||
|                 return FromHtml("#FFE4B5"); | ||||
|             } | ||||
|             else if (cssName == "navajowhite") | ||||
|             { | ||||
|                 return FromHtml("#FFDEAD"); | ||||
|             } | ||||
|             else if (cssName == "navy") | ||||
|             { | ||||
|                 return FromHtml("#000080"); | ||||
|             } | ||||
|             else if (cssName == "oldlace") | ||||
|             { | ||||
|                 return FromHtml("#FDF5E6"); | ||||
|             } | ||||
|             else if (cssName == "olive") | ||||
|             { | ||||
|                 return FromHtml("#808000"); | ||||
|             } | ||||
|             else if (cssName == "olivedrab") | ||||
|             { | ||||
|                 return FromHtml("#6B8E23"); | ||||
|             } | ||||
|             else if (cssName == "orange") | ||||
|             { | ||||
|                 return FromHtml("#FFA500"); | ||||
|             } | ||||
|             else if (cssName == "orangered") | ||||
|             { | ||||
|                 return FromHtml("#FF4500"); | ||||
|             } | ||||
|             else if (cssName == "orchid") | ||||
|             { | ||||
|                 return FromHtml("#DA70D6"); | ||||
|             } | ||||
|             else if (cssName == "palegoldenrod") | ||||
|             { | ||||
|                 return FromHtml("#EEE8AA"); | ||||
|             } | ||||
|             else if (cssName == "palegreen") | ||||
|             { | ||||
|                 return FromHtml("#98FB98"); | ||||
|             } | ||||
|             else if (cssName == "paleturquoise") | ||||
|             { | ||||
|                 return FromHtml("#AFEEEE"); | ||||
|             } | ||||
|             else if (cssName == "palevioletred") | ||||
|             { | ||||
|                 return FromHtml("#D87093"); | ||||
|             } | ||||
|             else if (cssName == "papayawhip") | ||||
|             { | ||||
|                 return FromHtml("#FFEFD5"); | ||||
|             } | ||||
|             else if (cssName == "peachpuff") | ||||
|             { | ||||
|                 return FromHtml("#FFDAB9"); | ||||
|             } | ||||
|             else if (cssName == "peru") | ||||
|             { | ||||
|                 return FromHtml("#CD853F"); | ||||
|             } | ||||
|             else if (cssName == "pink") | ||||
|             { | ||||
|                 return FromHtml("#FFC0CB"); | ||||
|             } | ||||
|             else if (cssName == "plum") | ||||
|             { | ||||
|                 return FromHtml("#DDA0DD"); | ||||
|             } | ||||
|             else if (cssName == "powderblue") | ||||
|             { | ||||
|                 return FromHtml("#B0E0E6"); | ||||
|             } | ||||
|             else if (cssName == "purple") | ||||
|             { | ||||
|                 return FromHtml("#800080"); | ||||
|             } | ||||
|             else if (cssName == "red") | ||||
|             { | ||||
|                 return FromHtml("#FF0000"); | ||||
|             } | ||||
|             else if (cssName == "rosybrown") | ||||
|             { | ||||
|                 return FromHtml("#BC8F8F"); | ||||
|             } | ||||
|             else if (cssName == "royalblue") | ||||
|             { | ||||
|                 return FromHtml("#4169E1"); | ||||
|             } | ||||
|             else if (cssName == "saddlebrown") | ||||
|             { | ||||
|                 return FromHtml("#8B4513"); | ||||
|             } | ||||
|             else if (cssName == "salmon") | ||||
|             { | ||||
|                 return FromHtml("#FA8072"); | ||||
|             } | ||||
|             else if (cssName == "sandybrown") | ||||
|             { | ||||
|                 return FromHtml("#F4A460"); | ||||
|             } | ||||
|             else if (cssName == "seagreen") | ||||
|             { | ||||
|                 return FromHtml("#2E8B57"); | ||||
|             } | ||||
|             else if (cssName == "seashell") | ||||
|             { | ||||
|                 return FromHtml("#FFF5EE"); | ||||
|             } | ||||
|             else if (cssName == "sienna") | ||||
|             { | ||||
|                 return FromHtml("#A0522D"); | ||||
|             } | ||||
|             else if (cssName == "silver") | ||||
|             { | ||||
|                 return FromHtml("#C0C0C0"); | ||||
|             } | ||||
|             else if (cssName == "skyblue") | ||||
|             { | ||||
|                 return FromHtml("#87CEEB"); | ||||
|             } | ||||
|             else if (cssName == "slateblue") | ||||
|             { | ||||
|                 return FromHtml("#6A5ACD"); | ||||
|             } | ||||
|             else if (cssName == "slategray") | ||||
|             { | ||||
|                 return FromHtml("#708090"); | ||||
|             } | ||||
|             else if (cssName == "snow") | ||||
|             { | ||||
|                 return FromHtml("#FFFAFA"); | ||||
|             } | ||||
|             else if (cssName == "springgreen") | ||||
|             { | ||||
|                 return FromHtml("#00FF7F"); | ||||
|             } | ||||
|             else if (cssName == "steelblue") | ||||
|             { | ||||
|                 return FromHtml("#4682B4"); | ||||
|             } | ||||
|             else if (cssName == "tan") | ||||
|             { | ||||
|                 return FromHtml("#D2B48C"); | ||||
|             } | ||||
|             else if (cssName == "teal") | ||||
|             { | ||||
|                 return FromHtml("#008080"); | ||||
|             } | ||||
|             else if (cssName == "thistle") | ||||
|             { | ||||
|                 return FromHtml("#D8BFD8"); | ||||
|             } | ||||
|             else if (cssName == "tomato") | ||||
|             { | ||||
|                 return FromHtml("#FF6347"); | ||||
|             } | ||||
|             else if (cssName == "turquoise") | ||||
|             { | ||||
|                 return FromHtml("#40E0D0"); | ||||
|             } | ||||
|             else if (cssName == "violet") | ||||
|             { | ||||
|                 return FromHtml("#EE82EE"); | ||||
|             } | ||||
|             else if (cssName == "wheat") | ||||
|             { | ||||
|                 return FromHtml("#F5DEB3"); | ||||
|             } | ||||
|             else if (cssName == "white") | ||||
|             { | ||||
|                 return FromHtml("#FFFFFF"); | ||||
|             } | ||||
|             else if (cssName == "whitesmoke") | ||||
|             { | ||||
|                 return FromHtml("#F5F5F5"); | ||||
|             } | ||||
|             else if (cssName == "yellow") | ||||
|             { | ||||
|                 return FromHtml("#FFFF00"); | ||||
|             } | ||||
|             else if (cssName == "yellowgreen") | ||||
|             { | ||||
|                 return FromHtml("#9ACD32"); | ||||
|             } | ||||
|  | ||||
|             throw new NotImplementedException(); | ||||
|         } | ||||
|  | ||||
|         internal static Color FromCss(string cssColor) | ||||
|         { | ||||
|             //TODO: Identify the different types of colors in css ie "rgb(0, 1, 2)", "black", "#FFEE00", their rbga varieties and any others I've missed. | ||||
|             return FromCssName(cssColor); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -260,7 +260,7 @@ namespace TestProject1 | ||||
|         public void Test_Parse_SpanWithStyle() | ||||
|         { | ||||
|             String htmlText = "<span style=\"color:black\">asdf</span>"; | ||||
|             String expectedResult = "<span style=\"color:black;\">asdf</span>"; | ||||
|             String expectedResult = "<span style=\"color:rgb(0, 0, 0);\">asdf</span>"; | ||||
|  | ||||
|             HtmlNode htmlNode = Parser.Parse(htmlText); | ||||
|  | ||||
| @@ -273,13 +273,8 @@ namespace TestProject1 | ||||
|             HtmlSpanNode spanNode = htmlNode.Children[0] as HtmlSpanNode; | ||||
|  | ||||
|             IEnumerable<KeyValuePair<string, string>> spanStyleAttributes = spanNode.Attributes.Where(i => i.Key == "style"); | ||||
|             /* | ||||
|             Assert.AreEqual<int>(spanStyleAttributes.Count(), 1); | ||||
|  | ||||
|             KeyValuePair<string, string> spanStyleAttribute = spanStyleAttributes.First(); | ||||
|  | ||||
|             Assert.AreEqual<string>(spanStyleAttribute.Value, "color:black"); | ||||
|             /**/ | ||||
|             Assert.AreEqual<int>(spanStyleAttributes.Count(), 0); | ||||
|  | ||||
|             IEnumerable<KeyValuePair<string, string>> spanColorStyles = spanNode.Styles.Where(i => i.Key == "color"); | ||||
|  | ||||
| @@ -287,8 +282,8 @@ namespace TestProject1 | ||||
|  | ||||
|             KeyValuePair<string, string> spanColorStyle = spanColorStyles.First(); | ||||
|  | ||||
|             //Assert.AreEqual<string>(spanColorStyle.Value, "rgb(0,0,0)"); | ||||
|             Assert.AreEqual<string>(spanColorStyle.Value, "black"); | ||||
|             Assert.AreEqual<string>("rgb(0, 0, 0)", spanColorStyle.Value); | ||||
|             //Assert.AreEqual<string>(spanColorStyle.Value, "black"); | ||||
|             /**/ | ||||
|  | ||||
|             Assert.AreEqual(expectedResult, htmlNode.InnerHtml); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 headhunter45_cp
					headhunter45_cp