→ بازگشت به وبلاگ

نقشه‌ی HTML صفحه‌ای برای خواندن است

نقشه‌ی HTML در /fa/map/ و /en/map/ صفحه‌ها، موضوع‌ها، همه‌ی نوشته‌های همان زبان و دو نمونه را گروه‌بندی می‌کند. نوشته‌ی تازه بعد از ساخت بعدی روی نقشه است.

محمد هنرورنوشته‌ی محمد هنرور
· ۴ دقیقه مطالعه

نقشه یک صفحه‌ی HTML است. فارسی /fa/map/ است و انگلیسی /en/map/. src/pages/[lang]/map.astro هر دو را می‌سازد، چون getStaticPaths دو زبان را می‌گردد. سندی می‌گیری با عنوان، یک لید کوتاه، و چهار گروه لینک. گروه‌ها صفحه‌ها، موضوع‌ها، نوشته‌ها و نمونه‌ها هستند. لینک هر گروه زبان همان نشانی را دارد که باز کرده‌ای.

منظور من از نقشه‌ی HTML همین صفحه است. ریز هر مسیری نیست که ساخت می‌تواند بسازد، و گزارش یک خزشگر هم نیست. چهار گروه در خود فایل نوشته شده‌اند. نوشته‌های داخل یکی از آن‌ها همه‌ی نوشته‌های منتشرشده‌ی همان زبان‌اند، تازه‌تر اول، همان ترتیبی که getPosts برای وبلاگ به کار می‌برد.

چهار گروه چه دارند

گروه اول صفحه‌هاست. برچسب‌ها از متن رابط و از ماژول صفحه‌ها می‌آیند: خانه، درباره‌ی من، صفحه‌ی همکاری، شناسنامه‌ی سایت، و پروژه‌ها. همکاری همان شیوه‌ی همکاری است. همان صفحه‌ای است که پاپیچ به آن لینک می‌دهد. در سرصفحه نیست. سرصفحه خانه، وبلاگ، پروژه‌ها و درباره است.

گروه دوم موضوع‌هاست. لینک اول فهرست موضوع‌هاست. سه موضوع از topicById می‌آیند: رابط فارسی و راست‌به‌چپ، تایپ و فاصله، و صفحه‌ی سریع. مسیرشان /fa/topics/rtl/ و /fa/topics/type/ و /fa/topics/speed/ است. صفحه‌ی سریع همان خوشه‌ای است که این نقشه به آن می‌خورد، از این جهت که نقشه سندی ایستاست. motion برابر false فرستاده می‌شود. قالب صحنه سوار نمی‌کند.

گروه سوم نوشته‌هاست. لینک اول فهرست وبلاگ است. بعد از آن هر نوشته‌ای که getPosts(lang) برای همین زبان برمی‌گرداند فهرست می‌شود، با عنوان خود نوشته. فایل مارک‌داون تازه در پوشه‌ی همان زبان، بعد از ساخت بعدی روی نقشه است. پیش‌نویس بیرون از حالت توسعه در فهرست نیست.

گروه چهارم نمونه‌هاست. یک لینک شرح همین سایت است، ریپازیتوری mh-honarvar.github.io، با عنوان همان شرح. دیگری صفحه‌ی کارکیاست. هر دو مسیر هم‌زبان زیر /fa/projects/ هستند.

فهرست چه را بیرون می‌گذارد

گروه نوشته‌ها همان وبلاگ این زبان است، نه آرایه‌ی دست‌چین noteSlugs. لینکی که می‌فرستی یک زبان است، مقاله‌ی همین صفحه، و حداکثر سه نوشته با برچسب مشترک فایل‌اند در src/content/blog/fa، پس روی /fa/map/ هستند. نوشته‌ای که فقط در پوشه‌ی زبان دیگر باشد روی این نقشه نیست.

