changeset 667: |
bb8aa1eda12b |
parent 666: |
f15e0f021a64 |
child 668: |
c687d7005ec7 |
author: |
Richard Westhaver <ellis@rwest.io> |
date: |
Mon, 23 Sep 2024 17:03:54 -0400 |
files: |
emacs/default.el emacs/lib/graph.el lisp/lib/dat/css.lisp lisp/lib/dat/html/html.lisp |
description: |
graph, css vars, corfu-terminal fix |
1.1--- a/emacs/default.el Sun Sep 22 22:13:44 2024 -0400
1.2+++ b/emacs/default.el Mon Sep 23 17:03:54 2024 -0400
1.3@@ -174,8 +174,7 @@
1.4 (keymap-set corfu-map "M-m" #'corfu-move-to-minibuffer)
1.5 (add-to-list 'corfu-continue-commands #'corfu-move-to-minibuffer)
1.6 (unless (display-graphic-p)
1.7- (require 'corfu-terminal)
1.8- (corfu-terminal-mode 1)))
1.9+ (use-package corfu-terminal :ensure t :config (corfu-terminal-mode 1))))
1.10
1.11 (use-package kind-icon
1.12 :ensure t
2.1--- a/emacs/lib/graph.el Sun Sep 22 22:13:44 2024 -0400
2.2+++ b/emacs/lib/graph.el Mon Sep 23 17:03:54 2024 -0400
2.3@@ -178,6 +178,25 @@
2.4 collect (funcall function)
2.5 do (next-line))))
2.6
2.7+;; TODO 2024-09-23:
2.8+(defun org-link-info (link)
2.9+ (let ((path (org-element-property :path link))
2.10+ (type (org-element-property :type link))
2.11+ (desc (substring-no-properties (nth 2 link))))
2.12+ (list type path desc)))
2.13+
2.14+;; TODO 2024-09-22:
2.15+(defun org-graph-infer-edges ()
2.16+ "Infer edges from the contents of the node at point. The result of this
2.17+function is a list of org-graph-edge objects."
2.18+ ;; collect links
2.19+ (with-org-graph-edge-drawer (beg)
2.20+ (org-element-map (org-element-parse-buffer) 'link
2.21+ (lambda (link)
2.22+ (print link)
2.23+ ;; (org-graph-edge-link-builder (funcall 'org-element-create link))
2.24+ ))))
2.25+
2.26 (defun org-graph-reduce-edges (function)
2.27 "Same as `cl-reduce' where SEQ is the list of edges at point. FUNCTION
2.28 takes two `org-graph-edge' objects as input."
3.1--- a/lisp/lib/dat/css.lisp Sun Sep 22 22:13:44 2024 -0400
3.2+++ b/lisp/lib/dat/css.lisp Mon Sep 23 17:03:54 2024 -0400
3.3@@ -15,3 +15,787 @@
3.4 ;; BLOCK ::= (:BLOCK SELECTOR PROPERTY*)
3.5 ;; SELECTOR ::= (string*)
3.6 ;; PROPERTY ::= (:PROPERTY string string)
3.7+
3.8+;;; Vars
3.9+;; The following variables are derived from Emacs css-mode:
3.10+;; https://github.com/emacs-mirror/emacs/blob/master/lisp/textmodes/css-mode.el
3.11+
3.12+(defvar css-pseudo-class-ids
3.13+ '("active" "checked" "default" "disabled" "empty" "enabled" "first"
3.14+ "first-child" "first-of-type" "focus" "focus-within" "hover"
3.15+ "in-range" "indeterminate" "invalid" "lang" "last-child"
3.16+ "last-of-type" "left" "link" "not" "nth-child" "nth-last-child"
3.17+ "nth-last-of-type" "nth-of-type" "only-child" "only-of-type"
3.18+ "optional" "out-of-range" "read-only" "read-write" "required"
3.19+ "right" "root" "scope" "target" "valid" "visited")
3.20+ "Identifiers for pseudo-classes.")
3.21+
3.22+(defvar *css-pseudo-element-ids*
3.23+ '("after" "before" "first-letter" "first-line" "selection")
3.24+ "Identifiers for pseudo-elements.")
3.25+
3.26+(defvar *css-at-ids*
3.27+ '("charset" "font-face" "import" "keyframes" "media" "namespace"
3.28+ "page" "supports")
3.29+ "Identifiers that appear in the form @foo.")
3.30+
3.31+(defvar *scss-at-ids*
3.32+ '("at-root" "content" "debug" "each" "else" "else if" "error" "extend"
3.33+ "for" "function" "if" "import" "include" "mixin" "return" "use" "warn"
3.34+ "while")
3.35+ "Additional identifiers that appear in the form @foo in SCSS.")
3.36+
3.37+(defvar *css-bang-ids*
3.38+ '("important")
3.39+ "Identifiers that appear in the form !foo.")
3.40+
3.41+(defvar *scss-bang-ids*
3.42+ '("default" "global" "optional")
3.43+ "Additional identifiers that appear in the form !foo in SCSS.")
3.44+
3.45+(defvar *css-descriptor-ids*
3.46+ '("ascent" "baseline" "bbox" "cap-height" "centerline" "definition-src"
3.47+ "descent" "font-family" "font-size" "font-stretch" "font-style"
3.48+ "font-variant" "font-weight" "mathline" "panose-1" "slope" "src" "stemh"
3.49+ "stemv" "topline" "unicode-range" "units-per-em" "widths" "x-height")
3.50+ "Identifiers for font descriptors.")
3.51+
3.52+(defvar *css-media-ids*
3.53+ '("all" "aural" "bitmap" "continuous" "grid" "paged" "static" "tactile"
3.54+ "visual")
3.55+ "Identifiers for types of media.")
3.56+
3.57+(defvar *css-property-alist*
3.58+ ;; CSS 2.1 properties (https://www.w3.org/TR/CSS21/propidx.html).
3.59+ ;;
3.60+ ;; Properties duplicated by any of the CSS3 modules below have been
3.61+ ;; removed.
3.62+ '(("azimuth" angle "left-side" "far-left" "left" "center-left"
3.63+ "center" "center-right" "right" "far-right" "right-side" "behind"
3.64+ "leftwards" "rightwards")
3.65+ ("border-collapse" "collapse" "separate")
3.66+ ("border-spacing" length)
3.67+ ("bottom" length percentage "auto")
3.68+ ("caption-side" "top" "bottom")
3.69+ ("clear" "none" "left" "right" "both")
3.70+ ("content" "normal" "none" string uri counter "attr()"
3.71+ "open-quote" "close-quote" "no-open-quote" "no-close-quote")
3.72+ ("counter-increment" identifier integer "none")
3.73+ ("counter-reset" identifier integer "none")
3.74+ ("cue" cue-before cue-after)
3.75+ ("cue-after" uri "none")
3.76+ ("cue-before" uri "none")
3.77+ ("display" "inline" "block" "list-item" "inline-block" "table"
3.78+ "inline-table" "table-row-group" "table-header-group"
3.79+ "table-footer-group" "table-row" "table-column-group"
3.80+ "table-column" "table-cell" "table-caption" "none"
3.81+ ;; CSS Flexible Box Layout Module Level 1
3.82+ ;; (https://www.w3.org/TR/css3-flexbox/#valdef-display-flex)
3.83+ "flex" "inline-flex"
3.84+ ;; CSS Grid Layout Module Level 1
3.85+ ;; (https://www.w3.org/TR/css-grid-1/#grid-containers)
3.86+ "grid" "inline-grid" "subgrid")
3.87+ ("elevation" angle "below" "level" "above" "higher" "lower")
3.88+ ("empty-cells" "show" "hide")
3.89+ ("float" "left" "right" "none")
3.90+ ("height" length percentage "auto")
3.91+ ("left" length percentage "auto")
3.92+ ("line-height" "normal" number length percentage)
3.93+ ("list-style" list-style-type list-style-position
3.94+ list-style-image)
3.95+ ("list-style-image" uri "none")
3.96+ ("list-style-position" "inside" "outside")
3.97+ ("list-style-type" "disc" "circle" "square" "decimal"
3.98+ "decimal-leading-zero" "lower-roman" "upper-roman" "lower-greek"
3.99+ "lower-latin" "upper-latin" "armenian" "georgian" "lower-alpha"
3.100+ "upper-alpha" "none")
3.101+ ("margin" margin-width)
3.102+ ("margin-bottom" margin-width)
3.103+ ("margin-left" margin-width)
3.104+ ("margin-right" margin-width)
3.105+ ("margin-top" margin-width)
3.106+ ("max-height" length percentage "none")
3.107+ ("max-width" length percentage "none")
3.108+ ("min-height" length percentage)
3.109+ ("min-width" length percentage)
3.110+ ("padding" padding-width)
3.111+ ("padding-bottom" padding-width)
3.112+ ("padding-left" padding-width)
3.113+ ("padding-right" padding-width)
3.114+ ("padding-top" padding-width)
3.115+ ("page-break-after" "auto" "always" "avoid" "left" "right")
3.116+ ("page-break-before" "auto" "always" "avoid" "left" "right")
3.117+ ("page-break-inside" "avoid" "auto")
3.118+ ("pause" time percentage)
3.119+ ("pause-after" time percentage)
3.120+ ("pause-before" time percentage)
3.121+ ("pitch" frequency "x-low" "low" "medium" "high" "x-high")
3.122+ ("pitch-range" number)
3.123+ ("play-during" uri "mix" "repeat" "auto" "none")
3.124+ ("position" "static" "relative" "absolute" "fixed")
3.125+ ("quotes" string "none")
3.126+ ("richness" number)
3.127+ ("right" length percentage "auto")
3.128+ ("speak" "normal" "none" "spell-out")
3.129+ ("speak-header" "once" "always")
3.130+ ("speak-numeral" "digits" "continuous")
3.131+ ("speak-punctuation" "code" "none")
3.132+ ("speech-rate" number "x-slow" "slow" "medium" "fast" "x-fast"
3.133+ "faster" "slower")
3.134+ ("stress" number)
3.135+ ("table-layout" "auto" "fixed")
3.136+ ("top" length percentage "auto")
3.137+ ("vertical-align" "baseline" "sub" "super" "top" "text-top"
3.138+ "middle" "bottom" "text-bottom" percentage length)
3.139+ ("visibility" "visible" "hidden" "collapse")
3.140+ ("voice-family" specific-voice generic-voice specific-voice
3.141+ generic-voice)
3.142+ ("volume" number percentage "silent" "x-soft" "soft" "medium"
3.143+ "loud" "x-loud")
3.144+ ("width" length percentage "auto")
3.145+ ("z-index" "auto" integer)
3.146+
3.147+ ;; CSS Animations
3.148+ ;; (https://www.w3.org/TR/css3-animations/#property-index)
3.149+ ("animation" single-animation-name time single-timing-function
3.150+ single-animation-iteration-count single-animation-direction
3.151+ single-animation-fill-mode single-animation-play-state)
3.152+ ("animation-delay" time)
3.153+ ("animation-direction" single-animation-direction)
3.154+ ("animation-duration" time)
3.155+ ("animation-fill-mode" single-animation-fill-mode)
3.156+ ("animation-iteration-count" single-animation-iteration-count)
3.157+ ("animation-name" single-animation-name)
3.158+ ("animation-play-state" single-animation-play-state)
3.159+ ("animation-timing-function" single-timing-function)
3.160+
3.161+ ;; CSS Backgrounds and Borders Module Level 3
3.162+ ;; (https://www.w3.org/TR/css3-background/#property-index)
3.163+ ("background" bg-layer final-bg-layer)
3.164+ ("background-attachment" attachment)
3.165+ ("background-clip" box)
3.166+ ("background-color" color)
3.167+ ("background-image" bg-image)
3.168+ ("background-origin" box)
3.169+ ("background-position" position)
3.170+ ("background-repeat" repeat-style)
3.171+ ("background-size" bg-size)
3.172+ ("border" line-width line-style color)
3.173+ ("border-bottom" line-width line-style color)
3.174+ ("border-bottom-color" color)
3.175+ ("border-bottom-left-radius" length percentage)
3.176+ ("border-bottom-right-radius" length percentage)
3.177+ ("border-bottom-style" line-style)
3.178+ ("border-bottom-width" line-width)
3.179+ ("border-color" color)
3.180+ ("border-image" border-image-source border-image-slice
3.181+ border-image-width border-image-outset border-image-repeat)
3.182+ ("border-image-outset" length number)
3.183+ ("border-image-repeat" "stretch" "repeat" "round" "space")
3.184+ ("border-image-slice" number percentage "fill")
3.185+ ("border-image-source" "none" image)
3.186+ ("border-image-width" length percentage number "auto")
3.187+ ("border-left" line-width line-style color)
3.188+ ("border-left-color" color)
3.189+ ("border-left-style" line-style)
3.190+ ("border-left-width" line-width)
3.191+ ("border-radius" length percentage)
3.192+ ("border-right" line-width line-style color)
3.193+ ("border-right-color" color)
3.194+ ("border-right-style" line-style)
3.195+ ("border-right-width" line-width)
3.196+ ("border-style" line-style)
3.197+ ("border-top" line-width line-style color)
3.198+ ("border-top-color" color)
3.199+ ("border-top-left-radius" length percentage)
3.200+ ("border-top-right-radius" length percentage)
3.201+ ("border-top-style" line-style)
3.202+ ("border-top-width" line-width)
3.203+ ("border-width" line-width)
3.204+ ("box-shadow" "none" shadow)
3.205+
3.206+ ;; CSS Basic User Interface Module Level 3 (CSS3 UI)
3.207+ ;; (https://www.w3.org/TR/css3-ui/#property-index)
3.208+ ("box-sizing" "content-box" "border-box")
3.209+ ("caret-color" "auto" color)
3.210+ ("cursor" uri x y "auto" "default" "none" "context-menu" "help"
3.211+ "pointer" "progress" "wait" "cell" "crosshair" "text"
3.212+ "vertical-text" "alias" "copy" "move" "no-drop" "not-allowed"
3.213+ "grab" "grabbing" "e-resize" "n-resize" "ne-resize" "nw-resize"
3.214+ "s-resize" "se-resize" "sw-resize" "w-resize" "ew-resize"
3.215+ "ns-resize" "nesw-resize" "nwse-resize" "col-resize" "row-resize"
3.216+ "all-scroll" "zoom-in" "zoom-out")
3.217+ ("nav-down" "auto" id "current" "root" target-name)
3.218+ ("nav-left" "auto" id "current" "root" target-name)
3.219+ ("nav-right" "auto" id "current" "root" target-name)
3.220+ ("nav-up" "auto" id "current" "root" target-name)
3.221+ ("outline" outline-color outline-style outline-width)
3.222+ ("outline-color" color "invert")
3.223+ ("outline-offset" length)
3.224+ ("outline-style" "auto" border-style)
3.225+ ("outline-width" border-width)
3.226+ ("resize" "none" "both" "horizontal" "vertical")
3.227+ ("text-overflow" "clip" "ellipsis" string)
3.228+
3.229+ ;; CSS Cascading and Inheritance Level 3
3.230+ ;; (https://www.w3.org/TR/css-cascade-3/#property-index)
3.231+ ("all")
3.232+
3.233+ ;; CSS Color Module Level 3
3.234+ ;; (https://www.w3.org/TR/css3-color/#property)
3.235+ ("color" color)
3.236+ ("opacity" alphavalue)
3.237+
3.238+ ;; CSS Containment Module Level 2
3.239+ ;; (https://www.w3.org/TR/css-contain-2/#property-index)
3.240+ ("contain" "none" "strict" "content" "size" "layout" "style" "paint")
3.241+ ("content-visibility" "visible" "auto" "hidden")
3.242+
3.243+ ;; CSS Grid Layout Module Level 2
3.244+ ;; (https://www.w3.org/TR/css-grid-2/#property-index)
3.245+ ("grid" grid-template grid-template-rows "auto-flow" "dense"
3.246+ grid-auto-columns grid-auto-rows grid-template-columns)
3.247+ ("grid-area" grid-line)
3.248+ ("grid-auto-columns" track-size)
3.249+ ("grid-auto-flow" "row" "column" "dense")
3.250+ ("grid-auto-rows" track-size)
3.251+ ("grid-column" grid-line)
3.252+ ("grid-column-end" grid-line)
3.253+ ("grid-column-gap" length-percentage)
3.254+ ("grid-column-start" grid-line)
3.255+ ("grid-gap" grid-row-gap grid-column-gap)
3.256+ ("grid-row" grid-line)
3.257+ ("grid-row-end" grid-line)
3.258+ ("grid-row-gap" length-percentage)
3.259+ ("grid-row-start" grid-line)
3.260+ ("grid-template" "none" grid-template-rows grid-template-columns
3.261+ line-names string track-size line-names explicit-track-list)
3.262+ ("grid-template-areas" "none" string)
3.263+ ("grid-template-columns" "none" track-list auto-track-list "subgrid")
3.264+ ("grid-template-rows" "none" track-list auto-track-list "subgrid")
3.265+
3.266+ ;; CSS Box Alignment Module Level 3
3.267+ ;; (https://www.w3.org/TR/css-align-3/#property-index)
3.268+ ("align-content" baseline-position content-distribution
3.269+ overflow-position content-position)
3.270+ ("align-items" "normal" "stretch" baseline-position
3.271+ overflow-position self-position)
3.272+ ("align-self" "auto" "normal" "stretch" baseline-position
3.273+ overflow-position self-position)
3.274+ ("column-gap" "normal" length-percentage)
3.275+ ("gap" row-gap column-gap)
3.276+ ("justify-content" "normal" content-distribution overflow-position
3.277+ content-position "left" "right")
3.278+ ("justify-items" "normal" "stretch" baseline-position
3.279+ overflow-position self-position "left" "right" "legacy" "center")
3.280+ ("justify-self" "auto" "normal" "stretch" baseline-position
3.281+ overflow-position self-position "left" "right")
3.282+ ("place-content" align-content justify-content)
3.283+ ("place-items" align-items justify-items)
3.284+ ("place-self" justify-self align-self)
3.285+ ("row-gap" "normal" length-percentage)
3.286+
3.287+ ;; CSS Flexible Box Layout Module Level 1
3.288+ ;; (https://www.w3.org/TR/css-flexbox-1/#property-index)
3.289+ ("flex" "none" flex-grow flex-shrink flex-basis)
3.290+ ("flex-basis" "auto" "content" width)
3.291+ ("flex-direction" "row" "row-reverse" "column" "column-reverse")
3.292+ ("flex-flow" flex-direction flex-wrap)
3.293+ ("flex-grow" number)
3.294+ ("flex-shrink" number)
3.295+ ("flex-wrap" "nowrap" "wrap" "wrap-reverse")
3.296+ ("order" integer)
3.297+
3.298+ ;; CSS Fonts Module Level 3
3.299+ ;; (https://www.w3.org/TR/css3-fonts/#property-index)
3.300+ ("font" font-style font-variant-css21 font-weight font-stretch
3.301+ font-size line-height font-family "caption" "icon" "menu"
3.302+ "message-box" "small-caption" "status-bar")
3.303+ ("font-family" family-name generic-family)
3.304+ ("font-feature-settings" "normal" feature-tag-value)
3.305+ ("font-kerning" "auto" "normal" "none")
3.306+ ("font-language-override" "normal" string)
3.307+ ("font-size" absolute-size relative-size length percentage)
3.308+ ("font-size-adjust" "none" number)
3.309+ ("font-stretch" "normal" "ultra-condensed" "extra-condensed"
3.310+ "condensed" "semi-condensed" "semi-expanded" "expanded"
3.311+ "extra-expanded" "ultra-expanded")
3.312+ ("font-style" "normal" "italic" "oblique")
3.313+ ("font-synthesis" "none" "weight" "style")
3.314+ ("font-variant" "normal" "none" common-lig-values
3.315+ discretionary-lig-values historical-lig-values
3.316+ contextual-alt-values "stylistic()" "historical-forms"
3.317+ "styleset()" "character-variant()" "swash()" "ornaments()"
3.318+ "annotation()" "small-caps" "all-small-caps" "petite-caps"
3.319+ "all-petite-caps" "unicase" "titling-caps" numeric-figure-values
3.320+ numeric-spacing-values numeric-fraction-values "ordinal"
3.321+ "slashed-zero" east-asian-variant-values east-asian-width-values
3.322+ "ruby")
3.323+ ("font-variant-alternates" "normal" "stylistic()"
3.324+ "historical-forms" "styleset()" "character-variant()" "swash()"
3.325+ "ornaments()" "annotation()")
3.326+ ("font-variant-caps" "normal" "small-caps" "all-small-caps"
3.327+ "petite-caps" "all-petite-caps" "unicase" "titling-caps")
3.328+ ("font-variant-east-asian" "normal" east-asian-variant-values
3.329+ east-asian-width-values "ruby")
3.330+ ("font-variant-ligatures" "normal" "none" common-lig-values
3.331+ discretionary-lig-values historical-lig-values
3.332+ contextual-alt-values)
3.333+ ("font-variant-numeric" "normal" numeric-figure-values
3.334+ numeric-spacing-values numeric-fraction-values "ordinal"
3.335+ "slashed-zero")
3.336+ ("font-variant-position" "normal" "sub" "super")
3.337+ ("font-weight" "normal" "bold" "bolder" "lighter" "100" "200"
3.338+ "300" "400" "500" "600" "700" "800" "900")
3.339+
3.340+ ;; CSS Fragmentation Module Level 3
3.341+ ;; (https://www.w3.org/TR/css-break-3/#property-index)
3.342+ ("box-decoration-break" "slice" "clone")
3.343+ ("break-after" "auto" "avoid" "avoid-page" "page" "left" "right"
3.344+ "recto" "verso" "avoid-column" "column" "avoid-region" "region")
3.345+ ("break-before" "auto" "avoid" "avoid-page" "page" "left" "right"
3.346+ "recto" "verso" "avoid-column" "column" "avoid-region" "region")
3.347+ ("break-inside" "auto" "avoid" "avoid-page" "avoid-column"
3.348+ "avoid-region")
3.349+ ("orphans" integer)
3.350+ ("widows" integer)
3.351+
3.352+ ;; CSS Masking Module Level 1
3.353+ ;; (https://www.w3.org/TR/css-masking-1/#property-index)
3.354+ ("clip-path" clip-source basic-shape geometry-box "none")
3.355+ ("clip-rule" "nonzero" "evenodd")
3.356+ ("mask-image" mask-reference)
3.357+ ("mask-mode" masking-mode)
3.358+ ("mask-repeat" repeat-style)
3.359+ ("mask-position" position)
3.360+ ("mask-clip" geometry-box "no-clip")
3.361+ ("mask-origin" geometry-box)
3.362+ ("mask-size" bg-size)
3.363+ ("mask-composite" compositing-operator)
3.364+ ("mask" mask-layer)
3.365+ ("mask-border-source" "none" image)
3.366+ ("mask-border-mode" "luminance" "alpha")
3.367+ ("mask-border-slice" number percentage "fill")
3.368+ ("mask-border-width" length percentage number "auto")
3.369+ ("mask-border-outset" length number)
3.370+ ("mask-border-repeat" "stretch" "repeat" "round" "space")
3.371+ ("mask-border" mask-border-source mask-border-slice
3.372+ mask-border-width mask-border-outset mask-border-repeat
3.373+ mask-border-mode)
3.374+ ("mask-type" "luminance" "alpha")
3.375+ ("clip" "rect()" "auto")
3.376+
3.377+ ;; CSS Multi-column Layout Module Level 1
3.378+ ;; (https://www.w3.org/TR/css3-multicol/#property-index)
3.379+ ;; "break-after", "break-before", and "break-inside" are left out
3.380+ ;; below, because they're already included in CSS Fragmentation
3.381+ ;; Module Level 3.
3.382+ ("column-count" "auto" integer)
3.383+ ("column-fill" "auto" "balance" "balance-all")
3.384+ ("column-rule" column-rule-width column-rule-style
3.385+ column-rule-color)
3.386+ ("column-rule-color" color)
3.387+ ("column-rule-style" line-style)
3.388+ ("column-rule-width" line-width)
3.389+ ("column-span" "none" "all")
3.390+ ("column-width" "auto" length)
3.391+ ("columns" column-width column-count)
3.392+
3.393+ ;; CSS Overflow Module Level 3
3.394+ ;; (https://www.w3.org/TR/css-overflow-3/#property-index)
3.395+ ("max-lines" "none" integer)
3.396+ ("overflow" "visible" "hidden" "scroll" "auto" "paged-x" "paged-y"
3.397+ "paged-x-controls" "paged-y-controls" "fragments")
3.398+ ("overflow-x" "visible" "hidden" "scroll" "auto" "paged-x"
3.399+ "paged-y" "paged-x-controls" "paged-y-controls" "fragments")
3.400+ ("overflow-y" "visible" "hidden" "scroll" "auto" "paged-x"
3.401+ "paged-y" "paged-x-controls" "paged-y-controls" "fragments")
3.402+
3.403+ ;; CSS Text Decoration Module Level 3
3.404+ ;; (https://dev.w3.org/csswg/css-text-decor-3/#property-index)
3.405+ ("text-decoration" text-decoration-line text-decoration-style
3.406+ text-decoration-color)
3.407+ ("text-decoration-color" color)
3.408+ ("text-decoration-line" "none" "underline" "overline"
3.409+ "line-through" "blink")
3.410+ ("text-decoration-skip" "none" "objects" "spaces" "ink" "edges"
3.411+ "box-decoration")
3.412+ ("text-decoration-style" "solid" "double" "dotted" "dashed"
3.413+ "wavy")
3.414+ ("text-emphasis" text-emphasis-style text-emphasis-color)
3.415+ ("text-emphasis-color" color)
3.416+ ("text-emphasis-position" "over" "under" "right" "left")
3.417+ ("text-emphasis-style" "none" "filled" "open" "dot" "circle"
3.418+ "double-circle" "triangle" "sesame" string)
3.419+ ("text-shadow" "none" length color)
3.420+ ("text-underline-position" "auto" "under" "left" "right")
3.421+
3.422+ ;; CSS Text Module Level 3
3.423+ ;; (https://www.w3.org/TR/css3-text/#property-index)
3.424+ ("hanging-punctuation" "none" "first" "force-end" "allow-end"
3.425+ "last")
3.426+ ("hyphens" "none" "manual" "auto")
3.427+ ("letter-spacing" "normal" length)
3.428+ ("line-break" "auto" "loose" "normal" "strict")
3.429+ ("overflow-wrap" "normal" "break-word")
3.430+ ("tab-size" integer length)
3.431+ ("text-align" "start" "end" "left" "right" "center" "justify"
3.432+ "match-parent")
3.433+ ("text-align-last" "auto" "start" "end" "left" "right" "center"
3.434+ "justify")
3.435+ ("text-indent" length percentage)
3.436+ ("text-justify" "auto" "none" "inter-word" "distribute")
3.437+ ("text-transform" "none" "capitalize" "uppercase" "lowercase"
3.438+ "full-width")
3.439+ ("white-space" "normal" "pre" "nowrap" "pre-wrap" "pre-line")
3.440+ ("word-break" "normal" "keep-all" "break-all")
3.441+ ("word-spacing" "normal" length percentage)
3.442+ ("word-wrap" "normal" "break-word")
3.443+
3.444+ ;; CSS Transforms Module Level 1
3.445+ ;; (https://www.w3.org/TR/css3-2d-transforms/#property-index)
3.446+ ("backface-visibility" "visible" "hidden")
3.447+ ("perspective" "none" length)
3.448+ ("perspective-origin" "left" "center" "right" "top" "bottom"
3.449+ percentage length)
3.450+ ("transform" "none" transform-list)
3.451+ ("transform-origin" "left" "center" "right" "top" "bottom"
3.452+ percentage length)
3.453+ ("transform-style" "flat" "preserve-3d")
3.454+
3.455+ ;; CSS Transitions
3.456+ ;; (https://www.w3.org/TR/css3-transitions/#property-index)
3.457+ ("transition" single-transition)
3.458+ ("transition-delay" time)
3.459+ ("transition-duration" time)
3.460+ ("transition-property" "none" single-transition-property "all")
3.461+ ("transition-timing-function" single-transition-timing-function)
3.462+
3.463+ ;; CSS Will Change Module Level 1
3.464+ ;; (https://www.w3.org/TR/css-will-change-1/#property-index)
3.465+ ("will-change" "auto" animateable-feature)
3.466+
3.467+ ;; CSS Writing Modes Level 3
3.468+ ;; (https://www.w3.org/TR/css-writing-modes-3/#property-index)
3.469+ ;; "glyph-orientation-vertical" is obsolete and left out.
3.470+ ("direction" "ltr" "rtl")
3.471+ ("text-combine-upright" "none" "all")
3.472+ ("text-orientation" "mixed" "upright" "sideways")
3.473+ ("unicode-bidi" "normal" "embed" "isolate" "bidi-override"
3.474+ "isolate-override" "plaintext")
3.475+ ("writing-mode" "horizontal-tb" "vertical-rl" "vertical-lr")
3.476+
3.477+ ;; Filter Effects Module Level 1
3.478+ ;; (https://www.w3.org/TR/filter-effects/#property-index)
3.479+ ("color-interpolation-filters" "auto" "sRGB" "linearRGB")
3.480+ ("filter" "none" filter-function-list)
3.481+ ("flood-color" color)
3.482+ ("flood-opacity" number percentage)
3.483+ ("lighting-color" color)
3.484+
3.485+ ;; Pointer Events
3.486+ ;; (https://www.w3.org/TR/pointerevents/#the-touch-action-css-property)
3.487+ ("touch-action" "auto" "none" "pan-x" "pan-y" "manipulation"))
3.488+ "Identifiers for properties and their possible values.
3.489+The CAR of each entry is the name of a property, while the CDR is
3.490+a list of possible values for that property. String values in
3.491+the CDRs represent literal values, while symbols represent one of
3.492+the value classes found in `css-value-class-alist'. If a symbol
3.493+is not found in `css-value-class-alist', it's interpreted as a
3.494+reference back to one of the properties in this list. Some
3.495+symbols, such as `number' or `identifier', don't produce any
3.496+further value candidates, since that list would be infinite.")
3.497+
3.498+(defvar *css-property-ids*
3.499+ (mapcar #'car *css-property-alist*)
3.500+ "Identifiers for properties.")
3.501+
3.502+(defvar *css--color-map*
3.503+ '(("black" . "#000000")
3.504+ ("silver" . "#c0c0c0")
3.505+ ("gray" . "#808080")
3.506+ ("white" . "#ffffff")
3.507+ ("maroon" . "#800000")
3.508+ ("red" . "#ff0000")
3.509+ ("purple" . "#800080")
3.510+ ("fuchsia" . "#ff00ff")
3.511+ ("magenta" . "#ff00ff")
3.512+ ("green" . "#008000")
3.513+ ("lime" . "#00ff00")
3.514+ ("olive" . "#808000")
3.515+ ("yellow" . "#ffff00")
3.516+ ("navy" . "#000080")
3.517+ ("blue" . "#0000ff")
3.518+ ("teal" . "#008080")
3.519+ ("aqua" . "#00ffff")
3.520+ ("cyan" . "#00ffff")
3.521+ ("orange" . "#ffa500")
3.522+ ("aliceblue" . "#f0f8ff")
3.523+ ("antiquewhite" . "#faebd7")
3.524+ ("aquamarine" . "#7fffd4")
3.525+ ("azure" . "#f0ffff")
3.526+ ("beige" . "#f5f5dc")
3.527+ ("bisque" . "#ffe4c4")
3.528+ ("blanchedalmond" . "#ffebcd")
3.529+ ("blueviolet" . "#8a2be2")
3.530+ ("brown" . "#a52a2a")
3.531+ ("burlywood" . "#deb887")
3.532+ ("cadetblue" . "#5f9ea0")
3.533+ ("chartreuse" . "#7fff00")
3.534+ ("chocolate" . "#d2691e")
3.535+ ("coral" . "#ff7f50")
3.536+ ("cornflowerblue" . "#6495ed")
3.537+ ("cornsilk" . "#fff8dc")
3.538+ ("crimson" . "#dc143c")
3.539+ ("darkblue" . "#00008b")
3.540+ ("darkcyan" . "#008b8b")
3.541+ ("darkgoldenrod" . "#b8860b")
3.542+ ("darkgray" . "#a9a9a9")
3.543+ ("darkgreen" . "#006400")
3.544+ ("darkgrey" . "#a9a9a9")
3.545+ ("darkkhaki" . "#bdb76b")
3.546+ ("darkmagenta" . "#8b008b")
3.547+ ("darkolivegreen" . "#556b2f")
3.548+ ("darkorange" . "#ff8c00")
3.549+ ("darkorchid" . "#9932cc")
3.550+ ("darkred" . "#8b0000")
3.551+ ("darksalmon" . "#e9967a")
3.552+ ("darkseagreen" . "#8fbc8f")
3.553+ ("darkslateblue" . "#483d8b")
3.554+ ("darkslategray" . "#2f4f4f")
3.555+ ("darkslategrey" . "#2f4f4f")
3.556+ ("darkturquoise" . "#00ced1")
3.557+ ("darkviolet" . "#9400d3")
3.558+ ("deeppink" . "#ff1493")
3.559+ ("deepskyblue" . "#00bfff")
3.560+ ("dimgray" . "#696969")
3.561+ ("dimgrey" . "#696969")
3.562+ ("dodgerblue" . "#1e90ff")
3.563+ ("firebrick" . "#b22222")
3.564+ ("floralwhite" . "#fffaf0")
3.565+ ("forestgreen" . "#228b22")
3.566+ ("gainsboro" . "#dcdcdc")
3.567+ ("ghostwhite" . "#f8f8ff")
3.568+ ("gold" . "#ffd700")
3.569+ ("goldenrod" . "#daa520")
3.570+ ("greenyellow" . "#adff2f")
3.571+ ("grey" . "#808080")
3.572+ ("honeydew" . "#f0fff0")
3.573+ ("hotpink" . "#ff69b4")
3.574+ ("indianred" . "#cd5c5c")
3.575+ ("indigo" . "#4b0082")
3.576+ ("ivory" . "#fffff0")
3.577+ ("khaki" . "#f0e68c")
3.578+ ("lavender" . "#e6e6fa")
3.579+ ("lavenderblush" . "#fff0f5")
3.580+ ("lawngreen" . "#7cfc00")
3.581+ ("lemonchiffon" . "#fffacd")
3.582+ ("lightblue" . "#add8e6")
3.583+ ("lightcoral" . "#f08080")
3.584+ ("lightcyan" . "#e0ffff")
3.585+ ("lightgoldenrodyellow" . "#fafad2")
3.586+ ("lightgray" . "#d3d3d3")
3.587+ ("lightgreen" . "#90ee90")
3.588+ ("lightgrey" . "#d3d3d3")
3.589+ ("lightpink" . "#ffb6c1")
3.590+ ("lightsalmon" . "#ffa07a")
3.591+ ("lightseagreen" . "#20b2aa")
3.592+ ("lightskyblue" . "#87cefa")
3.593+ ("lightslategray" . "#778899")
3.594+ ("lightslategrey" . "#778899")
3.595+ ("lightsteelblue" . "#b0c4de")
3.596+ ("lightyellow" . "#ffffe0")
3.597+ ("limegreen" . "#32cd32")
3.598+ ("linen" . "#faf0e6")
3.599+ ("mediumaquamarine" . "#66cdaa")
3.600+ ("mediumblue" . "#0000cd")
3.601+ ("mediumorchid" . "#ba55d3")
3.602+ ("mediumpurple" . "#9370db")
3.603+ ("mediumseagreen" . "#3cb371")
3.604+ ("mediumslateblue" . "#7b68ee")
3.605+ ("mediumspringgreen" . "#00fa9a")
3.606+ ("mediumturquoise" . "#48d1cc")
3.607+ ("mediumvioletred" . "#c71585")
3.608+ ("midnightblue" . "#191970")
3.609+ ("mintcream" . "#f5fffa")
3.610+ ("mistyrose" . "#ffe4e1")
3.611+ ("moccasin" . "#ffe4b5")
3.612+ ("navajowhite" . "#ffdead")
3.613+ ("oldlace" . "#fdf5e6")
3.614+ ("olivedrab" . "#6b8e23")
3.615+ ("orangered" . "#ff4500")
3.616+ ("orchid" . "#da70d6")
3.617+ ("palegoldenrod" . "#eee8aa")
3.618+ ("palegreen" . "#98fb98")
3.619+ ("paleturquoise" . "#afeeee")
3.620+ ("palevioletred" . "#db7093")
3.621+ ("papayawhip" . "#ffefd5")
3.622+ ("peachpuff" . "#ffdab9")
3.623+ ("peru" . "#cd853f")
3.624+ ("pink" . "#ffc0cb")
3.625+ ("plum" . "#dda0dd")
3.626+ ("powderblue" . "#b0e0e6")
3.627+ ("rosybrown" . "#bc8f8f")
3.628+ ("royalblue" . "#4169e1")
3.629+ ("saddlebrown" . "#8b4513")
3.630+ ("salmon" . "#fa8072")
3.631+ ("sandybrown" . "#f4a460")
3.632+ ("seagreen" . "#2e8b57")
3.633+ ("seashell" . "#fff5ee")
3.634+ ("sienna" . "#a0522d")
3.635+ ("skyblue" . "#87ceeb")
3.636+ ("slateblue" . "#6a5acd")
3.637+ ("slategray" . "#708090")
3.638+ ("slategrey" . "#708090")
3.639+ ("snow" . "#fffafa")
3.640+ ("springgreen" . "#00ff7f")
3.641+ ("steelblue" . "#4682b4")
3.642+ ("tan" . "#d2b48c")
3.643+ ("thistle" . "#d8bfd8")
3.644+ ("tomato" . "#ff6347")
3.645+ ("turquoise" . "#40e0d0")
3.646+ ("violet" . "#ee82ee")
3.647+ ("wheat" . "#f5deb3")
3.648+ ("whitesmoke" . "#f5f5f5")
3.649+ ("yellowgreen" . "#9acd32")
3.650+ ("rebeccapurple" . "#663399"))
3.651+ "Map CSS named colors to their hex RGB value.")
3.652+
3.653+(defvar *css-value-class-alist*
3.654+ `((absolute-size
3.655+ "xx-small" "x-small" "small" "medium" "large" "x-large"
3.656+ "xx-large")
3.657+ (alphavalue number)
3.658+ (angle "calc()")
3.659+ (animateable-feature "scroll-position" "contents" custom-ident)
3.660+ (attachment "scroll" "fixed" "local")
3.661+ (auto-repeat "repeat()")
3.662+ (auto-track-list line-names fixed-size fixed-repeat auto-repeat)
3.663+ (basic-shape "inset()" "circle()" "ellipse()" "polygon()")
3.664+ (bg-image image "none")
3.665+ (bg-layer bg-image position repeat-style attachment box)
3.666+ (bg-size length percentage "auto" "cover" "contain")
3.667+ (box "border-box" "padding-box" "content-box")
3.668+ (clip-source uri)
3.669+ (color
3.670+ "rgb()" "rgba()" "hsl()" "hsla()" named-color "transparent"
3.671+ "currentColor")
3.672+ (common-lig-values "common-ligatures" "no-common-ligatures")
3.673+ (compositing-operator "add" "subtract" "intersect" "exclude")
3.674+ (contextual-alt-values "contextual" "no-contextual")
3.675+ (counter "counter()" "counters()")
3.676+ (discretionary-lig-values
3.677+ "discretionary-ligatures" "no-discretionary-ligatures")
3.678+ (east-asian-variant-values
3.679+ "jis78" "jis83" "jis90" "jis04" "simplified" "traditional")
3.680+ (east-asian-width-values "full-width" "proportional-width")
3.681+ (explicit-track-list line-names track-size)
3.682+ (family-name "Courier" "Helvetica" "Times")
3.683+ (feature-tag-value string integer "on" "off")
3.684+ (filter-function
3.685+ "blur()" "brightness()" "contrast()" "drop-shadow()"
3.686+ "grayscale()" "hue-rotate()" "invert()" "opacity()" "sepia()"
3.687+ "saturate()")
3.688+ (filter-function-list filter-function uri)
3.689+ (final-bg-layer
3.690+ bg-image position repeat-style attachment box color)
3.691+ (fixed-breadth length-percentage)
3.692+ (fixed-repeat "repeat()")
3.693+ (fixed-size fixed-breadth "minmax()")
3.694+ (font-variant-css21 "normal" "small-caps")
3.695+ (frequency "calc()")
3.696+ (generic-family
3.697+ "serif" "sans-serif" "cursive" "fantasy" "monospace")
3.698+ (generic-voice "male" "female" "child")
3.699+ (geometry-box shape-box "fill-box" "stroke-box" "view-box")
3.700+ (gradient
3.701+ linear-gradient radial-gradient repeating-linear-gradient
3.702+ repeating-radial-gradient)
3.703+ (grid-line "auto" custom-ident integer "span")
3.704+ (historical-lig-values
3.705+ "historical-ligatures" "no-historical-ligatures")
3.706+ (image uri image-list element-reference gradient)
3.707+ (image-list "image()")
3.708+ (inflexible-breadth length-percentage "min-content" "max-content"
3.709+ "auto")
3.710+ (integer "calc()")
3.711+ (length "calc()" number)
3.712+ (line-height "normal" number length percentage)
3.713+ (line-names custom-ident)
3.714+ (line-style
3.715+ "none" "hidden" "dotted" "dashed" "solid" "double" "groove"
3.716+ "ridge" "inset" "outset")
3.717+ (line-width length "thin" "medium" "thick")
3.718+ (linear-gradient "linear-gradient()")
3.719+ (margin-width "auto" length percentage)
3.720+ (mask-layer
3.721+ mask-reference masking-mode position bg-size repeat-style
3.722+ geometry-box "no-clip" compositing-operator)
3.723+ (mask-reference "none" image mask-source)
3.724+ (mask-source uri)
3.725+ (masking-mode "alpha" "luminance" "auto")
3.726+ (named-color . ,(mapcar #'car *css--color-map*))
3.727+ (number "calc()")
3.728+ (numeric-figure-values "lining-nums" "oldstyle-nums")
3.729+ (numeric-fraction-values "diagonal-fractions" "stacked-fractions")
3.730+ (numeric-spacing-values "proportional-nums" "tabular-nums")
3.731+ (padding-width length percentage)
3.732+ (position
3.733+ "left" "center" "right" "top" "bottom" percentage length)
3.734+ (baseline-position "left" "right" "baseline")
3.735+ (content-distribution
3.736+ "space-between" "space-around" "space-evenly" "stretch")
3.737+ (overflow-position "unsafe" "safe")
3.738+ (content-position "center" "start" "end" "flex-start" "flex-end")
3.739+ (self-position
3.740+ "center" "start" "end" "self-start" "self-end" "flex-start" "flex-end")
3.741+pdp10 (radial-gradient "radial-gradient()")
3.742+ (relative-size "larger" "smaller")
3.743+ (repeat-style
3.744+ "repeat-x" "repeat-y" "repeat" "space" "round" "no-repeat")
3.745+ (repeating-linear-gradient "repeating-linear-gradient()")
3.746+ (repeating-radial-gradient "repeating-radial-gradient()")
3.747+ (shadow "inset" length color)
3.748+ (shape-box box "margin-box")
3.749+ (single-animation-direction
3.750+ "normal" "reverse" "alternate" "alternate-reverse")
3.751+ (single-animation-fill-mode "none" "forwards" "backwards" "both")
3.752+ (single-animation-iteration-count "infinite" number)
3.753+ (single-animation-name "none" identifier)
3.754+ (single-animation-play-state "running" "paused")
3.755+ (single-timing-function single-transition-timing-function)
3.756+ (single-transition
3.757+ "none" single-transition-property time
3.758+ single-transition-timing-function)
3.759+ (single-transition-property "all" identifier)
3.760+ (single-transition-timing-function
3.761+ "ease" "linear" "ease-in" "ease-out" "ease-in-out" "step-start"
3.762+ "step-end" "steps()" "cubic-bezier()")
3.763+ (specific-voice identifier)
3.764+ (target-name string)
3.765+ (time "calc()")
3.766+ (track-breadth length-percentage flex "min-content" "max-content"
3.767+ "auto")
3.768+ (track-list line-names track-size track-repeat)
3.769+ (track-repeat "repeat()")
3.770+ (track-size track-breadth "minmax()" "fit-content()")
3.771+ (transform-list
3.772+ "matrix()" "translate()" "translateX()" "translateY()" "scale()"
3.773+ "scaleX()" "scaleY()" "rotate()" "skew()" "skewX()" "skewY()"
3.774+ "matrix3d()" "translate3d()" "translateZ()" "scale3d()"
3.775+ "scaleZ()" "rotate3d()" "rotateX()" "rotateY()" "rotateZ()"
3.776+ "perspective()")
3.777+ (uri "url()")
3.778+ (width length percentage "auto")
3.779+ (x number)
3.780+ (y number))
3.781+ "Property value classes and their values.
3.782+The format is similar to that of *css-property-alist*, except
3.783+that the CARs aren't actual CSS properties, but rather a name for
3.784+a class of values, and that symbols in the CDRs always refer to
3.785+other entries in this list, not to properties.
3.786+
3.787+The following classes have been left out above because they
3.788+cannot be completed sensibly: `custom-ident',
3.789+`element-reference', `flex', `id', `identifier',
3.790+`length-percentage', `percentage', and `string'.")
4.1--- a/lisp/lib/dat/html/html.lisp Sun Sep 22 22:13:44 2024 -0400
4.2+++ b/lisp/lib/dat/html/html.lisp Mon Sep 23 17:03:54 2024 -0400
4.3@@ -293,43 +293,43 @@
4.4 ,@(char-range #\u007F #\u009F)
4.5 ;; The following are noncharacter as defined by Unicode.
4.6 ;; Clozure Common Lisp doesn't like them.
4.7- #-(or abcl ccl mezzano) ,@`(
4.8- ,@(char-range #\uD800 #\uDFFF)
4.9- ,@(char-range #\uFDD0 #\uFDEF)
4.10- #\uFFFE
4.11- #\uFFFF
4.12- #\u0001FFFE
4.13- #\u0001FFFF
4.14- #\u0002FFFE
4.15- #\u0002FFFF
4.16- #\u0003FFFE
4.17- #\u0003FFFF
4.18- #\u0004FFFE
4.19- #\u0004FFFF
4.20- #\u0005FFFE
4.21- #\u0005FFFF
4.22- #\u0006FFFE
4.23- #\u0006FFFF
4.24- #\u0007FFFE
4.25- #\u0007FFFF
4.26- #\u0008FFFE
4.27- #\u0008FFFF
4.28- #\u0009FFFE
4.29- #\u0009FFFF
4.30- #\u000AFFFE
4.31- #\u000AFFFF
4.32- #\u000BFFFE
4.33- #\u000BFFFF
4.34- #\u000CFFFE
4.35- #\u000CFFFF
4.36- #\u000DFFFE
4.37- #\u000DFFFF
4.38- #\u000EFFFE
4.39- #\u000EFFFF
4.40- #\u000FFFFE
4.41- #\u000FFFFF
4.42- #\u0010FFFE
4.43- #\u0010FFFF)))
4.44+ ,@`(
4.45+ ,@(char-range #\uD800 #\uDFFF)
4.46+ ,@(char-range #\uFDD0 #\uFDEF)
4.47+ #\uFFFE
4.48+ #\uFFFF
4.49+ #\u0001FFFE
4.50+ #\u0001FFFF
4.51+ #\u0002FFFE
4.52+ #\u0002FFFF
4.53+ #\u0003FFFE
4.54+ #\u0003FFFF
4.55+ #\u0004FFFE
4.56+ #\u0004FFFF
4.57+ #\u0005FFFE
4.58+ #\u0005FFFF
4.59+ #\u0006FFFE
4.60+ #\u0006FFFF
4.61+ #\u0007FFFE
4.62+ #\u0007FFFF
4.63+ #\u0008FFFE
4.64+ #\u0008FFFF
4.65+ #\u0009FFFE
4.66+ #\u0009FFFF
4.67+ #\u000AFFFE
4.68+ #\u000AFFFF
4.69+ #\u000BFFFE
4.70+ #\u000BFFFF
4.71+ #\u000CFFFE
4.72+ #\u000CFFFF
4.73+ #\u000DFFFE
4.74+ #\u000DFFFF
4.75+ #\u000EFFFE
4.76+ #\u000EFFFF
4.77+ #\u000FFFFE
4.78+ #\u000FFFFF
4.79+ #\u0010FFFE
4.80+ #\u0010FFFF)))
4.81
4.82 (defparameter *invalid-unicode-hash* (make-hash-table))
4.83 (dolist (char *invalid-unicode*)