Emacs একটি খুব এক্সটেনসিবল সফটওয়্যার। এটি আপনার টেক্সট এডিটর, ইমেইল ক্লায়েন্ট এবং এমনকি USENET রিডারও হতে পারে। Elfeed দিয়ে আপনি Emacs-কেও আপনার RSS ফিড রিডার হিসেবে ব্যবহার করতে পারেন।
Elfeed কী?
Elfeed Emacs-র জন্য লেখা একটি লাইটওয়েট কিন্তু পাওয়ারফুল RSS ফিড রিডার। এটি আপনার RSS ফিডগুলো সোর্ট করতে একটি সিম্পল ট্যাগ-ভিত্তিক সিস্টেম ব্যবহার করে। শুধুই নন, এতে একটি পাওয়ারফুল "হুক-ভিত্তিক" ট্যাগিং সিস্টেমও থাকে যা আপনাকে কনটেন্টের ওপর ভিত্তি করে ফিডগুলো অটোমেটিক্যালি ট্যাগ করতে দেয়।
এটি Elfeed কে উপযোগী করে তোলে যারা অনেক RSS ফিড ফলো করেন এবং তাদের ফিডগুলো অটোমেটিক্যালি সোর্ট করার উপায় খুঁজছেন।
কেন Emacs-এ ফিড রিডার ব্যবহার করবেন?
Emacs ইন্টারঅপারেবিলিটির ধারণায় কাজ করে, কারণ Emacs ডেটা নেয় এবং এটিকে বিভিন্ন ভিন্ন উপায়ে ইন্টারপ্রেট করার অনুমতি দেয়।
আপনি যদি Emacs কে এক্সক্লूसিভলি টেক্সট এডিট করতে ব্যবহার করেন, তবে টেক্সট এডিট করার সময় আপনার ইমেইল অ্যাক্সেস করতে পারা, উদাহরণস্বরূপ, আপনাকে আপনি যা লিখছেন সেটি আপনি যা ইমেইল কম্পোজ করছেন সেটিতে সিমলেসলি ব্যবহার করতে দেয়।
এই 이유로 আপনার RSS ফিড রিডার Emacs-এ ইনকর্পোরেট করা আকর্ষণীয় হতে পারে। এটি আপনাকে Emacs-এর পাওয়ারফুল এডিটিং ক্যাপাবিলিটি ব্যবহার করে আপনার ফিডস এবং Emacs-এ অন্যান্য ফাংশন ম্যানিপুলেট করতে দেবে।
Emacs-এ Elfeed ইনস্টল করা
Elfeed ইনস্টল করা খুব সিম্পল। এটি GNU ELPA রিপোজিটরিতে উপলব্ধ, তাই আপনার init.el ফাইলে কোনো মডিফিকেশন ছাড়াই এটিকে অ্যাক্সেস করতে পারেন।
Elfeed ইনস্টল করতে Alt + X চাপুন কমান্ড বাফার খোলার জন্য, তারপর package-install টাইপ করুন। আপনাকে প্যাকেজ নাম হিসেবে elfeed দিতে হবে এবং Enter চাপুন। Emacs Elfeed-এর সোর্স কোড ডাউনলোড করবে এবং তৎক্ষণাৎ কম্পাইল করবে।
Emacs-এ আপনার প্রথম RSS ফিড সেটআপ করা
ইনস্টল হলে, Alt + X চাপুন এবং কমান্ড বাফারে elfeed টাইপ করুন Elfeed অ্যাক্সেস করতে। এটি একটি খালি Elfeed বাফার লোড করবে।
Elfeed-এ RSS ফিড যোগ করার দুটি পথ আছে:
- ম্যানুয়ালি আপনার init.el ফাইল এডিট করুন
- Emacs ছাড়া
Elfeed-এ ম্যানুয়ালি RSS ফিড যোগ করা
আপনি সহজেই Elfeed পপুলেট করতে পারেন ম্যানুয়ালি ফিড URL গুলো আপনার init.el ফাইলে যোগ করে, কারণ Elfeed একটি "elfeed-feeds" ভেরিয়েবল ট্র্যাক করে। এটি Elfeed কে বলে কোন ফিডগুলো ফেচ করে এর ওভারভিউ স্ক্রিনে ডিসপ্লে করবে।
উদাহরণস্বরূপ, এটি আমার init.el ফাইল থেকে একটি স্নিপেট।
(setq elfeed-feeds '("https://feeds.maketecheasier.com/MakeTechEasier" "https://solar.lowtechmagazine.com/feeds/all-en.atom.xml" "https://old.reddit.com/r/f1technical.rss"))
Setq হল একটি Emacs ফাংশন যা একটি নির্দিষ্ট ভেরিয়েবলের ভ্যালু সেট করে। এই কেসে, এটি elfeed-feeds ভেরিয়েবলকে তিনটি ফিড লিংক ভ্যালু হিসেবে সেট করছে।
এরপর Elfeed অটোমেটিক্যালি সেই লিংকগুলো তার ইন্টারন্যাল ডেটাবেসে যোগ করবে, তারপর পরবর্তীবার প্রোগ্রাম রান করলে লোড করবে।
Emacs-এ रहते RSS ফিড যোগ করা
Elfeed পপুলেট করার আরেকটি পথ হল চলমান Emacs-এ ফিড লিংক দেয়া। এটি আপনাকে Emacs রিলোড না করে সক্রিয়ভাবে আপনার ফিড রোস্টার আপডেট করতে দেয় RSS লিংক দিয়ে।
এটি করতে, Alt + X চাপুন কমান্ড বাফার খোলার জন্য। elfeed-add-feed টাইপ করুন এবং Enter চাপুন। Elfeed আপনাকে যে ফিডটি লোড করতে চান তার URL প্রদান করতে বলবে।
আমার কেসে, আমি আমাদের ফিড URL Elfeed-এ দিচ্ছি ডেইলি লেটেস্ট টেকনোলজি আর্টিকেলের আপডেট পেতে।
আমি ফিড URL কপি করি এবং URL প্রম্পটে Ctrl + Y চাপি Emacs-এ লিংক পেস্ট করতে। একবার পেস্ট হলে, আমি শুধু Enter চাপি ফিড URL Elfeed-এ কমিট করতে।
Emacs-এ কীভাবে অটোমেটিক্যালি ট্যাগ এবং ফিল্টার করবেন ফিডগুলো
RSS ফিড লিস্ট এবং ভিউ করার পাশাপাশি, Elfeed কিছু ফাংশনও পারফর্ম করতে পারে যা আপনাকে আপনার ফিড লিস্ট ফাইন-টিউন করতে দেবে।
এই সুন্দর ফাংশনগুলোর মধ্যে একটি হল অটোমেটিক ট্যাগিং। এই ফিচার আপনাকে একই ফিড থেকে আসা RSS এন্ট্রিগুলোকে অবিলম্বে ট্যাগ করতে দেয়।
উদাহরণস্বরূপ, আপনার যদি একটি নির্দিষ্ট টপিক সম্পর্কে একাধিক ফিড থাকে, তবে আপনি সেট করতে পারেন যাতে সেগুলো সব একই ট্যাগ পাবে, যা সার্মারি স্ক্রিনে একাধিক ফিড সোর্ট করার সময় সহজ এবং ইন্টুইটিভ করে দেবে।
এটি করতে, আপনার init.el ফাইলে RSS ফিডগুলো এডিট করুন। এই সংক্ষিপ্ত উদাহরণটি দেখুন।
(setq elfeed-feeds '(("https://feeds.maketecheasier.com/MakeTechEasier" tech news) ("https://solar.lowtechmagazine.com/feeds/all-en.atom.xml" tech) ("https://old.reddit.com/r/f1technical.rss" tech f1)))
একটি RSS ফিড অটোমেটিক্যালি ট্যাগ করতে, আপনার ডিফল্ট elfeed-feeds ফরম্যাটে দুটি কাজ করতে হবে:
- ফিড লিংককে पे রেন্থেসিস দিয়ে ঘেরুন। এটি
elfeed-feedsকে বলে যে এই স্পেসিফিক এন্ট্রি ভেরিয়েবলে একাধিক অংশ আছে। - একটি শব্দ প্রদান করুন যেটি সেই নির্দিষ্ট লিংকের জন্য আপনার ট্যাগ হিসেবে কাজ করবে। আপনি একাধিক ট্যাগ ইনক্লুড করতে পারেন যতক্ষণ না আপনি প্রতিটি স্পেস দিয়ে আলাদা করেন।
Elfeed-এ আপনার RSS ফিড ফিল্টার করা
এই ট্যাগগুলো Elfeed-এর পাওয়ারফুল ফিল্টারিং সিস্টেমের সাথে কনজান্কশনে কাজ করে। এটি আপনাকে ট্যাগের ভিত্তিতে আপনার RSS ফিডগুলো গ্রুপ করতে দেয়।
উদাহরণস্বরূপ, আপনার যদি "news", "news tech" এবং "news gaming" ট্যাগ থাকা RSS ফিড থাকে, তবে Elfeed আপনাকে उन সবকে "news" ট্যাগের নিচে গ্রুপ করতে দেয়।
আপনার ফিড লিস্ট ফিল্টার করতে, Elfeed-এ থাকাকালীন S চাপুন Elfeed-এর ফিল্টার প্রম্পট আনার জন্য। ডিফল্টভাবে প্রম্পটে নিচের বিষয় থাকে:
@6-months-ago +unread
@সিম্বোল একটি ডেট রেঞ্জ ইন্ডিকেট করে। এটি একটি এবসোলিউট ডেট হতে পারে যেন "2022-02-22" অথবা একটি রিলেটিভ ডেট যেন "3-days-ago"।+সিম্বোল হল একটি ট্যাগ অপারেটর যা Elfeed কে বলে স্পেসিফিক্যালি এই ট্যাগ থাকা সব ফিড ইনক্লুড করতে।
এটি মনে রেখে, নিচের RSS ফিডটি বিবেচনা করুন।
[0](setq elfeed-feeds [1] '(("https://feeds.maketecheasier.com/MakeTechEasier" tech news) [2] ("https://solar.lowtechmagazine.com/feeds/all-en.atom.xml" tech) [3] ("https://old.reddit.com/r/f1technical.rss" tech f1) [4] ("https://www.autosport.com/rss/f1/photos/") f1) [5] ("https://www.philstar.com/rss/world" news)))
"tech" ট্যাগ ফিল্টার করতে, Elfeed-এর ফিল্টার প্রম্পটে "+tech" টাইপ করুন প্রথম তিনটি লিংক Elfeed-এর সার্মারি বাফারে ডিসপ্লে করার জন্য। তবে আপনি "+news" অ্যাড করলে, Elfeed প্রথম এবং পঞ্চম ট্যাগ ডিসপ্লে করবে।
এটি জানলে, আপনি আপনার ফিল্টারিং লজিকের সাথে আরও স্পেসifik হতে পারেন। উদাহরণস্বরূপ, আপনি যদি সব টেক লিংক চান কিন্তু "f1" ছাড়া, তবে নিচের কমান্ড টাইপ করুন:
+tech -f1
URL অনুযায়ী কীভাবে অটোমেটিক্যালি ফিডগুলো ট্যাগ করবেন
Elfeed-এ RSS এন্ট্রিগুলো অটোমেটিক্যালি ট্যাগ করার আরেকটি পথ হল URL অনুযায়ী সোর্ট করা। এটি উপযোগী যদি আপনি Elfeed ব্যবহার করে এমন RSS ফিড সাবস্ক্রাইব করেন যাদের সিমিলার URL স্ট্রাকচার থাকে।
এটি করতে, Elfeed-এর elfeed-new-entry-hook ব্যবহার করুন। এটি একটি হুক ফাংশন যা ספেসিফিক কন্ডিশন ভিত্তিতে একটি কাস্টোম কমান্ড এক্সিকিউট করে। এই ফাংশন একটি কাস্টোম কমান্ড রান করবে প্রতিবার একটি এন্ট্রি যোগ হলে elfeed-add-feed কমান্ড ব্যবহার করে।
আপনি সেই হукের ভিতরে elfeed-make-tagger ফাংশন ব্যবহার করতে পারেন। এটি একটি জেনারেল ফাংশন যা আপনার সেট করা অপশন ভিত্তিতে লিংক ট্যাগ করে। তাই দুটি ফাংশন কাম্বাইন করে অটোমেটিক ট্যাগিং তৈরি করতে পারে এমনঃ
(add-hook 'elfeed-new-entry-hook (elfeed-make-tagger :feed-url "medium\\.com" :add '(medium)))
এই ফাংশনটি যেকোনো লিংক যাতে "medium.com" স্লাগ থাকবে সেটি অটোমেটিক্যালি ট্যাগ করবে।
আপনি elfeed-make-tagger-এ সেট করা অপশনগুলো দিয়ে আরও স্পেসিফিকও হতে পারেন। উদাহরণস্বরূপ, আপনি URL ভিত্তিতে একটি ফিড ট্যাগ করতে পারেন এবং তিন মাস পুরনো এন্ট্রিগুলো ফিল্টার আউট করতে পারেন:
(add-hook 'elfeed-new-entry-hook (elfeed-make-tagger :feed-url "medium\\.com" :before "3 months ago" :add 'medium))
ট্যাগের জন্য কাস্টোম কালার এবং ফন্ট কীভাবে তৈরি করবেন
অটোমেটিক ট্যাগিং ছাড়া, আপনি Elfeed কীভাবে দেখাবে সেটিও কাস্টোমাইজ করতে পারেন ট্যাগের ওপর ভিত্তি করে। এটি উপযোগী যদি আপনি চান নির্দিষ্ট ট্যাগ থাকা ফিডগুলো আউটস্ট্যান্ড করুক।
এটি করতে, আপনাকে elfeed-search-face-alist ফাংশন রিডিফাইন করতে হবে। এটি হল वो কমান্ড যা Elfeed ব্যবহার করে সার্মারি বাফারের আপিয়রেন্স পরিবর্তন করতে। তাই এই ফাংশন রিডিফাইন করতে, আপনি defface এবং push ফাংশন ব্যবহার করতে পারেন:
- defface ফাংশন Emacs-র জন্য একটি নতুন "ফেস" তৈরি করে। "ফেস" হল ভ্যালুগুলোর একটি সেট যাতে ক্যারেক্টার ফন্ট এবং ব্যাকগ্রাউন্ড কালার দুটোই থাকতে পারে।
- push ফাংশন, অন্যদিকে, একটি এক্সিস্টিং কমান্ডে একটি ডেফিনিশন অ্যাপেন্ড করে Emacs-এ।
এটি মনে রেখে, আপনি এই ফাংশনগুলো কাম্বাইন করে Elfeed-এর জন্য একটি কাস্টোম "ফেস" তৈরি করতে পারেন। উদাহরণস্বরূপ, এটি একটি কাস্টোম ফেস যা f1 ট্যাগকে লাল রঙে হাইলাইট করে।
(defface elfeed-face-tag-f1 '((t :foreground "#f00")) "This is a custom font face for the F1 tag in Elfeed.") (push '(f1 elfeed-face-tag-f1) elfeed-search-face-alist)
অভিনন্দন! আপনি এখন জানেন কীভাবে Emacs কে Elfeed দিয়ে RSS রিডার হিসেবে ব্যবহার করবেন। এর পাশাপাশি, আপনার এখন Elfeed কাস্টোমাইজ এবং অটোমেট করার বেসিক আইডিয়া আছে আপনার RSS ফিডের প্রয়োজনীয়তা অনুযায়ী।
যদি এই আলোচনা আপনাকে Emacs-র সাথে আরও কী করা যায় সেটি চিন্তা করতে বাধ্য করে, তবে আপনি Emacs-এর জন্য সেরা প্রোডাক্টিভিটি প্যাকেজ সম্পর্কে আমাদের আর্টিকেল চেক আউট করতে পারেন।
ফ্রিকোয়েন্টলি আস্কড কুয়েশচনস
১. Elfeed-এ ফিড কীভাবে ডিলিট করবেন?
আপনি দুটি পথে ফিড রিমুভ করতে পারেন: আপনার init.el ফাইলে ফিডের এন্ট্রি ডিলিট করুন অথবা Emacs-এর কাস্টোমাইজ ফাংশন ব্যবহার করে রিমুভ করুন।
পূর্ব者ের জন্য, একটি ফিড রিমুভ করা শুধু আপনার elfeed-feeds ভেরিয়েবলে ফিড URL ডিলিট করার বিষয়। পরের কেসের জন্য, আপনাকে Alt + X চাপুন কমান্ড বাফার খোলার জন্য। সেখান থেকে customize টাইপ করুন। এটি Emacs-এর কাস্টোমাইজ উইন্ডো খুলবে।
সেখান থেকে সার্চ বক্সে elfeed-feeds টাইপ করুন। এটি আপনার করেন্টলি সাবস্ক্রাইব করা সব ফিড আনবে।
এটি আপনাকে ফিড লিংকের বगल দিয়ে থাকা DEL বাটনে ক্লিক করে ফিড ডিলিট করতে দেয়। একবার হলে, সার্চ বারের নিচে থাকা Apply এবং Save বাটনে ক্লিক করুন আপনার ফিড আপডেট করতে।
২. আমি Elfeed-এ সব ফিড যোগ করলাম কিন্তু সেগুলো রিফ্রেশ হচ্ছে না। কী করব?
Elfeed আপনার ফিড লিংকগুলো আপনার জন্য অটোমেটিক্যালি রিফ্রেশ করে না। আপনার ফিডগুলোর লেটেস্ট এন্ট্রিগুলো ফেচ করতে, Shift + G চাপুন করেন্টলি সাবস্ক্রাইব করা সব ফিডে আপডেট ইনিশিয়েট করতে।
আরও, আপনি যদি কেবল একটি স্পেসিফিক RSS ফিড আপডেট করতে চান, তবে elfeed-update-feed ফাংশন রান করুন।
৩. আমার অটোমেটিক ট্যাগগুলো কাজ করছে না। কীভাবে সমাধান করব?
এটি সবচেয়ে সম্ভবত একই RSS ফিডের জন্য конф্লিক্টিং ট্যাগ থাকায়। এটা হয়ে যেতে পারে আপনি একই ফিড URL দুই জায়গায় ইনক্লুড করেছেন - ম্যানুয়াল এবং অটোমেটিক ফিড দুটোই।
এটি সমাধান করতে, আপনাকে আপনার init.el ফাইলে ম্যানুয়াল এন্ট্রি অথবা Emacs-এর কাস্টোমাইজ বাফারে অটোমেটিক ফিড এন্ট্রি - দুটোর যেকোনো একটি রিমুভ করতে হবে।