{% if page.layout == 'home' %}
{{ content }}
{% else %}
{% if page.title %}

{{ page.title }}

{% endif %} {% if page.description %}

{{ page.description }}

{% endif %} {% assign words = content | number_of_words %} {% assign reading_time = words | divided_by: 200 %} {% if reading_time < 1 %}{% assign reading_time = 1 %}{% endif %} {{ content }} {% assign pages_order = "getting-started,quick-start,core-concepts,json-config,pythonic-api,interpreters,context,guards,actions,services,delayed-transitions,hierarchical,parallel,final-states,actors,plugins,snapshots,reliability,testing-and-pure-api,diagrams,examples,example-gallery,cli,cli-templates,cli-hierarchy,stately-export,integrations,integrations-extras,patterns,persistence,guarantees,security,compatibility,deprecation-policy,integration-redis,integration-pydantic,integration-starlette,integration-fastapi,integration-litestar,integration-sqlalchemy,integration-flask,integration-django,integration-drf,integration-agents,integration-testing,integration-observability,integration-inspector,integration-eda,integration-brokers,integration-celery,vs-langgraph,vs-burr,vs-statelyai-agent,vs-django-fsm,vs-transitions,vs-python-statemachine,vs-step-functions,coming-from-python-statemachine,coming-from-transitions,recipes,stripe-webhooks,apscheduler-timers,task-queue-workers,form-wizard,slot-filling,feature-flag-rollout,websocket-reconnect,circuit-breaker-retry,production-characteristics,troubleshooting,faq,changelog" | split: "," %} {% assign current_name = page.url | remove: "/guide/" | remove: "/" %} {% assign prev_page = nil %} {% assign next_page = nil %} {% assign found = false %} {% for name in pages_order %} {% if found and next_page == nil %} {% assign next_page = name %} {% endif %} {% if name == current_name %} {% assign found = true %} {% endif %} {% unless found %} {% assign prev_page = name %} {% endunless %} {% endfor %} {% if prev_page or next_page %} {% endif %}
{% endif %}