پنل ادمین
سلام. الان که این پست رو مینویسم ساعت ۱:۴۲ صبحه. امروز خیلی نتونستم کار کنم و وقتهایی که در طی روز درست کار نمیکنم، شبها تا صبح بیدار میمونم تا که کمکاری رو یکجوری جبران کرده باشم.
این وسطها به ذهنم رسید که کاش میشد که این پنل ادمینی که میخواستم برای بلاگ آماده کنم رو الان یککاریش کنم. رفتم antigravity رو باز کردم و مشغول شدم. خدا پدر و مادر این هوش مصنوعیها رو بیامرزه. برای پروژههای اینطوری مثل چوب جادواند. فاصلهی ایده تا اجرا، به تعداد خطهای پرامپته. من قبلا یک پست راجعبه این که چطوری با این AIها کار میکنم نوشتم. از اون پست تا الان خیلی چیزها فرق کرده. هم من فرق کردم و تعریف بهتری از جایگاه خودم و AI در دنیا امروز بهدست آوردم و هم این که ابزارها دقیقتر و کاملتر شدند. روندی که با سرعت دارند در مسیر صعود میتازند. سر فرصت آپدیتی به اون پست هم خواهم نوشت. دیگه مقدمه بسه.
من خیلی نیاز به این داشتم که بدون دردسر کشیدن، بتونم پستهای بلاگ و کلا تمام محتواش رو بدون این که درگیر کار با خود markdownها بشم و با گیت ور برم بنویسم. برای آدم مودی مثل من، کوچیکترین دستاندازها میتونن مثل پتکی به شیشهی بلورین اراده فرود بیان. میخواستم تا میتونم مانعزدایی کنم. نمیدونم که میدونید یا نه، ولی تمام پستهای بلاگ و تمام محتوای دیگهش ریو ریپوی گیتهاب بلاگ پوش میشند و بعد از هربار پوش، در طی یک دیپلویمنت جدید، پستهای بلاگ آپدیت میشند. علاوه بر پستها، بخش سمت چپ بلاگ، پخش علاقهمندیها هم به همین شکلند. سعی کردم توی فاز اول پیادهسازی بلاگ، خیلی از کارها رو خودکار کنم. مثلا وقتی یک عنوان جدید به بخش علاقهمندیها اضافه میشه، یک اسکریپت بهصورت خودکار، از URLای که گذاشته شده بود تلاش میکنه کاور اون آیتم (آهنگ، فیلم، کتاب و غیره) رو استخراج کنه. یا از اونجایی که پاک کردن متادیتای عکسها مهمند و من ممکنه که یادم بره که این کار رو از قبل انجام بدم، اینها هم باز توسط یک اسکریپت دیگه پاکسازی میشند. البته صادقانه، خیلی این اسکریپتها رو بررسی نکردم :) و احتمالا کلی سوتی توشون داشته باشه ولی تا الان که خوب کار کردن. نکتهی مهم اینه که هردوی این اسکریپتها قبل از کامیت کردن به عنوان فازهای pre-commit اجرا میشند برای این که تا قبل از کامیت و پوش، عملا هیچ دادهای از سیستم من خارج نشده و همهچیز باید قبل از فاز کامیت انجام بشند.
خلاصه یک سری کار انجام دادم برای تصحیل فرآیند ولی کافی نبود. همیشه به این فکر میکردم که یک سیستم مدیریت محتوای مجزا بیارم برای این که پستهای بلاگ رو بتونم مدیریت کنم. هرچند که تمام این بلاگ (بجز خود محتوا) با AI پیاده شده و البته پرامپتهای من، ولی انگیزه و حوصلهی کافی حتی با این امکانات هم نبود. تا این که همونطور که گفتم، قرعه بهنام امشب افتاد...
اولین این که، بهجای یک اپ مجزا، یک پنل ادمین لوکال برای بلاگ پیاده کردم که امکان این رو میده که بشه تمام محتوای بلاگ رو تغییر داد. از تغییر در بخش «علاقهمندیها» تا پستها و حتی اطلاعات تماس. این پنل همونطور که گفتم فقط روی لوکال قابل دسترسه و فضایی مجزا از بلاگ نیست. میتونم توی بلاگم باشم و پستهام رو بنویسم. درست مثل همین پست که الان مشغولشم.
از اونجایی که تنها زحمت من پیدا کردن مسائل و نیازمندیها بود و کار یدی رو دوش AI، هرچی که به ذهنم جالب میرسید رو پیاده کردم که اینجا دوست دارم تیتروار لیست کنم:
- بخشی برای مدیریت آیتمهای علاقمندیها: آپلود دستی/خودکار کاور هر آیتم. حذف/اضافه/ویرایش آیتمهای علاقمندیها
- بخشی برای مدیریت اطلاعات تماس
- مدیریت محتوای صفحات «پیشنهادات» و «درباره»
- حذف/اضافه/ویرایش پستهای بلاگ:
- آپلود کاور پستها از طریق پنل
- تنظیم تگهای مخفی روی پستهای بلاگ با کمک Gemini بر اساس محتوای پست برای بهبود سئو
- اضافه کردن امکان آرشیو کردن پست بعد از انتشار در web.archive و درنهایت امکان انتشار تغییرات با یک دکمه که در پسزمینه، کامندهای گیت رو اجرا میکنه.
یک سری تغییرات ریز دیگه هم دادم که البته ربطی به بخش پنل ادمین نداره. مثل این که توی کامندهای ترمینال، کامند favs رو اضافه کردم. یا امکان collaps کردن بخشهای علاقهمندیها و ارتباط و در حالت موبایل، امکان بستن بخش ارتباط با من رو. یا sitemap خودکار و یا مشکلی که توی bionic read برای متنهای فارسی بود رو حل کردم و خلاصه یه سری کار مفت که واسه خودم بامزه بود.
از نتیجهی این کارم هم راضیم. به این خاطر که به اون هدفی که میخواستم رسیدم: فاصلهی بین فکر تا عمل رو به سمت کمینه میل دادم. بهونه رو از خودم گرفتم و حالا خیلی راحتتر و بدون وقت هدر دادن این پست رو نوشتم. برای منتشر کردنش هم فقط کافیه که یک کلیک بکنم و یک کامیت مسیج براش بنویسم و تمام.
الان ساعت ۰۲:۱۱ صبحه و اگر این پست بدون مشکل منتشر بشه، میخوام برم سراغ ادامهی کارم. اگر میخوایید بدونید چیه، در حال حاضر دارم یک Feature gate پیاده میکنم که این امکان رو میده که بشه شکلی از فیچر فلگ داشت و فیچرها رو برای گروه خاصی از کاربرا فعال/غیرفعال کرد. این هم در راستای یک تغییر اساسی توی کد بیسه که نمیخواستم اگر مشکلی پیش اومد، همهی کاربرها رو متاثر کنه.
مرسی که تا اینجا خوندین. ارادتمند، علیرضا.
پینوشت: از اونجایی که پنل ادمین رو شما نمیتونید ببنید، با خودم گفتم که بد نیست که چند تااسکرینشات بگیرم و بذارم که اینجا باشه.






I'd love to hear from you! Send me your feedback or comments via email.
reply by email