This adds renames the Colornames dictionary to Colornames_strict, and adds a
Colornames_SVG dictionary which it uses by default.  Colornames_SVG is a
strict superset of the HTML4 colors.  At one point, there had been some
objection over having to maintain the list "manually", so I'll also include
a utility program that generates the dictionary automatically from the w3c's
own specs.

Also note that the _parse_color function is updated to always return a
value, instead of sometimes returning None.

73,74c79,100
< ## the following is the default set of colornames understood by HTML
< Colornames = {
---
> ##
> ## There are several colorsets in use on the web.
> ## 
> ## Plucker has traditionally used the HTML4 color names
(Colornames_strict)
> ##
> ## CSS2.1 <URL: http://www.w3.org/TR/CSS21/syndata.html#color-units> adds 
> ## orange ("FFA500") and several "colors" that depend on current system 
> ## settings.  It isn't clear what to do with system colors, except maybe
> ## defaulting to black.
> ##
> ## SVG adds several other colors (from the X windows color set, plus some
grays).
> ##
> ## CSS3 <URL: http://www.w3.org/TR/2003/CR-css3-color-20030514/ > color
names
> ## represent the future of standards, but split color names into several 
> ## different profiles.  Full support is more complicated than Plucker 
> ## currently supports.
> ##
> ## Some web sites use Crayola colors.
> ##
> 
> 
> Colornames_strict = {
93a120,305
> Colornames_SVG = {
>         'aliceblue':            'F0F8FF',
>         'antiquewhite':         'FAEBD7',
>         'aqua':                 '00FFFF',
>         'aquamarine':           '7FFFD4',
>         'azure':                'F0FFFF',
>         'beige':                'F5F5DC',
>         'bisque':               'FFE4C4',
>         'black':                '000000',
>         'blanchedalmond':       'FFEBCD',
>         'blue':                 '0000FF',
>         'blueviolet':           '8A2BE2',
>         'brown':                'A52A2A',
>         'burlywood':            'DEB887',
>         'cadetblue':            '5F9EA0',
>         'chartreuse':           '7FFF00',
>         'chocolate':            'D2691E',
>         'coral':                'FF7F50',
>         'cornflowerblue':       '6495ED',
>         'cornsilk':             'FFF8DC',
>         'crimson':              'DC143C',
>         'cyan':                 '00FFFF',
>         'darkblue':             '00008B',
>         'darkcyan':             '008B8B',
>         'darkgoldenrod':        'B8860B',
>         'darkgray':             'A9A9A9',
>         'darkgreen':            '006400',
>         'darkgrey':             'A9A9A9',
>         'darkkhaki':            'BDB76B',
>         'darkmagenta':          '8B008B',
>         'darkolivegreen':       '556B2F',
>         'darkorange':           'FF8C00',
>         'darkorchid':           '9932CC',
>         'darkred':              '8B0000',
>         'darksalmon':           'E9967A',
>         'darkseagreen':         '8FBC8F',
>         'darkslateblue':        '483D8B',
>         'darkslategray':        '2F4F4F',
>         'darkslategrey':        '2F4F4F',
>         'darkturquoise':        '00CED1',
>         'darkviolet':           '9400D3',
>         'deeppink':             'FF1493',
>         'deepskyblue':          '00BFFF',
>         'dimgray':              '696969',
>         'dimgrey':              '696969',
>         'dodgerblue':           '1E90FF',
>         'firebrick':            'B22222',
>         'floralwhite':          'FFFAF0',
>         'forestgreen':          '228B22',
>         'fuchsia':              'FF00FF',
>         'gainsboro':            'DCDCDC',
>         'ghostwhite':           'F8F8FF',
>         'gold':                 'FFD700',
>         'goldenrod':            'DAA520',
>         'gray':                 '808080',
>         'green':                '008000',
>         'greenyellow':          'ADFF2F',
>         'grey':                 '808080',
>         'honeydew':             'F0FFF0',
>         'hotpink':              'FF69B4',
>         'indianred':            'CD5C5C',
>         'indigo':               '4B0082',
>         'ivory':                'FFFFF0',
>         'khaki':                'F0E68C',
>         'lavender':             'E6E6FA',
>         'lavenderblush':        'FFF0F5',
>         'lawngreen':            '7CFC00',
>         'lemonchiffon':         'FFFACD',
>         'lightblue':            'ADD8E6',
>         'lightcoral':           'F08080',
>         'lightcyan':            'E0FFFF',
>         'lightgoldenrodyellow': 'FAFAD2',
>         'lightgray':            'D3D3D3',
>         'lightgreen':           '90EE90',
>         'lightgrey':            'D3D3D3',
>         'lightpink':            'FFB6C1',
>         'lightsalmon':          'FFA07A',
>         'lightseagreen':        '20B2AA',
>         'lightskyblue':         '87CEFA',
>         'lightslategray':       '778899',
>         'lightslategrey':       '778899',
>         'lightsteelblue':       'B0C4DE',
>         'lightyellow':          'FFFFE0',
>         'lime':                 '00FF00',
>         'limegreen':            '32CD32',
>         'linen':                'FAF0E6',
>         'magenta':              'FF00FF',
>         'maroon':               '800000',
>         'mediumaquamarine':     '66CDAA',
>         'mediumblue':           '0000CD',
>         'mediumorchid':         'BA55D3',
>         'mediumpurple':         '9370DB',
>         'mediumseagreen':       '3CB371',
>         'mediumslateblue':      '7B68EE',
>         'mediumspringgreen':    '00FA9A',
>         'mediumturquoise':      '48D1CC',
>         'mediumvioletred':      'C71585',
>         'midnightblue':         '191970',
>         'mintcream':            'F5FFFA',
>         'mistyrose':            'FFE4E1',
>         'moccasin':             'FFE4B5',
>         'navajowhite':          'FFDEAD',
>         'navy':                 '000080',
>         'oldlace':              'FDF5E6',
>         'olive':                '808000',
>         'olivedrab':            '6B8E23',
>         'orange':               'FFA500',
>         'orangered':            'FF4500',
>         'orchid':               'DA70D6',
>         'palegoldenrod':        'EEE8AA',
>         'palegreen':            '98FB98',
>         'paleturquoise':        'AFEEEE',
>         'palevioletred':        'DB7093',
>         'papayawhip':           'FFEFD5',
>         'peachpuff':            'FFDAB9',
>         'peru':                 'CD853F',
>         'pink':                 'FFC0CB',
>         'plum':                 'DDA0DD',
>         'powderblue':           'B0E0E6',
>         'purple':               '800080',
>         'red':                  'FF0000',
>         'rosybrown':            'BC8F8F',
>         'royalblue':            '4169E1',
>         'saddlebrown':          '8B4513',
>         'salmon':               'FA8072',
>         'sandybrown':           'F4A460',
>         'seagreen':             '2E8B57',
>         'seashell':             'FFF5EE',
>         'sienna':               'A0522D',
>         'silver':               'C0C0C0',
>         'skyblue':              '87CEEB',
>         'slateblue':            '6A5ACD',
>         'slategray':            '708090',
>         'slategrey':            '708090',
>         'snow':                 'FFFAFA',
>         'springgreen':          '00FF7F',
>         'steelblue':            '4682B4',
>         'tan':                  'D2B48C',
>         'teal':                 '008080',
>         'thistle':              'D8BFD8',
>         'tomato':               'FF6347',
>         'turquoise':            '40E0D0',
>         'violet':               'EE82EE',
>         'wheat':                'F5DEB3',
>         'white':                'FFFFFF',
>         'whitesmoke':           'F5F5F5',
>         'yellow':               'FFFF00',
>         'yellowgreen':          '9ACD32',
> }
> 
> Colornames = Colornames_SVG
> 
> def _parse_color (value):
>     """Get the RGB value.  
>     
>     Try text colorname (e.g. 'silver'), 
>     then try to lower-case that (e.g., 'Silver')
>     then try an RGB value (e.g. #C0C0C0),
>     then try an RGB value missing the # (e.g. C0C0C0)
>     then default to black ("#000000").
>     """
>     
>     try:
>         return Colornames[value]
>     except KeyError:
>         pass    
>     
>     # This is redundant, if the page is coded entirely properly.
>     try:
>         return Colornames[value.lower()]
>     except KeyError:
>         pass    
>     
>     if value[0] == '#':
>         value = value[1:]
>     
>     try:
>         val = '%06x' % string.atoi(value, 16)
>         return val.upper()
>     except ValueError:
>         pass
>     
>     message (1, "Giving up on color %s, using black.", value)
>     return "000000"
_______________________________________________
plucker-dev mailing list
[EMAIL PROTECTED]
http://lists.rubberchicken.org/mailman/listinfo/plucker-dev

Reply via email to