// متن مقدمهٔ یکتای صفحهٔ لیست /clinics. // canonical درست، محتوای یکسان را غیرتکراری نمی‌کند — این متن همان نقش مکمل را دارد. // مثل صفحات تخصص، ساختار جمله‌بندی هر شهر با هش نام شهر انتخاب می‌شود تا ۳۵ دامنه // ۳۵ متن با ساختار متفاوت داشته باشند، نه یک قالب با نام جای‌گذاری‌شده. function hash(value) { let out = 0; for (let i = 0; i < value.length; i++) out = (out * 31 + value.charCodeAt(i)) >>> 0; return out; } // seed همیشه unsigned — با >> علامت‌دار، هش‌های بزرگ ایندکس منفی می‌ساختند. const pick = (variants, seed) => variants[(seed >>> 0) % variants.length]; const CLINIC_INTROS = (city) => [ `مراکز درمانی ${city} اینجا فهرست شده‌اند. هر کارت نام مرکز، شمارهٔ تماس و نشانی را نشان می‌دهد و با یک کلیک به صفحهٔ کامل همان مرکز می‌رسید. آنجا چیزهایی هست که در کارت جا نمی‌شود: تخصص‌هایی که ارائه می‌شود، پزشکانی که پذیرش دارند، بیمه‌های طرف قرارداد و موقعیت روی نقشه. اگر خدمت مشخصی مدنظرتان است، فیلتر تخصص بالای صفحه فهرست را کوتاه می‌کند. نوبت از صفحهٔ خودِ مرکز گرفته می‌شود؛ پزشک را انتخاب می‌کنید، بازهٔ خالی را می‌زنید و تأییدیه پیامک می‌شود. مرکزی که چند شعبه دارد، هر شعبه رکورد جدا با ساعت کاری خودش دارد. فهرست صفحه‌بندی دارد، پس اگر شهر مراکز زیادی داشته باشد همه در یک صفحه فشرده نمی‌شوند. سابقهٔ نوبت‌هایی که می‌گیرید در حساب کاربری‌تان می‌ماند.`, `اگر ترجیح می‌دهید اول مرکز درمانی را انتخاب کنید و بعد پزشک را، این صفحه نقطهٔ شروع است. کلینیک‌های تخصصی، درمانگاه‌های چندتخصصی و مراکز تصویربرداری ${city} کنار هم آمده‌اند. صفحهٔ هر مرکز پزشکان همکارش را با تخصص و اولین نوبت آزادشان نشان می‌دهد، پس لازم نیست جداگانه دنبال پزشک بگردید. نشانی و شمارهٔ تماس هر مرکز دوره‌ای بازبینی می‌شود. مراکزی که شبانه‌روزی پذیرش دارند جدا مشخص شده‌اند. رزرو همان‌جا انجام می‌شود و هزینهٔ خدمت پیش از تأیید نهایی نمایش داده می‌شود، پس قبل از قطعی‌شدن می‌دانید چقدر است. اگر مرکزی هنوز پزشکی ثبت نکرده باشد، صفحه‌اش اطلاعات تماس را نشان می‌دهد ولی تقویم نوبت خالی نخواهد داشت. لغو نوبت هم از بخش نوبت‌های من انجام می‌شود.`, `فهرست زیر مراکز درمانی فعال ${city} است. تفاوتش با یک جست‌وجوی ساده این است که هر رکورد به صفحه‌ای کامل وصل است: موقعیت روی نقشه، ساعات کاری، فهرست تخصص‌ها و پزشکانی که در همان مرکز پذیرش دارند. برای مراکزی که چند تخصص را زیر یک سقف جمع کرده‌اند، می‌شود در یک مراجعه چند کار را پیش برد. بیمه‌های طرف قرارداد هم روی همان صفحه آمده. نوبت با تأیید شما قطعی می‌شود و تأییدیه پیامک می‌گردد؛ اگر برنامه‌تان عوض شد، لغو از بخش نوبت‌های من انجام می‌شود و آن بازه آزاد می‌شود. فیلتر تخصص بالای صفحه فهرست را کوتاه می‌کند و انتخاب شما در نشانی صفحه ثبت می‌شود، پس همان نما را می‌توانید دوباره باز کنید یا برای کسی بفرستید.`, `کلینیک‌های ${city} با اطلاعات یک‌شکل کنار هم آمده‌اند تا مقایسه سخت نباشد. روی کارت هر مرکز نام و شمارهٔ تماس پیداست؛ باقی چیزها در صفحهٔ خودش است — تخصص‌ها، پزشکان، بیمه‌ها و نقشه. اگر مرکزی چند شعبه دارد، هر شعبه رکورد مستقل خودش را با ساعت کاری جداگانه دارد، پس پیش از راه‌افتادن شعبهٔ درست را انتخاب کنید. رزرو از صفحهٔ مرکز و از طریق پزشکش انجام می‌شود. تأییدیه بلافاصله پیامک می‌شود و سابقهٔ نوبت در حساب کاربری‌تان می‌ماند تا مراجعهٔ بعدی سریع‌تر باشد. هزینهٔ هر خدمت هم پیش از تأیید نهایی نمایش داده می‌شود. مراکزی که شبانه‌روزی پذیرش دارند با نشانهٔ جداگانه مشخص شده‌اند تا در شرایط اضطراری زودتر پیدایشان کنید.`, `این صفحه مراکز درمانی ${city} را نشان می‌دهد، از کلینیک تخصصی تا درمانگاه چندتخصصی. جست‌وجو را می‌توانید با فیلتر تخصص محدود کنید تا فقط مراکزی بمانند که خدمت موردنظرتان را می‌دهند. صفحهٔ هر مرکز نشانی، شمارهٔ تماس، موقعیت روی نقشه و فهرست پزشکان همکار را دارد؛ کنار نام هر پزشک تخصص و وضعیت نوبت‌دهی‌اش هم آمده. رزرو از همان‌جا انجام می‌شود، شبانه‌روزی و بدون تماس تلفنی. اگر به‌جای مرکز دنبال یک پزشک مشخص هستید، فهرست پزشکان ${city} مسیر مستقیم‌تری است. بیمه‌های طرف قرارداد هر مرکز روی صفحهٔ خودش آمده، پس پیش از مراجعه می‌دانید پوشش دارید یا نه. اگر مرکزی چند شعبه داشته باشد، هر شعبه رکورد مستقل با ساعت کاری خودش دارد.`, `مرکز درمانی مناسب در ${city} را از این فهرست پیدا کنید. هر مرکز صفحهٔ اختصاصی دارد و آنچه آنجا می‌بینید از رکورد خودِ مرکز می‌آید: خدمات، تخصص‌ها، بیمه‌های طرف قرارداد و پزشکانی که پذیرش دارند. موقعیت روی نقشه هم هست تا پیش از مراجعه مسیر و زمان رسیدن را بدانید. نوبت‌گیری از صفحهٔ مرکز و از طریق پزشک انجام می‌شود؛ هزینهٔ خدمت پیش از تأیید نمایش داده می‌شود. لغو نوبت از حساب کاربری ممکن است و بازهٔ لغوشده همان لحظه به فهرست نوبت‌های آزاد برمی‌گردد. برای محدود کردن فهرست می‌توانید از فیلتر تخصص استفاده کنید تا فقط مراکزی بمانند که خدمت موردنظرتان را ارائه می‌دهند. نشانی و شمارهٔ تماس هر مرکز دوره‌ای بازبینی می‌شود.`, ]; /** * جملهٔ آماری که به انتهای متن می‌چسبد. * * انتخاب variant با هش انجام می‌شود و با ۶ حالت و ۳۵ شهر، حدود ۱۵٪ جفت‌ها هم‌variant * می‌شوند. برای آن جفت‌ها متن تقریباً یکسان می‌شد و دو صفحه دوباره شبیه هم — سنجیده * شد: بهبهان و یاسوج روی /clinics از ۶۸٫۹٪ به ۸۴٫۷٪ شباهت رفتند. * * عدد واقعیِ هر شهر این را می‌شکند، چون هیچ دو شهری آمار یکسان ندارند. */ const countSentence = (count, cityName, noun) => Number(count) > 0 ? ` هم‌اکنون ${Number(count)} ${noun} در ${cityName} روی این سامانه ثبت شده‌اند.` : ""; export function buildClinicsIntro(cityName, clinicCount = 0) { return ( pick(CLINIC_INTROS(cityName), hash(cityName) >>> 2) + countSentence(clinicCount, cityName, "مرکز درمانی") ); }