Convert all API endpoint URLs to SX expression format
Every URL at sx-web.org now uses bracketed SX expressions — pages AND API endpoints. defhandler :path values, sx-get/sx-post/sx-delete attrs, code examples, and Python route decorators all converted. - Add SxAtomConverter to handlers.py for parameter matching inside expression URLs (e.g. /(api.(item.<sx:item_id>))) - Convert ~50 defhandler :path values in ref-api.sx and examples.sx - Convert ~90 sx-get/sx-post/sx-delete URLs in reference.sx, examples.sx - Convert ~30 code example URLs in examples-content.sx - Convert ~30 API URLs in pages.py (Python string code examples) - Convert ~70 page navigation URLs in pages.py - Convert 7 Python route decorators in routes.py - Convert ~10 reactive API URLs in marshes.sx - Add API redirect patterns to sx_router.py (301 for old paths) - Remove /api/ skip in app.py redirects (old API paths now redirect) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -10,79 +10,79 @@ from __future__ import annotations
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
DOCS_NAV = [
|
||||
("Introduction", "/language/docs/introduction"),
|
||||
("Getting Started", "/language/docs/getting-started"),
|
||||
("Components", "/language/docs/components"),
|
||||
("Evaluator", "/language/docs/evaluator"),
|
||||
("Primitives", "/language/docs/primitives"),
|
||||
("CSS", "/language/docs/css"),
|
||||
("Server Rendering", "/language/docs/server-rendering"),
|
||||
("Introduction", "/(language.(doc.introduction))"),
|
||||
("Getting Started", "/(language.(doc.getting-started))"),
|
||||
("Components", "/(language.(doc.components))"),
|
||||
("Evaluator", "/(language.(doc.evaluator))"),
|
||||
("Primitives", "/(language.(doc.primitives))"),
|
||||
("CSS", "/(language.(doc.css))"),
|
||||
("Server Rendering", "/(language.(doc.server-rendering))"),
|
||||
]
|
||||
|
||||
REFERENCE_NAV = [
|
||||
("Attributes", "/geography/hypermedia/reference/attributes"),
|
||||
("Headers", "/geography/hypermedia/reference/headers"),
|
||||
("Events", "/geography/hypermedia/reference/events"),
|
||||
("JS API", "/geography/hypermedia/reference/js-api"),
|
||||
("Attributes", "/(geography.(hypermedia.(reference.attributes)))"),
|
||||
("Headers", "/(geography.(hypermedia.(reference.headers)))"),
|
||||
("Events", "/(geography.(hypermedia.(reference.events)))"),
|
||||
("JS API", "/(geography.(hypermedia.(reference.js-api)))"),
|
||||
]
|
||||
|
||||
PROTOCOLS_NAV = [
|
||||
("Wire Format", "/applications/protocols/wire-format"),
|
||||
("Fragments", "/applications/protocols/fragments"),
|
||||
("Resolver I/O", "/applications/protocols/resolver-io"),
|
||||
("Internal Services", "/applications/protocols/internal-services"),
|
||||
("ActivityPub", "/applications/protocols/activitypub"),
|
||||
("Future", "/applications/protocols/future"),
|
||||
("Wire Format", "/(applications.(protocol.wire-format))"),
|
||||
("Fragments", "/(applications.(protocol.fragments))"),
|
||||
("Resolver I/O", "/(applications.(protocol.resolver-io))"),
|
||||
("Internal Services", "/(applications.(protocol.internal-services))"),
|
||||
("ActivityPub", "/(applications.(protocol.activitypub))"),
|
||||
("Future", "/(applications.(protocol.future))"),
|
||||
]
|
||||
|
||||
EXAMPLES_NAV = [
|
||||
("Click to Load", "/geography/hypermedia/examples/click-to-load"),
|
||||
("Form Submission", "/geography/hypermedia/examples/form-submission"),
|
||||
("Polling", "/geography/hypermedia/examples/polling"),
|
||||
("Delete Row", "/geography/hypermedia/examples/delete-row"),
|
||||
("Inline Edit", "/geography/hypermedia/examples/inline-edit"),
|
||||
("OOB Swaps", "/geography/hypermedia/examples/oob-swaps"),
|
||||
("Lazy Loading", "/geography/hypermedia/examples/lazy-loading"),
|
||||
("Infinite Scroll", "/geography/hypermedia/examples/infinite-scroll"),
|
||||
("Progress Bar", "/geography/hypermedia/examples/progress-bar"),
|
||||
("Active Search", "/geography/hypermedia/examples/active-search"),
|
||||
("Inline Validation", "/geography/hypermedia/examples/inline-validation"),
|
||||
("Value Select", "/geography/hypermedia/examples/value-select"),
|
||||
("Reset on Submit", "/geography/hypermedia/examples/reset-on-submit"),
|
||||
("Edit Row", "/geography/hypermedia/examples/edit-row"),
|
||||
("Bulk Update", "/geography/hypermedia/examples/bulk-update"),
|
||||
("Swap Positions", "/geography/hypermedia/examples/swap-positions"),
|
||||
("Select Filter", "/geography/hypermedia/examples/select-filter"),
|
||||
("Tabs", "/geography/hypermedia/examples/tabs"),
|
||||
("Animations", "/geography/hypermedia/examples/animations"),
|
||||
("Dialogs", "/geography/hypermedia/examples/dialogs"),
|
||||
("Keyboard Shortcuts", "/geography/hypermedia/examples/keyboard-shortcuts"),
|
||||
("PUT / PATCH", "/geography/hypermedia/examples/put-patch"),
|
||||
("JSON Encoding", "/geography/hypermedia/examples/json-encoding"),
|
||||
("Vals & Headers", "/geography/hypermedia/examples/vals-and-headers"),
|
||||
("Loading States", "/geography/hypermedia/examples/loading-states"),
|
||||
("Request Abort", "/geography/hypermedia/examples/sync-replace"),
|
||||
("Retry", "/geography/hypermedia/examples/retry"),
|
||||
("Click to Load", "/(geography.(hypermedia.(example.click-to-load)))"),
|
||||
("Form Submission", "/(geography.(hypermedia.(example.form-submission)))"),
|
||||
("Polling", "/(geography.(hypermedia.(example.polling)))"),
|
||||
("Delete Row", "/(geography.(hypermedia.(example.delete-row)))"),
|
||||
("Inline Edit", "/(geography.(hypermedia.(example.inline-edit)))"),
|
||||
("OOB Swaps", "/(geography.(hypermedia.(example.oob-swaps)))"),
|
||||
("Lazy Loading", "/(geography.(hypermedia.(example.lazy-loading)))"),
|
||||
("Infinite Scroll", "/(geography.(hypermedia.(example.infinite-scroll)))"),
|
||||
("Progress Bar", "/(geography.(hypermedia.(example.progress-bar)))"),
|
||||
("Active Search", "/(geography.(hypermedia.(example.active-search)))"),
|
||||
("Inline Validation", "/(geography.(hypermedia.(example.inline-validation)))"),
|
||||
("Value Select", "/(geography.(hypermedia.(example.value-select)))"),
|
||||
("Reset on Submit", "/(geography.(hypermedia.(example.reset-on-submit)))"),
|
||||
("Edit Row", "/(geography.(hypermedia.(example.edit-row)))"),
|
||||
("Bulk Update", "/(geography.(hypermedia.(example.bulk-update)))"),
|
||||
("Swap Positions", "/(geography.(hypermedia.(example.swap-positions)))"),
|
||||
("Select Filter", "/(geography.(hypermedia.(example.select-filter)))"),
|
||||
("Tabs", "/(geography.(hypermedia.(example.tabs)))"),
|
||||
("Animations", "/(geography.(hypermedia.(example.animations)))"),
|
||||
("Dialogs", "/(geography.(hypermedia.(example.dialogs)))"),
|
||||
("Keyboard Shortcuts", "/(geography.(hypermedia.(example.keyboard-shortcuts)))"),
|
||||
("PUT / PATCH", "/(geography.(hypermedia.(example.put-patch)))"),
|
||||
("JSON Encoding", "/(geography.(hypermedia.(example.json-encoding)))"),
|
||||
("Vals & Headers", "/(geography.(hypermedia.(example.vals-and-headers)))"),
|
||||
("Loading States", "/(geography.(hypermedia.(example.loading-states)))"),
|
||||
("Request Abort", "/(geography.(hypermedia.(example.sync-replace)))"),
|
||||
("Retry", "/(geography.(hypermedia.(example.retry)))"),
|
||||
]
|
||||
|
||||
ESSAYS_NAV = [
|
||||
("sx sucks", "/etc/essays/sx-sucks"),
|
||||
("Why S-Expressions", "/etc/essays/why-sexps"),
|
||||
("The htmx/React Hybrid", "/etc/essays/htmx-react-hybrid"),
|
||||
("On-Demand CSS", "/etc/essays/on-demand-css"),
|
||||
("Client Reactivity", "/etc/essays/client-reactivity"),
|
||||
("SX Native", "/etc/essays/sx-native"),
|
||||
("The SX Manifesto", "/etc/philosophy/sx-manifesto"),
|
||||
("Tail-Call Optimization", "/etc/essays/tail-call-optimization"),
|
||||
("Continuations", "/etc/essays/continuations"),
|
||||
("sx sucks", "/(etc.(essay.sx-sucks))"),
|
||||
("Why S-Expressions", "/(etc.(essay.why-sexps))"),
|
||||
("The htmx/React Hybrid", "/(etc.(essay.htmx-react-hybrid))"),
|
||||
("On-Demand CSS", "/(etc.(essay.on-demand-css))"),
|
||||
("Client Reactivity", "/(etc.(essay.client-reactivity))"),
|
||||
("SX Native", "/(etc.(essay.sx-native))"),
|
||||
("The SX Manifesto", "/(etc.(philosophy.sx-manifesto))"),
|
||||
("Tail-Call Optimization", "/(etc.(essay.tail-call-optimization))"),
|
||||
("Continuations", "/(etc.(essay.continuations))"),
|
||||
]
|
||||
|
||||
MAIN_NAV = [
|
||||
("Docs", "/language/docs/introduction"),
|
||||
("Reference", "/geography/hypermedia/reference/"),
|
||||
("Protocols", "/applications/protocols/wire-format"),
|
||||
("Examples", "/geography/hypermedia/examples/click-to-load"),
|
||||
("Essays", "/etc/essays/sx-sucks"),
|
||||
("Docs", "/(language.(doc.introduction))"),
|
||||
("Reference", "/(geography.(hypermedia.(reference)))"),
|
||||
("Protocols", "/(applications.(protocol.wire-format))"),
|
||||
("Examples", "/(geography.(hypermedia.(example.click-to-load)))"),
|
||||
("Essays", "/(etc.(essay.sx-sucks))"),
|
||||
]
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -744,7 +744,7 @@ ATTR_DETAILS: dict[str, dict] = {
|
||||
),
|
||||
"demo": "ref-get-demo",
|
||||
"example": (
|
||||
'(button :sx-get "/geography/hypermedia/reference/api/time"\n'
|
||||
'(button :sx-get "/(geography.(hypermedia.(reference.(api.time))))"\n'
|
||||
' :sx-target "#ref-get-result"\n'
|
||||
' :sx-swap "innerHTML"\n'
|
||||
' "Load server time")'
|
||||
@@ -764,7 +764,7 @@ ATTR_DETAILS: dict[str, dict] = {
|
||||
),
|
||||
"demo": "ref-post-demo",
|
||||
"example": (
|
||||
'(form :sx-post "/geography/hypermedia/reference/api/greet"\n'
|
||||
'(form :sx-post "/(geography.(hypermedia.(reference.(api.greet))))"\n'
|
||||
' :sx-target "#ref-post-result"\n'
|
||||
' :sx-swap "innerHTML"\n'
|
||||
' (input :type "text" :name "name"\n'
|
||||
@@ -786,7 +786,7 @@ ATTR_DETAILS: dict[str, dict] = {
|
||||
),
|
||||
"demo": "ref-put-demo",
|
||||
"example": (
|
||||
'(button :sx-put "/geography/hypermedia/reference/api/status"\n'
|
||||
'(button :sx-put "/(geography.(hypermedia.(reference.(api.status))))"\n'
|
||||
' :sx-target "#ref-put-view"\n'
|
||||
' :sx-swap "innerHTML"\n'
|
||||
' :sx-vals "{\\"status\\": \\"published\\"}"\n'
|
||||
@@ -807,7 +807,7 @@ ATTR_DETAILS: dict[str, dict] = {
|
||||
),
|
||||
"demo": "ref-delete-demo",
|
||||
"example": (
|
||||
'(button :sx-delete "/geography/hypermedia/reference/api/item/1"\n'
|
||||
'(button :sx-delete "/(geography.(hypermedia.(reference.(api.(item.1)))))"\n'
|
||||
' :sx-target "#ref-del-1"\n'
|
||||
' :sx-swap "delete"\n'
|
||||
' "Remove")'
|
||||
@@ -826,7 +826,7 @@ ATTR_DETAILS: dict[str, dict] = {
|
||||
),
|
||||
"demo": "ref-patch-demo",
|
||||
"example": (
|
||||
'(button :sx-patch "/geography/hypermedia/reference/api/theme"\n'
|
||||
'(button :sx-patch "/(geography.(hypermedia.(reference.(api.theme))))"\n'
|
||||
' :sx-vals "{\\"theme\\": \\"dark\\"}"\n'
|
||||
' :sx-target "#ref-patch-val"\n'
|
||||
' :sx-swap "innerHTML"\n'
|
||||
@@ -852,7 +852,7 @@ ATTR_DETAILS: dict[str, dict] = {
|
||||
"example": (
|
||||
'(input :type "text" :name "q"\n'
|
||||
' :placeholder "Type to search..."\n'
|
||||
' :sx-get "/geography/hypermedia/reference/api/trigger-search"\n'
|
||||
' :sx-get "/(geography.(hypermedia.(reference.(api.trigger-search))))"\n'
|
||||
' :sx-trigger "input changed delay:300ms"\n'
|
||||
' :sx-target "#ref-trigger-result"\n'
|
||||
' :sx-swap "innerHTML")'
|
||||
@@ -874,12 +874,12 @@ ATTR_DETAILS: dict[str, dict] = {
|
||||
"demo": "ref-target-demo",
|
||||
"example": (
|
||||
';; Two buttons targeting different elements\n'
|
||||
'(button :sx-get "/geography/hypermedia/reference/api/time"\n'
|
||||
'(button :sx-get "/(geography.(hypermedia.(reference.(api.time))))"\n'
|
||||
' :sx-target "#ref-target-a"\n'
|
||||
' :sx-swap "innerHTML"\n'
|
||||
' "Update Box A")\n'
|
||||
'\n'
|
||||
'(button :sx-get "/geography/hypermedia/reference/api/time"\n'
|
||||
'(button :sx-get "/(geography.(hypermedia.(reference.(api.time))))"\n'
|
||||
' :sx-target "#ref-target-b"\n'
|
||||
' :sx-swap "innerHTML"\n'
|
||||
' "Update Box B")'
|
||||
@@ -894,13 +894,13 @@ ATTR_DETAILS: dict[str, dict] = {
|
||||
"demo": "ref-swap-demo",
|
||||
"example": (
|
||||
';; Append to the end of a list\n'
|
||||
'(button :sx-get "/geography/hypermedia/reference/api/swap-item"\n'
|
||||
'(button :sx-get "/(geography.(hypermedia.(reference.(api.swap-item))))"\n'
|
||||
' :sx-target "#ref-swap-list"\n'
|
||||
' :sx-swap "beforeend"\n'
|
||||
' "beforeend")\n'
|
||||
'\n'
|
||||
';; Prepend to the start\n'
|
||||
'(button :sx-get "/geography/hypermedia/reference/api/swap-item"\n'
|
||||
'(button :sx-get "/(geography.(hypermedia.(reference.(api.swap-item))))"\n'
|
||||
' :sx-target "#ref-swap-list"\n'
|
||||
' :sx-swap "afterbegin"\n'
|
||||
' "afterbegin")'
|
||||
@@ -921,7 +921,7 @@ ATTR_DETAILS: dict[str, dict] = {
|
||||
),
|
||||
"demo": "ref-oob-demo",
|
||||
"example": (
|
||||
'(button :sx-get "/geography/hypermedia/reference/api/oob"\n'
|
||||
'(button :sx-get "/(geography.(hypermedia.(reference.(api.oob))))"\n'
|
||||
' :sx-target "#ref-oob-main"\n'
|
||||
' :sx-swap "innerHTML"\n'
|
||||
' "Update both boxes")'
|
||||
@@ -944,7 +944,7 @@ ATTR_DETAILS: dict[str, dict] = {
|
||||
),
|
||||
"demo": "ref-select-demo",
|
||||
"example": (
|
||||
'(button :sx-get "/geography/hypermedia/reference/api/select-page"\n'
|
||||
'(button :sx-get "/(geography.(hypermedia.(reference.(api.select-page))))"\n'
|
||||
' :sx-target "#ref-select-result"\n'
|
||||
' :sx-select "#the-content"\n'
|
||||
' :sx-swap "innerHTML"\n'
|
||||
@@ -968,7 +968,7 @@ ATTR_DETAILS: dict[str, dict] = {
|
||||
),
|
||||
"demo": "ref-confirm-demo",
|
||||
"example": (
|
||||
'(button :sx-delete "/geography/hypermedia/reference/api/item/confirm"\n'
|
||||
'(button :sx-delete "/(geography.(hypermedia.(reference.(api.(item.confirm)))))"\n'
|
||||
' :sx-target "#ref-confirm-item"\n'
|
||||
' :sx-swap "delete"\n'
|
||||
' :sx-confirm "Are you sure you want to delete this file?"\n'
|
||||
@@ -1003,7 +1003,7 @@ ATTR_DETAILS: dict[str, dict] = {
|
||||
"example": (
|
||||
'(input :type "text" :name "q"\n'
|
||||
' :placeholder "Type quickly..."\n'
|
||||
' :sx-get "/geography/hypermedia/reference/api/slow-echo"\n'
|
||||
' :sx-get "/(geography.(hypermedia.(reference.(api.slow-echo))))"\n'
|
||||
' :sx-trigger "input changed delay:100ms"\n'
|
||||
' :sx-sync "replace"\n'
|
||||
' :sx-target "#ref-sync-result"\n'
|
||||
@@ -1024,7 +1024,7 @@ ATTR_DETAILS: dict[str, dict] = {
|
||||
),
|
||||
"demo": "ref-encoding-demo",
|
||||
"example": (
|
||||
'(form :sx-post "/geography/hypermedia/reference/api/upload-name"\n'
|
||||
'(form :sx-post "/(geography.(hypermedia.(reference.(api.upload-name))))"\n'
|
||||
' :sx-encoding "multipart/form-data"\n'
|
||||
' :sx-target "#ref-encoding-result"\n'
|
||||
' :sx-swap "innerHTML"\n'
|
||||
@@ -1044,7 +1044,7 @@ ATTR_DETAILS: dict[str, dict] = {
|
||||
),
|
||||
"demo": "ref-headers-demo",
|
||||
"example": (
|
||||
'(button :sx-get "/geography/hypermedia/reference/api/echo-headers"\n'
|
||||
'(button :sx-get "/(geography.(hypermedia.(reference.(api.echo-headers))))"\n'
|
||||
' :sx-headers \'{"X-Custom-Token": "abc123", "X-Request-Source": "demo"}\'\n'
|
||||
' :sx-target "#ref-headers-result"\n'
|
||||
' :sx-swap "innerHTML"\n'
|
||||
@@ -1073,7 +1073,7 @@ ATTR_DETAILS: dict[str, dict] = {
|
||||
' (option :value "books" "Books")\n'
|
||||
' (option :value "tools" "Tools"))\n'
|
||||
'\n'
|
||||
'(button :sx-get "/geography/hypermedia/reference/api/echo-vals"\n'
|
||||
'(button :sx-get "/(geography.(hypermedia.(reference.(api.echo-vals))))"\n'
|
||||
' :sx-include "#ref-inc-cat"\n'
|
||||
' :sx-target "#ref-include-result"\n'
|
||||
' :sx-swap "innerHTML"\n'
|
||||
@@ -1097,7 +1097,7 @@ ATTR_DETAILS: dict[str, dict] = {
|
||||
),
|
||||
"demo": "ref-vals-demo",
|
||||
"example": (
|
||||
'(button :sx-post "/geography/hypermedia/reference/api/echo-vals"\n'
|
||||
'(button :sx-post "/(geography.(hypermedia.(reference.(api.echo-vals))))"\n'
|
||||
' :sx-vals \'{"source": "demo", "page": "3"}\'\n'
|
||||
' :sx-target "#ref-vals-result"\n'
|
||||
' :sx-swap "innerHTML"\n'
|
||||
@@ -1133,7 +1133,7 @@ ATTR_DETAILS: dict[str, dict] = {
|
||||
';; Left box: sx works normally\n'
|
||||
';; Right box: sx-disable prevents any sx behavior\n'
|
||||
'(div :sx-disable "true"\n'
|
||||
' (button :sx-get "/geography/hypermedia/reference/api/time"\n'
|
||||
' (button :sx-get "/(geography.(hypermedia.(reference.(api.time))))"\n'
|
||||
' :sx-target "#ref-dis-b"\n'
|
||||
' :sx-swap "innerHTML"\n'
|
||||
' "Load")\n'
|
||||
@@ -1166,7 +1166,7 @@ ATTR_DETAILS: dict[str, dict] = {
|
||||
),
|
||||
"demo": "ref-retry-demo",
|
||||
"example": (
|
||||
'(button :sx-get "/geography/hypermedia/reference/api/flaky"\n'
|
||||
'(button :sx-get "/(geography.(hypermedia.(reference.(api.flaky))))"\n'
|
||||
' :sx-target "#ref-retry-result"\n'
|
||||
' :sx-swap "innerHTML"\n'
|
||||
' :sx-retry "true"\n'
|
||||
@@ -1239,7 +1239,7 @@ ATTR_DETAILS: dict[str, dict] = {
|
||||
),
|
||||
"demo": "ref-preload-demo",
|
||||
"example": (
|
||||
'(button :sx-get "/geography/hypermedia/reference/api/time"\n'
|
||||
'(button :sx-get "/(geography.(hypermedia.(reference.(api.time))))"\n'
|
||||
' :sx-target "#ref-preload-result"\n'
|
||||
' :sx-swap "innerHTML"\n'
|
||||
' :sx-preload "mouseover"\n'
|
||||
@@ -1275,7 +1275,7 @@ ATTR_DETAILS: dict[str, dict] = {
|
||||
),
|
||||
"demo": "ref-indicator-demo",
|
||||
"example": (
|
||||
'(button :sx-get "/geography/hypermedia/reference/api/slow-echo"\n'
|
||||
'(button :sx-get "/(geography.(hypermedia.(reference.(api.slow-echo))))"\n'
|
||||
' :sx-target "#ref-indicator-result"\n'
|
||||
' :sx-swap "innerHTML"\n'
|
||||
' :sx-indicator "#ref-spinner"\n'
|
||||
@@ -1302,7 +1302,7 @@ ATTR_DETAILS: dict[str, dict] = {
|
||||
),
|
||||
"demo": "ref-validate-demo",
|
||||
"example": (
|
||||
'(form :sx-post "/geography/hypermedia/reference/api/greet"\n'
|
||||
'(form :sx-post "/(geography.(hypermedia.(reference.(api.greet))))"\n'
|
||||
' :sx-target "#ref-validate-result"\n'
|
||||
' :sx-swap "innerHTML"\n'
|
||||
' :sx-validate "true"\n'
|
||||
@@ -1340,7 +1340,7 @@ ATTR_DETAILS: dict[str, dict] = {
|
||||
),
|
||||
"demo": "ref-optimistic-demo",
|
||||
"example": (
|
||||
'(button :sx-delete "/geography/hypermedia/reference/api/item/opt1"\n'
|
||||
'(button :sx-delete "/(geography.(hypermedia.(reference.(api.(item.opt1)))))"\n'
|
||||
' :sx-target "#ref-opt-item"\n'
|
||||
' :sx-swap "delete"\n'
|
||||
' :sx-optimistic "remove"\n'
|
||||
@@ -1362,7 +1362,7 @@ ATTR_DETAILS: dict[str, dict] = {
|
||||
),
|
||||
"demo": "ref-replace-url-demo",
|
||||
"example": (
|
||||
'(button :sx-get "/geography/hypermedia/reference/api/time"\n'
|
||||
'(button :sx-get "/(geography.(hypermedia.(reference.(api.time))))"\n'
|
||||
' :sx-target "#ref-replurl-result"\n'
|
||||
' :sx-swap "innerHTML"\n'
|
||||
' :sx-replace-url "true"\n'
|
||||
@@ -1378,7 +1378,7 @@ ATTR_DETAILS: dict[str, dict] = {
|
||||
),
|
||||
"demo": "ref-disabled-elt-demo",
|
||||
"example": (
|
||||
'(button :sx-get "/geography/hypermedia/reference/api/slow-echo"\n'
|
||||
'(button :sx-get "/(geography.(hypermedia.(reference.(api.slow-echo))))"\n'
|
||||
' :sx-target "#ref-diselt-result"\n'
|
||||
' :sx-swap "innerHTML"\n'
|
||||
' :sx-disabled-elt "this"\n'
|
||||
@@ -1394,7 +1394,7 @@ ATTR_DETAILS: dict[str, dict] = {
|
||||
),
|
||||
"demo": "ref-prompt-demo",
|
||||
"example": (
|
||||
'(button :sx-get "/geography/hypermedia/reference/api/prompt-echo"\n'
|
||||
'(button :sx-get "/(geography.(hypermedia.(reference.(api.prompt-echo))))"\n'
|
||||
' :sx-target "#ref-prompt-result"\n'
|
||||
' :sx-swap "innerHTML"\n'
|
||||
' :sx-prompt "Enter your name:"\n'
|
||||
@@ -1414,7 +1414,7 @@ ATTR_DETAILS: dict[str, dict] = {
|
||||
),
|
||||
"demo": "ref-params-demo",
|
||||
"example": (
|
||||
'(form :sx-post "/geography/hypermedia/reference/api/echo-vals"\n'
|
||||
'(form :sx-post "/(geography.(hypermedia.(reference.(api.echo-vals))))"\n'
|
||||
' :sx-target "#ref-params-result"\n'
|
||||
' :sx-swap "innerHTML"\n'
|
||||
' :sx-params "name"\n'
|
||||
@@ -1433,7 +1433,7 @@ ATTR_DETAILS: dict[str, dict] = {
|
||||
),
|
||||
"demo": "ref-sse-demo",
|
||||
"example": (
|
||||
'(div :sx-sse "/geography/hypermedia/reference/api/sse-time"\n'
|
||||
'(div :sx-sse "/(geography.(hypermedia.(reference.(api.sse-time))))"\n'
|
||||
' :sx-sse-swap "time"\n'
|
||||
' :sx-target "#ref-sse-result"\n'
|
||||
' :sx-swap "innerHTML"\n'
|
||||
|
||||
Reference in New Issue
Block a user