lib/css_parser/regexps.rb in css_parser-1.5.0.pre vs lib/css_parser/regexps.rb in css_parser-1.5.0.pre2
- old
+ new
@@ -81,12 +81,165 @@
|selection
)
)/ix
# Colours
- RE_COLOUR_NUMERIC = Regexp.new('((hsl|rgb)[\s]*\([\s-]*[\d]+(\.[\d]+)?[%\s]*,[\s-]*[\d]+(\.[\d]+)?[%\s]*,[\s-]*[\d]+(\.[\d]+)?[%\s]*\))', Regexp::IGNORECASE)
- RE_COLOUR_NUMERIC_ALPHA = Regexp.new('((hsla|rgba)[\s]*\([\s-]*[\d]+(\.[\d]+)?[%\s]*,[\s-]*[\d]+(\.[\d]+)?[%\s]*,[\s-]*[\d]+(\.[\d]+)?[%\s]*,[\s-]*[\d]+(\.[\d]+)?[%\s]*\))', Regexp::IGNORECASE)
- RE_COLOUR_HEX = /(#([0-9a-f]{6}|[0-9a-f]{3})([\s;]|$))/i
- RE_COLOUR_NAMED = /([\s]*^)?(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow|transparent)([\s]*$)?/i
+ NAMED_COLOURS = %w[
+ aliceblue
+ antiquewhite
+ aqua
+ aquamarine
+ azure
+ beige
+ bisque
+ black
+ blanchedalmond
+ blue
+ blueviolet
+ brown
+ burlywood
+ cadetblue
+ chartreuse
+ chocolate
+ coral
+ cornflowerblue
+ cornsilk
+ crimson
+ cyan
+ darkblue
+ darkcyan
+ darkgoldenrod
+ darkgray
+ darkgreen
+ darkgrey
+ darkkhaki
+ darkmagenta
+ darkolivegreen
+ darkorange
+ darkorchid
+ darkred
+ darksalmon
+ darkseagreen
+ darkslateblue
+ darkslategray
+ darkslategrey
+ darkturquoise
+ darkviolet
+ deeppink
+ deepskyblue
+ dimgray
+ dimgrey
+ dodgerblue
+ firebrick
+ floralwhite
+ forestgreen
+ fuchsia
+ gainsboro
+ ghostwhite
+ gold
+ goldenrod
+ gray
+ green
+ greenyellow
+ grey
+ honeydew
+ hotpink
+ indianred
+ indigo
+ ivory
+ khaki
+ lavender
+ lavenderblush
+ lawngreen
+ lemonchiffon
+ lightblue
+ lightcoral
+ lightcyan
+ lightgoldenrodyellow
+ lightgray
+ lightgreen
+ lightgrey
+ lightpink
+ lightsalmon
+ lightseagreen
+ lightskyblue
+ lightslategray
+ lightslategrey
+ lightsteelblue
+ lightyellow
+ lime
+ limegreen
+ linen
+ magenta
+ maroon
+ mediumaquamarine
+ mediumblue
+ mediumorchid
+ mediumpurple
+ mediumseagreen
+ mediumslateblue
+ mediumspringgreen
+ mediumturquoise
+ mediumvioletred
+ midnightblue
+ mintcream
+ mistyrose
+ moccasin
+ navajowhite
+ navy
+ oldlace
+ olive
+ olivedrab
+ orange
+ orangered
+ orchid
+ palegoldenrod
+ palegreen
+ paleturquoise
+ palevioletred
+ papayawhip
+ peachpuff
+ peru
+ pink
+ plum
+ powderblue
+ purple
+ red
+ rosybrown
+ royalblue
+ saddlebrown
+ salmon
+ sandybrown
+ seagreen
+ seashell
+ sienna
+ silver
+ skyblue
+ slateblue
+ slategray
+ slategrey
+ snow
+ springgreen
+ steelblue
+ tan
+ teal
+ thistle
+ tomato
+ turquoise
+ violet
+ wheat
+ white
+ whitesmoke
+ yellow
+ yellowgreen
+
+ transparent
+ inherit
+ currentColor
+ ]
+ RE_COLOUR_NUMERIC = /\b(hsl|rgb)\s*\(-?\s*-?\d+(\.\d+)?%?\s*%?,-?\s*-?\d+(\.\d+)?%?\s*%?,-?\s*-?\d+(\.\d+)?%?\s*%?\)/i
+ RE_COLOUR_NUMERIC_ALPHA = /\b(hsla|rgba)\s*\(-?\s*-?\d+(\.\d+)?%?\s*%?,-?\s*-?\d+(\.\d+)?%?\s*%?,-?\s*-?\d+(\.\d+)?%?\s*%?,-?\s*-?\d+(\.\d+)?%?\s*%?\)/i
+ RE_COLOUR_HEX = /\s*#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})\b/
+ RE_COLOUR_NAMED = /\s*\b(#{NAMED_COLOURS.join('|')})\b/i
RE_COLOUR = Regexp.union(RE_COLOUR_NUMERIC, RE_COLOUR_NUMERIC_ALPHA, RE_COLOUR_HEX, RE_COLOUR_NAMED)
# :startdoc:
end