Add SVG cover art to SX Manifesto as s-expression

Soviet constructivist poster with paper texture filters, grid lines,
aged stain spots, and "(<x>)" symbol in red.

Add missing SVG filter primitive tags to both server (html.py) and
client (sx.js): feTurbulence, feColorMatrix, feBlend,
feComponentTransfer, feFuncR/G/B/A, feDisplacementMap, feComposite,
feFlood, feImage, feMorphology, feSpecularLighting, feDiffuseLighting,
fePointLight, feSpotLight, feDistantLight.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-04 13:34:58 +00:00
parent ccd9b969ea
commit 2663dfb095
3 changed files with 122 additions and 2 deletions

View File

@@ -1020,7 +1020,13 @@
"img picture source iframe embed object param video audio track canvas map area " +
"svg math path circle ellipse line polygon polyline rect g defs use text tspan " +
"clipPath mask linearGradient radialGradient stop filter " +
"feGaussianBlur feOffset feMerge feMergeNode animate animateTransform " +
"feGaussianBlur feOffset feMerge feMergeNode " +
"feTurbulence feColorMatrix feBlend " +
"feComponentTransfer feFuncR feFuncG feFuncB feFuncA " +
"feDisplacementMap feComposite feFlood feImage " +
"feMorphology feSpecularLighting feDiffuseLighting " +
"fePointLight feSpotLight feDistantLight " +
"animate animateTransform " +
"table thead tbody tfoot tr th td caption colgroup col " +
"form fieldset legend label input button select option optgroup textarea output " +
"datalist progress meter details summary dialog template slot"
@@ -1040,7 +1046,13 @@
var SVG_TAGS = makeSet(
"svg path circle ellipse line polygon polyline rect g defs use text tspan " +
"clipPath mask linearGradient radialGradient stop filter " +
"feGaussianBlur feOffset feMerge feMergeNode animate animateTransform"
"feGaussianBlur feOffset feMerge feMergeNode " +
"feTurbulence feColorMatrix feBlend " +
"feComponentTransfer feFuncR feFuncG feFuncB feFuncA " +
"feDisplacementMap feComposite feFlood feImage " +
"feMorphology feSpecularLighting feDiffuseLighting " +
"fePointLight feSpotLight feDistantLight " +
"animate animateTransform"
);
var SVG_NS = "http://www.w3.org/2000/svg";

View File

@@ -94,6 +94,11 @@ HTML_TAGS = frozenset({
"g", "defs", "use", "text", "tspan", "clipPath", "mask",
"linearGradient", "radialGradient", "stop", "filter",
"feGaussianBlur", "feOffset", "feMerge", "feMergeNode",
"feTurbulence", "feColorMatrix", "feBlend",
"feComponentTransfer", "feFuncR", "feFuncG", "feFuncB", "feFuncA",
"feDisplacementMap", "feComposite", "feFlood", "feImage",
"feMorphology", "feSpecularLighting", "feDiffuseLighting",
"fePointLight", "feSpotLight", "feDistantLight",
"animate", "animateTransform",
# Table
"table", "thead", "tbody", "tfoot", "tr", "th", "td",