URL restructure, 404 page, trailing slash normalization, layout fixes
- Rename /reactive-islands/ → /reactive/, /reference/ → /hypermedia/reference/, /examples/ → /hypermedia/examples/ across all .sx and .py files - Add 404 error page (not-found.sx) working on both server refresh and client-side SX navigation via orchestration.sx error response handling - Add trailing slash redirect (GET only, excludes /api/, /static/, /internal/) - Remove blue sky-500 header bar from SX docs layout (conditional on header-rows) - Fix 405 on API endpoints from trailing slash redirect hitting POST/PUT/DELETE - Fix client-side 404: orchestration.sx now swaps error response content instead of silently dropping it - Add new plan files and home page component Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -171,17 +171,17 @@ def _reference_data(slug: str) -> dict:
|
||||
return {
|
||||
"req-attrs": [
|
||||
{"name": a, "desc": d, "exists": e,
|
||||
"href": f"/reference/attributes/{a}" if e and a in ATTR_DETAILS else None}
|
||||
"href": f"/hypermedia/reference/attributes/{a}" if e and a in ATTR_DETAILS else None}
|
||||
for a, d, e in REQUEST_ATTRS
|
||||
],
|
||||
"beh-attrs": [
|
||||
{"name": a, "desc": d, "exists": e,
|
||||
"href": f"/reference/attributes/{a}" if e and a in ATTR_DETAILS else None}
|
||||
"href": f"/hypermedia/reference/attributes/{a}" if e and a in ATTR_DETAILS else None}
|
||||
for a, d, e in BEHAVIOR_ATTRS
|
||||
],
|
||||
"uniq-attrs": [
|
||||
{"name": a, "desc": d, "exists": e,
|
||||
"href": f"/reference/attributes/{a}" if e and a in ATTR_DETAILS else None}
|
||||
"href": f"/hypermedia/reference/attributes/{a}" if e and a in ATTR_DETAILS else None}
|
||||
for a, d, e in SX_UNIQUE_ATTRS
|
||||
],
|
||||
}
|
||||
@@ -189,12 +189,12 @@ def _reference_data(slug: str) -> dict:
|
||||
return {
|
||||
"req-headers": [
|
||||
{"name": n, "value": v, "desc": d,
|
||||
"href": f"/reference/headers/{n}" if n in HEADER_DETAILS else None}
|
||||
"href": f"/hypermedia/reference/headers/{n}" if n in HEADER_DETAILS else None}
|
||||
for n, v, d in REQUEST_HEADERS
|
||||
],
|
||||
"resp-headers": [
|
||||
{"name": n, "value": v, "desc": d,
|
||||
"href": f"/reference/headers/{n}" if n in HEADER_DETAILS else None}
|
||||
"href": f"/hypermedia/reference/headers/{n}" if n in HEADER_DETAILS else None}
|
||||
for n, v, d in RESPONSE_HEADERS
|
||||
],
|
||||
}
|
||||
@@ -203,7 +203,7 @@ def _reference_data(slug: str) -> dict:
|
||||
return {
|
||||
"events-list": [
|
||||
{"name": n, "desc": d,
|
||||
"href": f"/reference/events/{n}" if n in EVENT_DETAILS else None}
|
||||
"href": f"/hypermedia/reference/events/{n}" if n in EVENT_DETAILS else None}
|
||||
for n, d in EVENTS
|
||||
],
|
||||
}
|
||||
@@ -218,17 +218,17 @@ def _reference_data(slug: str) -> dict:
|
||||
return {
|
||||
"req-attrs": [
|
||||
{"name": a, "desc": d, "exists": e,
|
||||
"href": f"/reference/attributes/{a}" if e and a in ATTR_DETAILS else None}
|
||||
"href": f"/hypermedia/reference/attributes/{a}" if e and a in ATTR_DETAILS else None}
|
||||
for a, d, e in REQUEST_ATTRS
|
||||
],
|
||||
"beh-attrs": [
|
||||
{"name": a, "desc": d, "exists": e,
|
||||
"href": f"/reference/attributes/{a}" if e and a in ATTR_DETAILS else None}
|
||||
"href": f"/hypermedia/reference/attributes/{a}" if e and a in ATTR_DETAILS else None}
|
||||
for a, d, e in BEHAVIOR_ATTRS
|
||||
],
|
||||
"uniq-attrs": [
|
||||
{"name": a, "desc": d, "exists": e,
|
||||
"href": f"/reference/attributes/{a}" if e and a in ATTR_DETAILS else None}
|
||||
"href": f"/hypermedia/reference/attributes/{a}" if e and a in ATTR_DETAILS else None}
|
||||
for a, d, e in SX_UNIQUE_ATTRS
|
||||
],
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user