"""Documentation content for the sx docs site. All page content as Python data structures, consumed by sx_components.py to build s-expression page trees. """ from __future__ import annotations # --------------------------------------------------------------------------- # Navigation # --------------------------------------------------------------------------- DOCS_NAV = [ ("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)))"), ] PROTOCOLS_NAV = [ ("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.(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.(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.(doc.introduction))"), ("Reference", "/(geography.(hypermedia.(reference)))"), ("Protocols", "/(applications.(protocol.wire-format))"), ("Examples", "/(geography.(hypermedia.(example.click-to-load)))"), ("Essays", "/(etc.(essay.sx-sucks))"), ] # --------------------------------------------------------------------------- # Reference: Attributes # --------------------------------------------------------------------------- REQUEST_ATTRS = [ ("sx-get", "Issue a GET request to the given URL", True), ("sx-post", "Issue a POST request to the given URL", True), ("sx-put", "Issue a PUT request to the given URL", True), ("sx-delete", "Issue a DELETE request to the given URL", True), ("sx-patch", "Issue a PATCH request to the given URL", True), ] BEHAVIOR_ATTRS = [ ("sx-trigger", "Specifies the event that triggers the request. Modifiers: once, changed, delay: