প্রকল্প সম্পর্কে

Obsidian Dataview হল Obsidian নোট-গ্রহণ অ্যাপ্লিকেশনের জন্য একটি প্লাগইন যা ব্যবহারকারীর ভল্টকে একটি কুয়েরিযোগ্য ডেটাবেসে রূপান্তরিত করে। এটি YAML ফ্রন্টম্যাটার এবং ইনলাইন ফিল্ড অ্যানোটেশন (যেমন `Key:: Value` সিনট্যাক্স ব্যবহার করে) থেকে মেটাডেটা বের করে Markdown ফাইলগুলিকে সূচিবদ্ধ করে, তারপর সেই ডেটা ফিল্টার, সাজানো এবং ভিজ্যুয়ালাইজ করার জন্য একাধিক কুয়েরি মোড প্রদান করে। প্লাগইনটি চারটি কুয়েরি ইন্টারফেস অফার করে: 1. **Dataview Query Language (DQL)**: মৌলিক কুয়েরির জন্য একটি পাইপলাইন-ভিত্তিক, SQL-সদৃশ এক্সপ্রেশন ভাষা। উদাহরণস্বরূপ, রেটিং অনুযায়ী সাজানো একটি ফোল্ডার থেকে ফাইল তালিকাভুক্ত করা, বা ট্যাগ দ্বারা ফিল্টার করা। 2. **Inline Expressions**: DQL এক্সপ্রেশন যা সরাসরি Markdown টেক্সটে এমবেড করা যায় এবং প্রিভিউ মোডে মূল্যায়ন করা যায়, যেমন বর্তমান পৃষ্ঠার নাম প্রদর্শন করা। 3. **DataviewJS**: একটি সম্পূর্ণ JavaScript API যা Dataview সূচক এবং রেন্ডারিং ইউটিলিটিগুলিতে অ্যাক্সেস প্রদান করে। এটি সবচেয়ে শক্তিশালী মোড, যা জটিল গ্রুপিং, সাজানো এবং কাস্টম রেন্ডারিং লজিকের অনুমতি দেয়। 4. **Inline JS Expressions**: Markdown-এর মধ্যে ইনলাইন নির্বিচারে JS এক্সিকিউট করার জন্য ইনলাইন এক্সপ্রেশনের JavaScript সমতুল্য। ডেটা নিষ্কাশন দুটি প্রক্রিয়ার উপর নির্ভর করে: Markdown ফ্রন্টম্যাটার (নথির শীর্ষে YAML ব্লক) এবং ইনলাইন ফিল্ড (নথির বডিতে সরাসরি `Key:: Value` সিনট্যাক্স ব্যবহার করে লেখা মেটাডেটা)। উভয়ই নোটগুলিকে কাঠামোগত ডেটা দিয়ে অ্যানোটেট করতে ব্যবহার করা যেতে পারে। কোডবেসটি TypeScript-এ লেখা এবং কম্পাইলেশনের জন্য rollup/node ব্যবহার করে। ডেভেলপমেন্টে রিপোজিটরি ক্লোন করা, npm দিয়ে নির্ভরতা ইনস্টল করা এবং একটি পরীক্ষার ভল্টে বিল্ড ও ডিপ্লয় করতে `npm run dev` চালানো জড়িত। প্রকল্পটি ডকুমেন্টেশনের জন্য MkDocs-ও ব্যবহার করে। JavaScript কুয়েরিগুলি অন্যান্য Obsidian প্লাগইনগুলির মতো একই অ্যাক্সেস স্তরের সাথে চলে, যার অর্থ তারা সম্ভাব্যভাবে ফাইল পরিবর্তন করতে বা নেটওয়ার্ক কল করতে পারে। নিয়মিত Dataview কুয়েরিগুলি স্যান্ডবক্সযুক্ত এবং ভল্টে নেতিবাচক পরিবর্তন করতে পারে না। প্রকল্পটি ওপেন-সোর্স এবং বাগ রিপোর্ট, ফিক্স, ডকুমেন্টেশন এবং উন্নতির মাধ্যমে অবদান গ্রহণ করে। TypeScript টাইপ সংজ্ঞাগুলি অন্যান্য প্লাগইনগুলিতে ব্যবহারের জন্য NPM-এ প্রকাশিত হয়।