جعبه‌ی فرمان فهرست دیگری است. Base.astro آن را با خانه، وبلاگ، پروژه‌ها، درباره، همکاری، و همه‌ی نوشته‌های هر دو زبان پر می‌کند. نقشه، شناسنامه، و صفحه‌های موضوع در آن آرایه نیستند. جست‌وجو دوازده نتیجه نگه می‌دارد و زبان همین صفحه را اول می‌گذارد، پس زبان مقابل فقط وقتی دیده می‌شود که زبان جاری فهرست را پر نکرده باشد. پاپیچ به گیت‌هاب، تلگرام، همکاری و خوراک لینک می‌دهد. نقشه میان آن لینک‌ها نیست. فرمان open map در ترمینال به /${lang}/map/ می‌رود. می‌توانی /fa/map/ را مستقیم باز کنی، یا لینکی را دنبال کنی، از جمله لینک همین جمله.

نشانی متعارف خود صفحه است می‌گوید نوشته‌ی وبلاگ کی حق دارد زبان مقابل را نام ببرد. نقشه ساده‌تر است، چون هر دو زبان همین صفحه‌ی Astro هستند. قالب alternate را پاس نمی‌دهد. پیش‌فرض چیدمان true است و صفحه noindex نیست. پس سرصفحه hreflang همین زبان، hreflang زبان مقابل، و x-default روی نشانی فارسی نقشه را دارد. og:locale این‌جا fa_IR است و در /en/map/ برابر en_US. og:locale:alternate همان پیش‌فرض را دنبال می‌کند. دکمه‌ی زبان پیشوند /fa/ را با /en/ عوض می‌کند و نقشه‌ی انگلیسی را باز می‌کند، چون altPath بازنویسی نشده است.

فهرستی ایستا، گروه‌بندی‌شده برای آدم

صافی نقشه‌ی سایت این مسیر را نگه می‌دارد. عبارتی که موضوع‌ها، شناسنامه، نقشه و همکاری را راه می‌دهد برای /fa/map/ و /en/map/ مقدار true برمی‌گرداند. این قاعده‌ی ساخت است درباره‌ی اینکه کدام نشانی برای یافتن فهرست شود. اندازه‌ی بازدید نیست و من نقشه‌ی سایت را امتیاز حساب نمی‌کنم. صفحه‌ی HTML همان چیزی است که آدم می‌تواند بی‌باز کردن آن فایل بخواند.

هر لینک یک لنگر با برچسب دیدنی است. عنوان‌ها صفحه‌ها، موضوع‌ها، نوشته‌ها و نمونه‌ها هستند. صفحه‌ی انگلیسی برچسب انگلیسی و عنوان انگلیسی را به کار می‌برد، چون getPosts('en') عنوان‌های /en/map/ را می‌دهد و getPosts('fa') عنوان‌های این‌جا را. عنوان فارسی روی نقشه‌ی انگلیسی دوباره استفاده نمی‌شود. نوشته‌ای که فقط در یک زبان فایل دارد فقط روی نقشه‌ی همان زبان دیده می‌شود.

صفحه روی بخش data-pagefind-body می‌گذارد تا جست‌وجوی ساخته‌شده برچسب‌ها را ببیند. جست‌وجو هنوز در مرورگر روی فایل‌هایی اجرا می‌شود که از قبل نوشته شده‌اند. نقشه از سرور نمی‌خواهد گروه‌ها را سر هم کند. Astro فهرست‌ها را وقت ساخت سایت نوشته است. GitHub Pages فایل را می‌فرستد.

بلوک نوشته‌های مرتبط وبلاگ نوع سوم فهرست است و این صفحه نیست. حداکثر سه نوشته با برچسب مشترک آن را شرح می‌دهد. آن بلوک برچسب‌های نوشته‌ی جاری را می‌بیند و داخل یک زبان می‌ماند. نقشه هر نوشته‌ای را فهرست می‌کند که getPosts برای همین زبان برمی‌گرداند، و در همان زبان می‌ماند چون postUrl پوشه‌ی نوشته را نگه می‌دارد و کمک‌تابع href پیشوند /${lang} می‌گذارد. اشتراک لینک نقشه، مثل اشتراک هر صفحه‌ی دیگر، یکی از این دو نشانی را می‌فرستد. لینکی که می‌فرستی یک زبان است همان قاعده است.

اگر فقط جایی برای شروع خواسته باشی، نقشه همان جاست: صفحه‌ای کوتاه، دو نشانی، چهار گروهی که کسی انتخابشان کرده، و داخل نوشته‌ها همه‌ی مقاله‌های زبانی که باز کرده‌ای.

↑↓EnterEsc

guest@mh-honarvar: ~