"""سئوی سمت سرور — robots.txt، sitemap.xml، llms.txt و سرو همهٔ صفحات با متای تزریقی. فرانتاند یک SPA است؛ خزندههای جستوجو و شبکههای اجتماعی جاوااسکریپت اجرا نمیکنند. این ماژول همان index.html بیلد فرانتاند را میخواند و پیش از ارسال، تگهای title / description / canonical / OG / hreflang / JSON-LD را از دیتابیس داخل آن تزریق میکند — بازدیدکنندههای عادی همان SPA همیشگی را میبینند و خزندهها متای درست را در HTML اولیه میخوانند. (اسکیمای صفحه داخل ') if org_jsonld: payload = json.dumps(org_jsonld, ensure_ascii=False).replace("", "<\\/") tags.append(f'') block = "\n ".join(tags) raw = _read_index() if raw is None: # بیلد فرانتاند سوار نشده — صفحه حداقلی با خودِ متا تا خزندهها دست خالی نمانند lang_attr = 'lang="en" dir="ltr"' if lang == "en" else 'lang="fa" dir="rtl"' body = f"
{esc(description)}
" return HTMLResponse( f'' f"