Rebrand sexp → sx across web platform (173 files)
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 11m37s

Rename all sexp directories, files, identifiers, and references to sx.
artdag/ excluded (separate media processing DSL).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-01 11:06:57 +00:00
parent 17cebe07e7
commit e8bc228c7f
174 changed files with 3126 additions and 2952 deletions

View File

@@ -57,9 +57,9 @@ def _error_page(message: str) -> str:
)
def _sexp_error_page(errnum: str, message: str, image: str | None = None) -> str:
def _sx_error_page(errnum: str, message: str, image: str | None = None) -> str:
"""Render an error page via s-expressions. Bypasses Jinja entirely."""
from shared.sexp.page import render_page
from shared.sx.page import render_page
return render_page(
'(~error-page :title title :message message :image image :asset-url "/static")',
@@ -147,24 +147,24 @@ async def _rich_error_page(errnum: str, message: str, image: str | None = None)
pass
# Root header (site nav bar)
from shared.sexp.helpers import (
root_header_sexp, post_header_sexp,
header_child_sexp, full_page_sexp, sexp_call,
from shared.sx.helpers import (
root_header_sx, post_header_sx,
header_child_sx, full_page_sx, sx_call,
)
hdr = root_header_sexp(ctx)
hdr = root_header_sx(ctx)
# Post breadcrumb if we resolved a post
post = (post_data or {}).get("post") or ctx.get("post") or {}
if post.get("slug"):
ctx["post"] = post
post_row = post_header_sexp(ctx)
post_row = post_header_sx(ctx)
if post_row:
hdr = "(<> " + hdr + " " + header_child_sexp(post_row) + ")"
hdr = "(<> " + hdr + " " + header_child_sx(post_row) + ")"
# Error content
error_content = sexp_call("error-content", errnum=errnum, message=message, image=image)
error_content = sx_call("error-content", errnum=errnum, message=message, image=image)
return full_page_sexp(ctx, header_rows=hdr, content=error_content)
return full_page_sx(ctx, header_rows=hdr, content=error_content)
except Exception:
current_app.logger.debug("Rich error page failed, falling back", exc_info=True)
return None
@@ -202,7 +202,7 @@ def errors(app):
)
if html is None:
try:
html = _sexp_error_page(
html = _sx_error_page(
"404", "NOT FOUND",
image="/static/errors/404.gif",
)
@@ -224,7 +224,7 @@ def errors(app):
)
else:
try:
html = _sexp_error_page(
html = _sx_error_page(
"403", "FORBIDDEN",
image="/static/errors/403.gif",
)
@@ -244,7 +244,7 @@ def errors(app):
messages = getattr(e, "messages", [str(e)])
if request.headers.get("SX-Request") == "true" or request.headers.get("HX-Request") == "true":
from shared.sexp.jinja_bridge import render as render_comp
from shared.sx.jinja_bridge import render as render_comp
items = "".join(
render_comp("error-list-item", message=str(escape(m)))
for m in messages if m
@@ -266,7 +266,7 @@ def errors(app):
# Extract service name from "Fragment account/auth-menu failed: ..."
service = msg.split("/")[0].replace("Fragment ", "") if "/" in msg else "unknown"
if request.headers.get("SX-Request") == "true" or request.headers.get("HX-Request") == "true":
from shared.sexp.jinja_bridge import render as render_comp
from shared.sx.jinja_bridge import render as render_comp
return await make_response(
render_comp("fragment-error", service=str(escape(service))),
503,