Skip to content

Instantly share code, notes, and snippets.

@jjnilton
Last active May 28, 2022 16:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jjnilton/fcb6035e8bdd784ec00a060648b01d9b to your computer and use it in GitHub Desktop.
Save jjnilton/fcb6035e8bdd784ec00a060648b01d9b to your computer and use it in GitHub Desktop.
Generate colors' keywords for web-mode.el
;; Get colors' keywords from w3 wiki into an alist ( keyword . hex )
(require 'dom)
(setq-local
colorlist
(with-current-buffer
(url-retrieve-synchronously
"https://www.w3.org/wiki/CSS3/Color/Extended_color_keywords")
(goto-char (point-min))
(re-search-forward "^$")
(delete-region (point) (point-min))
(setq-local dom (libxml-parse-html-region (point-min) (point-max)))
(dom-by-tag (dom-by-tag dom 'table) 'tr)))
;; Create alist
(setq-local colors-alist (cl-loop
for value in (remove (car colorlist) colorlist)
collect (cons (dom-texts (car (nthcdr 0 (dom-by-tag value 'td))))
(dom-texts (car (nthcdr 1 (dom-by-tag value 'td)))))))
;; Output to a temp buffer
(with-output-to-temp-buffer "*css-colors-keywords-alist*"
(pp (mapcar (lambda (element)
(let ((key (cdr element))
(value (car element)))
(cons value key)))
colors-alist)))
;; Formated output
(("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" . "#98FD98")
("paleturquoise" . "#AFEEEE")
("palevioletred" . "#DB7093")
("papayawhip" . "#FFEFD5")
("peachpuff" . "#FFDAB9")
("peru" . "#CD853F")
("pink" . "#FFC0CD")
("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")
("saddlebrown" . "#8B4513")
("violet" . "#EE82EE")
("wheat" . "#F5DEB3")
("white" . "#FFFFFF")
("whitesmoke" . "#F5F5F5")
("yellow" . "#FFFF00")
("yellowgreen" . "#9ACD32"))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment