diff options
| -rw-r--r-- | CHANGES | 1 | ||||
| -rw-r--r-- | pygments/lexers/_css_builtins.py | 558 | ||||
| -rw-r--r-- | pygments/lexers/css.py | 162 | ||||
| -rw-r--r-- | scripts/get_css_properties.py | 33 |
4 files changed, 625 insertions, 129 deletions
@@ -19,6 +19,7 @@ Version 2.12.0 * C family: Fix identifiers after ``case`` statements (#2084) * Clojure: Highlight ratios (#2042) * Csound: Update to 6.17 (#2064) + * CSS: Update the list of properties (#2113) * Elpi: - Fix catastropic backtracking (#2053, #2061) diff --git a/pygments/lexers/_css_builtins.py b/pygments/lexers/_css_builtins.py new file mode 100644 index 00000000..785a6f33 --- /dev/null +++ b/pygments/lexers/_css_builtins.py @@ -0,0 +1,558 @@ +""" + pygments.lexers._css_builtins + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + This file is autogenerated by scripts/get_css_properties.py + + :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS. + :license: BSD, see LICENSE for details. +""" + +_css_properties = ( + '-webkit-line-clamp', + 'accent-color', + 'align-content', + 'align-items', + 'align-self', + 'alignment-baseline', + 'all', + 'animation', + 'animation-delay', + 'animation-direction', + 'animation-duration', + 'animation-fill-mode', + 'animation-iteration-count', + 'animation-name', + 'animation-play-state', + 'animation-timing-function', + 'appearance', + 'aspect-ratio', + 'azimuth', + 'backface-visibility', + 'background', + 'background-attachment', + 'background-blend-mode', + 'background-clip', + 'background-color', + 'background-image', + 'background-origin', + 'background-position', + 'background-repeat', + 'background-size', + 'baseline-shift', + 'baseline-source', + 'block-ellipsis', + 'block-size', + 'block-step', + 'block-step-align', + 'block-step-insert', + 'block-step-round', + 'block-step-size', + 'bookmark-label', + 'bookmark-level', + 'bookmark-state', + 'border', + 'border-block', + 'border-block-color', + 'border-block-end', + 'border-block-end-color', + 'border-block-end-style', + 'border-block-end-width', + 'border-block-start', + 'border-block-start-color', + 'border-block-start-style', + 'border-block-start-width', + 'border-block-style', + 'border-block-width', + 'border-bottom', + 'border-bottom-color', + 'border-bottom-left-radius', + 'border-bottom-right-radius', + 'border-bottom-style', + 'border-bottom-width', + 'border-boundary', + 'border-collapse', + 'border-color', + 'border-end-end-radius', + 'border-end-start-radius', + 'border-image', + 'border-image-outset', + 'border-image-repeat', + 'border-image-slice', + 'border-image-source', + 'border-image-width', + 'border-inline', + 'border-inline-color', + 'border-inline-end', + 'border-inline-end-color', + 'border-inline-end-style', + 'border-inline-end-width', + 'border-inline-start', + 'border-inline-start-color', + 'border-inline-start-style', + 'border-inline-start-width', + 'border-inline-style', + 'border-inline-width', + 'border-left', + 'border-left-color', + 'border-left-style', + 'border-left-width', + 'border-radius', + 'border-right', + 'border-right-color', + 'border-right-style', + 'border-right-width', + 'border-spacing', + 'border-start-end-radius', + 'border-start-start-radius', + 'border-style', + 'border-top', + 'border-top-color', + 'border-top-left-radius', + 'border-top-right-radius', + 'border-top-style', + 'border-top-width', + 'border-width', + 'bottom', + 'box-decoration-break', + 'box-shadow', + 'box-sizing', + 'box-snap', + 'break-after', + 'break-before', + 'break-inside', + 'caption-side', + 'caret', + 'caret-color', + 'caret-shape', + 'chains', + 'clear', + 'clip', + 'clip-path', + 'clip-rule', + 'color', + 'color-adjust', + 'color-interpolation-filters', + 'color-scheme', + 'column-count', + 'column-fill', + 'column-gap', + 'column-rule', + 'column-rule-color', + 'column-rule-style', + 'column-rule-width', + 'column-span', + 'column-width', + 'columns', + 'contain', + 'contain-intrinsic-block-size', + 'contain-intrinsic-height', + 'contain-intrinsic-inline-size', + 'contain-intrinsic-size', + 'contain-intrinsic-width', + 'container', + 'container-name', + 'container-type', + 'content', + 'content-visibility', + 'continue', + 'counter-increment', + 'counter-reset', + 'counter-set', + 'cue', + 'cue-after', + 'cue-before', + 'cursor', + 'direction', + 'display', + 'dominant-baseline', + 'elevation', + 'empty-cells', + 'fill', + 'fill-break', + 'fill-color', + 'fill-image', + 'fill-opacity', + 'fill-origin', + 'fill-position', + 'fill-repeat', + 'fill-rule', + 'fill-size', + 'filter', + 'flex', + 'flex-basis', + 'flex-direction', + 'flex-flow', + 'flex-grow', + 'flex-shrink', + 'flex-wrap', + 'float', + 'float-defer', + 'float-offset', + 'float-reference', + 'flood-color', + 'flood-opacity', + 'flow', + 'flow-from', + 'flow-into', + 'font', + 'font-family', + 'font-feature-settings', + 'font-kerning', + 'font-language-override', + 'font-optical-sizing', + 'font-palette', + 'font-size', + 'font-size-adjust', + 'font-stretch', + 'font-style', + 'font-synthesis', + 'font-synthesis-small-caps', + 'font-synthesis-style', + 'font-synthesis-weight', + 'font-variant', + 'font-variant-alternates', + 'font-variant-caps', + 'font-variant-east-asian', + 'font-variant-emoji', + 'font-variant-ligatures', + 'font-variant-numeric', + 'font-variant-position', + 'font-variation-settings', + 'font-weight', + 'footnote-display', + 'footnote-policy', + 'forced-color-adjust', + 'gap', + 'glyph-orientation-vertical', + 'grid', + 'grid-area', + 'grid-auto-columns', + 'grid-auto-flow', + 'grid-auto-rows', + 'grid-column', + 'grid-column-end', + 'grid-column-start', + 'grid-row', + 'grid-row-end', + 'grid-row-start', + 'grid-template', + 'grid-template-areas', + 'grid-template-columns', + 'grid-template-rows', + 'hanging-punctuation', + 'height', + 'hyphenate-character', + 'hyphenate-limit-chars', + 'hyphenate-limit-last', + 'hyphenate-limit-lines', + 'hyphenate-limit-zone', + 'hyphens', + 'image-orientation', + 'image-rendering', + 'image-resolution', + 'initial-letter', + 'initial-letter-align', + 'initial-letter-wrap', + 'inline-size', + 'inline-sizing', + 'input-security', + 'inset', + 'inset-block', + 'inset-block-end', + 'inset-block-start', + 'inset-inline', + 'inset-inline-end', + 'inset-inline-start', + 'isolation', + 'justify-content', + 'justify-items', + 'justify-self', + 'leading-trim', + 'left', + 'letter-spacing', + 'lighting-color', + 'line-break', + 'line-clamp', + 'line-grid', + 'line-height', + 'line-height-step', + 'line-padding', + 'line-snap', + 'list-style', + 'list-style-image', + 'list-style-position', + 'list-style-type', + 'margin', + 'margin-block', + 'margin-block-end', + 'margin-block-start', + 'margin-bottom', + 'margin-break', + 'margin-inline', + 'margin-inline-end', + 'margin-inline-start', + 'margin-left', + 'margin-right', + 'margin-top', + 'margin-trim', + 'marker', + 'marker-end', + 'marker-knockout-left', + 'marker-knockout-right', + 'marker-mid', + 'marker-pattern', + 'marker-segment', + 'marker-side', + 'marker-start', + 'mask', + 'mask-border', + 'mask-border-mode', + 'mask-border-outset', + 'mask-border-repeat', + 'mask-border-slice', + 'mask-border-source', + 'mask-border-width', + 'mask-clip', + 'mask-composite', + 'mask-image', + 'mask-mode', + 'mask-origin', + 'mask-position', + 'mask-repeat', + 'mask-size', + 'mask-type', + 'max-block-size', + 'max-height', + 'max-inline-size', + 'max-lines', + 'max-width', + 'min-block-size', + 'min-height', + 'min-inline-size', + 'min-intrinsic-sizing', + 'min-width', + 'mix-blend-mode', + 'nav-down', + 'nav-left', + 'nav-right', + 'nav-up', + 'object-fit', + 'object-overflow', + 'object-position', + 'object-view-box', + 'offset', + 'offset-anchor', + 'offset-distance', + 'offset-path', + 'offset-position', + 'offset-rotate', + 'opacity', + 'order', + 'orphans', + 'outline', + 'outline-color', + 'outline-offset', + 'outline-style', + 'outline-width', + 'overflow', + 'overflow-anchor', + 'overflow-block', + 'overflow-clip-margin', + 'overflow-inline', + 'overflow-wrap', + 'overflow-x', + 'overflow-y', + 'overscroll-behavior', + 'overscroll-behavior-block', + 'overscroll-behavior-inline', + 'overscroll-behavior-x', + 'overscroll-behavior-y', + 'padding', + 'padding-block', + 'padding-block-end', + 'padding-block-start', + 'padding-bottom', + 'padding-inline', + 'padding-inline-end', + 'padding-inline-start', + 'padding-left', + 'padding-right', + 'padding-top', + 'page', + 'page-break-after', + 'page-break-before', + 'page-break-inside', + 'pause', + 'pause-after', + 'pause-before', + 'perspective', + 'perspective-origin', + 'pitch', + 'pitch-range', + 'place-content', + 'place-items', + 'place-self', + 'play-during', + 'pointer-events', + 'position', + 'print-color-adjust', + 'property-name', + 'quotes', + 'region-fragment', + 'resize', + 'rest', + 'rest-after', + 'rest-before', + 'richness', + 'right', + 'rotate', + 'row-gap', + 'ruby-align', + 'ruby-merge', + 'ruby-overhang', + 'ruby-position', + 'running', + 'scale', + 'scroll-behavior', + 'scroll-margin', + 'scroll-margin-block', + 'scroll-margin-block-end', + 'scroll-margin-block-start', + 'scroll-margin-bottom', + 'scroll-margin-inline', + 'scroll-margin-inline-end', + 'scroll-margin-inline-start', + 'scroll-margin-left', + 'scroll-margin-right', + 'scroll-margin-top', + 'scroll-padding', + 'scroll-padding-block', + 'scroll-padding-block-end', + 'scroll-padding-block-start', + 'scroll-padding-bottom', + 'scroll-padding-inline', + 'scroll-padding-inline-end', + 'scroll-padding-inline-start', + 'scroll-padding-left', + 'scroll-padding-right', + 'scroll-padding-top', + 'scroll-snap-align', + 'scroll-snap-stop', + 'scroll-snap-type', + 'scrollbar-color', + 'scrollbar-gutter', + 'scrollbar-width', + 'shape-image-threshold', + 'shape-inside', + 'shape-margin', + 'shape-outside', + 'spatial-navigation-action', + 'spatial-navigation-contain', + 'spatial-navigation-function', + 'speak', + 'speak-as', + 'speak-header', + 'speak-numeral', + 'speak-punctuation', + 'speech-rate', + 'stress', + 'string-set', + 'stroke', + 'stroke-align', + 'stroke-alignment', + 'stroke-break', + 'stroke-color', + 'stroke-dash-corner', + 'stroke-dash-justify', + 'stroke-dashadjust', + 'stroke-dasharray', + 'stroke-dashcorner', + 'stroke-dashoffset', + 'stroke-image', + 'stroke-linecap', + 'stroke-linejoin', + 'stroke-miterlimit', + 'stroke-opacity', + 'stroke-origin', + 'stroke-position', + 'stroke-repeat', + 'stroke-size', + 'stroke-width', + 'tab-size', + 'table-layout', + 'text-align', + 'text-align-all', + 'text-align-last', + 'text-combine-upright', + 'text-decoration', + 'text-decoration-color', + 'text-decoration-line', + 'text-decoration-skip', + 'text-decoration-skip-box', + 'text-decoration-skip-ink', + 'text-decoration-skip-inset', + 'text-decoration-skip-self', + 'text-decoration-skip-spaces', + 'text-decoration-style', + 'text-decoration-thickness', + 'text-edge', + 'text-emphasis', + 'text-emphasis-color', + 'text-emphasis-position', + 'text-emphasis-skip', + 'text-emphasis-style', + 'text-group-align', + 'text-indent', + 'text-justify', + 'text-orientation', + 'text-overflow', + 'text-shadow', + 'text-space-collapse', + 'text-space-trim', + 'text-spacing', + 'text-transform', + 'text-underline-offset', + 'text-underline-position', + 'text-wrap', + 'top', + 'transform', + 'transform-box', + 'transform-origin', + 'transform-style', + 'transition', + 'transition-delay', + 'transition-duration', + 'transition-property', + 'transition-timing-function', + 'translate', + 'unicode-bidi', + 'user-select', + 'vertical-align', + 'visibility', + 'voice-balance', + 'voice-duration', + 'voice-family', + 'voice-pitch', + 'voice-range', + 'voice-rate', + 'voice-stress', + 'voice-volume', + 'volume', + 'white-space', + 'widows', + 'width', + 'will-change', + 'word-boundary-detection', + 'word-boundary-expansion', + 'word-break', + 'word-spacing', + 'word-wrap', + 'wrap-after', + 'wrap-before', + 'wrap-flow', + 'wrap-inside', + 'wrap-through', + 'writing-mode', + 'z-index', +)
\ No newline at end of file diff --git a/pygments/lexers/css.py b/pygments/lexers/css.py index 93e2315b..9cbd0d33 100644 --- a/pygments/lexers/css.py +++ b/pygments/lexers/css.py @@ -15,6 +15,7 @@ from pygments.lexer import ExtendedRegexLexer, RegexLexer, include, bygroups, \ default, words, inherit from pygments.token import Text, Comment, Operator, Keyword, Name, String, \ Number, Punctuation, Whitespace +from pygments.lexers._css_builtins import _css_properties __all__ = ['CssLexer', 'SassLexer', 'ScssLexer', 'LessCssLexer'] @@ -26,102 +27,38 @@ _vendor_prefixes = ( '-webkit-', 'prince-', '-ah-', '-hp-', '-ro-', '-rim-', '-tc-', ) -# List of CSS properties obtained from: -# https://www.w3.org/Style/CSS/all-properties.en.html -# Note: handle --* separately -_css_properties = ( - 'align-content', 'align-items', 'align-self', 'alignment-baseline', 'all', - 'animation', 'animation-delay', 'animation-direction', - 'animation-duration', 'animation-fill-mode', 'animation-iteration-count', - 'animation-name', 'animation-play-state', 'animation-timing-function', - 'appearance', 'azimuth', 'backface-visibility', 'background', - 'background-attachment', 'background-blend-mode', 'background-clip', - 'background-color', 'background-image', 'background-origin', - 'background-position', 'background-repeat', 'background-size', - 'baseline-shift', 'bookmark-label', 'bookmark-level', 'bookmark-state', - 'border', 'border-bottom', 'border-bottom-color', - 'border-bottom-left-radius', 'border-bottom-right-radius', - 'border-bottom-style', 'border-bottom-width', 'border-boundary', - 'border-collapse', 'border-color', 'border-image', 'border-image-outset', - 'border-image-repeat', 'border-image-slice', 'border-image-source', - 'border-image-width', 'border-left', 'border-left-color', - 'border-left-style', 'border-left-width', 'border-radius', 'border-right', - 'border-right-color', 'border-right-style', 'border-right-width', - 'border-spacing', 'border-style', 'border-top', 'border-top-color', - 'border-top-left-radius', 'border-top-right-radius', 'border-top-style', - 'border-top-width', 'border-width', 'bottom', 'box-decoration-break', - 'box-shadow', 'box-sizing', 'box-snap', 'box-suppress', 'break-after', - 'break-before', 'break-inside', 'caption-side', 'caret', 'caret-animation', - 'caret-color', 'caret-shape', 'chains', 'clear', 'clip', 'clip-path', - 'clip-rule', 'color', 'color-interpolation-filters', 'column-count', - 'column-fill', 'column-gap', 'column-rule', 'column-rule-color', - 'column-rule-style', 'column-rule-width', 'column-span', 'column-width', - 'columns', 'content', 'counter-increment', 'counter-reset', 'counter-set', - 'crop', 'cue', 'cue-after', 'cue-before', 'cursor', 'direction', 'display', - 'dominant-baseline', 'elevation', 'empty-cells', 'filter', 'flex', - 'flex-basis', 'flex-direction', 'flex-flow', 'flex-grow', 'flex-shrink', - 'flex-wrap', 'float', 'float-defer', 'float-offset', 'float-reference', - 'flood-color', 'flood-opacity', 'flow', 'flow-from', 'flow-into', 'font', - 'font-family', 'font-feature-settings', 'font-kerning', - 'font-language-override', 'font-size', 'font-size-adjust', 'font-stretch', - 'font-style', 'font-synthesis', 'font-variant', 'font-variant-alternates', - 'font-variant-caps', 'font-variant-east-asian', 'font-variant-ligatures', - 'font-variant-numeric', 'font-variant-position', 'font-weight', - 'footnote-display', 'footnote-policy', 'glyph-orientation-vertical', - 'grid', 'grid-area', 'grid-auto-columns', 'grid-auto-flow', - 'grid-auto-rows', 'grid-column', 'grid-column-end', 'grid-column-gap', - 'grid-column-start', 'grid-gap', 'grid-row', 'grid-row-end', - 'grid-row-gap', 'grid-row-start', 'grid-template', 'grid-template-areas', - 'grid-template-columns', 'grid-template-rows', 'hanging-punctuation', - 'height', 'hyphenate-character', 'hyphenate-limit-chars', - 'hyphenate-limit-last', 'hyphenate-limit-lines', 'hyphenate-limit-zone', - 'hyphens', 'image-orientation', 'image-resolution', 'initial-letter', - 'initial-letter-align', 'initial-letter-wrap', 'isolation', - 'justify-content', 'justify-items', 'justify-self', 'left', - 'letter-spacing', 'lighting-color', 'line-break', 'line-grid', - 'line-height', 'line-snap', 'list-style', 'list-style-image', - 'list-style-position', 'list-style-type', 'margin', 'margin-bottom', - 'margin-left', 'margin-right', 'margin-top', 'marker-side', - 'marquee-direction', 'marquee-loop', 'marquee-speed', 'marquee-style', - 'mask', 'mask-border', 'mask-border-mode', 'mask-border-outset', - 'mask-border-repeat', 'mask-border-slice', 'mask-border-source', - 'mask-border-width', 'mask-clip', 'mask-composite', 'mask-image', - 'mask-mode', 'mask-origin', 'mask-position', 'mask-repeat', 'mask-size', - 'mask-type', 'max-height', 'max-lines', 'max-width', 'min-height', - 'min-width', 'mix-blend-mode', 'motion', 'motion-offset', 'motion-path', - 'motion-rotation', 'move-to', 'nav-down', 'nav-left', 'nav-right', - 'nav-up', 'object-fit', 'object-position', 'offset-after', 'offset-before', - 'offset-end', 'offset-start', 'opacity', 'order', 'orphans', 'outline', - 'outline-color', 'outline-offset', 'outline-style', 'outline-width', - 'overflow', 'overflow-style', 'overflow-wrap', 'overflow-x', 'overflow-y', - 'padding', 'padding-bottom', 'padding-left', 'padding-right', 'padding-top', - 'page', 'page-break-after', 'page-break-before', 'page-break-inside', - 'page-policy', 'pause', 'pause-after', 'pause-before', 'perspective', - 'perspective-origin', 'pitch', 'pitch-range', 'play-during', 'polar-angle', - 'polar-distance', 'position', 'presentation-level', 'quotes', - 'region-fragment', 'resize', 'rest', 'rest-after', 'rest-before', - 'richness', 'right', 'rotation', 'rotation-point', 'ruby-align', - 'ruby-merge', 'ruby-position', 'running', 'scroll-snap-coordinate', - 'scroll-snap-destination', 'scroll-snap-points-x', 'scroll-snap-points-y', - 'scroll-snap-type', 'shape-image-threshold', 'shape-inside', 'shape-margin', - 'shape-outside', 'size', 'speak', 'speak-as', 'speak-header', - 'speak-numeral', 'speak-punctuation', 'speech-rate', 'stress', 'string-set', - 'tab-size', 'table-layout', 'text-align', 'text-align-last', - 'text-combine-upright', 'text-decoration', 'text-decoration-color', - 'text-decoration-line', 'text-decoration-skip', 'text-decoration-style', - 'text-emphasis', 'text-emphasis-color', 'text-emphasis-position', - 'text-emphasis-style', 'text-indent', 'text-justify', 'text-orientation', - 'text-overflow', 'text-shadow', 'text-space-collapse', 'text-space-trim', - 'text-spacing', 'text-transform', 'text-underline-position', 'text-wrap', - 'top', 'transform', 'transform-origin', 'transform-style', 'transition', - 'transition-delay', 'transition-duration', 'transition-property', - 'transition-timing-function', 'unicode-bidi', 'user-select', - 'vertical-align', 'visibility', 'voice-balance', 'voice-duration', - 'voice-family', 'voice-pitch', 'voice-range', 'voice-rate', 'voice-stress', - 'voice-volume', 'volume', 'white-space', 'widows', 'width', 'will-change', - 'word-break', 'word-spacing', 'word-wrap', 'wrap-after', 'wrap-before', - 'wrap-flow', 'wrap-inside', 'wrap-through', 'writing-mode', 'z-index', -) +# List of extended color keywords obtained from: +# https://drafts.csswg.org/css-color/#named-colors +_color_keywords = ( + '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', 'rebeccapurple', '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',) # List of keyword values obtained from: # http://cssvalues.com/ @@ -179,39 +116,6 @@ _keyword_values = ( 'x-small', 'xx-large', 'xx-small', 'zoom-in', 'zoom-out', ) -# List of extended color keywords obtained from: -# https://drafts.csswg.org/css-color/#named-colors -_color_keywords = ( - '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', 'rebeccapurple', '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',) - # List of other keyword values from other sources: _other_keyword_values = ( 'above', 'aural', 'behind', 'bidi-override', 'center-left', 'center-right', diff --git a/scripts/get_css_properties.py b/scripts/get_css_properties.py new file mode 100644 index 00000000..3afe98e1 --- /dev/null +++ b/scripts/get_css_properties.py @@ -0,0 +1,33 @@ +""" + get_css_properties + ~~~~~~~~~~~~~~~~~~ + + :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS. + :license: BSD, see LICENSE for details. +""" + + +from pygments.util import format_lines +import json +import urllib.request + +HEADER = '''\ +""" + pygments.lexers._css_builtins + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + This file is autogenerated by scripts/get_css_properties.py + + :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS. + :license: BSD, see LICENSE for details. +""" +''' + +if __name__ == "__main__": + data_request = urllib.request.urlopen('https://www.w3.org/Style/CSS/all-properties.en.json') + data = json.load(data_request) + names = set([p['property'] for p in data if p['property'] != '--*']) + + with open('../pygments/lexers/_css_builtins.py', 'w') as builtin_file: + builtin_file.write(HEADER) + builtin_file.write(format_lines('_css_properties', sorted(names))) |
