থিম লেআউট ও স্লট
লেআউট
mineproj-এর ৭টি মূল লেআউট প্রয়োজন। প্রতিটি লেআউট একটি React কম্পোনেন্ট যা LayoutProps গ্রহণ করে।
হোম লেআউট
হোমপেজ। ফিচার্ড প্রকল্প, সাম্প্রতিক প্রকল্প এবং প্রোফাইল তথ্য প্রদর্শন করে।
লিস্ট লেআউট
প্রকল্পগুলোর একটি ফিল্টারকৃত/সাজানো গ্রিড দেখায়। /projects/ রুট দ্বারা ব্যবহৃত হয়।
ডিটেইল লেআউট
পৃথক প্রকল্প পৃষ্ঠা /projects/<slug>/-এ। সম্পূর্ণ প্রকল্পের বিবরণ, মূল বিষয়বস্তু, স্ক্রিনশট, ভিডিও, PDF এবং প্লেয়েবল ডেমো দেখায়।
ট্যাগ লেআউট
/tags/<tag>/-এ ট্যাগ অনুসারে ফিল্টার করা প্রকল্প তালিকাভুক্ত করে।
কালেকশন লেআউট
একটি কালেকশনের প্রকল্প তালিকাভুক্ত করে। ট্যাগ লেআউটের মতোই কাজ করে।
অ্যাবাউট লেআউট
/about/-এ অ্যাবাউট পৃষ্ঠা। প্রোফাইল তথ্য দেখায়।
নট ফাউন্ড লেআউট
404 পৃষ্ঠা। যখন কোনো রুট মেলে না তখন দেখানো হয়।
স্লট
স্লট হল এক্সটেনসিবিলিটি পয়েন্ট যেখানে প্লাগিনগুলি কম্পোনেন্ট ইনজেক্ট করতে পারে:
// একটি প্লাগিনে
export default definePlugin({
name: 'my-plugin',
hooks: {
setup: (ctx) => {
ctx.registerSlot('header', MyHeaderComponent);
},
},
});বিল্ট-ইন স্লটের মধ্যে সাধারণত অন্তর্ভুক্ত: header, footer, sidebar, editor-shell।
ফলব্যাক আচরণ
যদি একটি থিম কোনো লেআউট প্রদান না করে, mineproj ডিফল্ট থিমের লেআউটে ফিরে যায় এবং একটি সতর্কতা জারি করে। এটি নিশ্চিত করে যে সাইটটি সর্বদা বিল্ড হয়, এমনকি অসম্পূর্ণ থিমের সাথেও।
কম্পোনেন্ট রেজিস্ট্রি
কম্পোনেন্ট রেজিস্ট্রি এই ক্রমে কম্পোনেন্ট সমাধান করে:
- থিম কম্পোনেন্ট
- প্লাগিন কম্পোনেন্ট
- ব্যবহারকারী ওভাররাইড (পরবর্তীটি জয়ী)
অজানা কম্পোনেন্ট ওভাররাইড একটি সতর্কতা ট্রিগার করে।