Skip to content
Markdown টেবিল জেনারেটর
Tools

Markdown টেবিল জেনারেটর

নতুন

একটি এডিটযোগ্য গ্রিডে বা CSV থেকে অ্যালাইনমেন্ট সহ Markdown টেবিল তৈরি করুন।

Paste Excel, CSV or a Markdown table to import
Tab, comma, or Markdown — auto-detected. Replaces the grid.
Markdown
Preview

Runs entirely in your browser. Nothing is uploaded.

পাইপ না গুনেই মার্কডাউন টেবিল তৈরি করুন

মার্কডাউন টেবিল শক্তিশালী কিন্তু হাতে লেখা কঠিন — প্রতিটি সেল পাইপে মোড়ানো থাকতে হবে, প্রতিটি কলামে একটি ড্যাশ সেপারেটর দরকার, আর একটি | বাদ পড়লেই পুরো জিনিসটা ভেঙে যায়। এই মার্কডাউন টেবিল জেনারেটর এর বদলে একটি স্প্রেডশিট-স্টাইল গ্রিড দেয়: সারি ও কলাম যোগ করুন, আপনার কনটেন্ট টাইপ করুন, অ্যালাইনমেন্ট সেট করুন, আর পরিষ্কার, বৈধ মার্কডাউন কপি করুন। এটি একটি দ্রুত মার্কডাউন টেবিল মেকার হিসেবে এবং একটি সম্পূর্ণ মার্কডাউন টেবিল এডিটর হিসেবে কাজ করে, সবই আপনার ব্রাউজারে, ইনস্টল করার কিছু ছাড়াই।

লেআউট ভিজ্যুয়াল হওয়ায়, আপনি সবসময় ঠিক দেখতে পাবেন কী পাবেন। লাইভ প্রিভিউ টেবিলটি গিটহাবের মতো করে রেন্ডার করে, আর আউটপুট বক্স আপনাকে যেকোনো জায়গায় পেস্ট করার জন্য কাঁচা মার্কডাউন দেয় — গিটহাব README ফাইল, VS Code, Obsidian, Notion, Confluence বা ডিসকর্ড কোড ব্লক।

মার্কডাউন টেবিল সিনট্যাক্স ব্যাখ্যা করা হলো

একটি টেবিল তিনটি অংশ: একটি হেডার সারি, ড্যাশের একটি সেপারেটর সারি, এবং এক বা একাধিক বডি সারি — সবই সেলগুলো ভাগ করতে পাইপ অক্ষর ব্যবহার করে। সেপারেটর সারিটি গুরুত্বপূর্ণ অংশ; এটিই প্রথম সারিকে হেডার-এ উন্নীত করে এবং এখানেই কলাম অ্যালাইনমেন্ট থাকে। কোলন দিক নির্ধারণ করে: :--- বামে, :---: মাঝখানে এবং ---: ডানে।

আপনাকে এটা কখনো মনে রাখতে হবে না — প্রতিটি কলামের ওপরে Left, Center বা Right বেছে নিন আর সঠিক কোলনগুলো আপনার জন্য লেখা হয়ে যায়। একটি সেলের ভেতরে টাইপ করা পাইপ অক্ষর স্বয়ংক্রিয়ভাবে এস্কেপ করা হয় যাতে সেগুলো কলাম ভেঙে না দেয়।

এক পেস্টে Excel বা CSV-কে মার্কডাউনে রূপান্তর করুন

ইতিমধ্যে একটি স্প্রেডশিটে আপনার ডেটা আছে? Excel বা Google Sheets থেকে সেল কপি করে ইমপোর্ট বক্সে পেস্ট করুন — সেগুলো ট্যাব-সেপারেটেড হিসেবে আসে এবং টুলটি তাৎক্ষণিকভাবে গ্রিড পূরণ করে। একটি CSV ফাইলও একইভাবে কাজ করে: কমা-সেপারেটেড টেক্সট পেস্ট করুন আর এটি সারি ও কলামে পার্স হয়ে যায়, কোটেশনসহ। এটিই excel থেকে মার্কডাউন টেবিল এবং csv থেকে মার্কডাউন টেবিল সার্চের পেছনের শর্টকাট।

ইমপোর্টার স্বয়ংক্রিয়ভাবে সনাক্ত করে আপনি ট্যাব-সেপারেটেড, কমা-সেপারেটেড, নাকি একটি বিদ্যমান মার্কডাউন টেবিল পেস্ট করেছেন, তাই আপনার কোন ফরম্যাট ব্যবহার করছেন তা বলার দরকার হয় না।

গিটহাব-ফ্লেভারড আউটপুট, ডিসকর্ড-রেডি এবং এডিটর জুড়ে কাজ করে

এই টুল যে মার্কডাউন তৈরি করে তা গিটহাব ফ্লেভারড মার্কডাউন, তাই এটি README ফাইল, ইস্যু, পুল রিকোয়েস্ট এবং কমেন্টে সঠিকভাবে রেন্ডার হয় — গিটহাব মার্কডাউন টেবিল-এর ঘর। প্রতিটি কলামকে প্যাড করে কাঁচা টেক্সটকে একটি বাস্তব টেবিলের মতো সারিবদ্ধ করতে Pretty আউটপুট বেছে নিন, বা সবচেয়ে ছোট সোর্সের জন্য Compact

Pretty মোড ডিসকর্ডের জন্যও একটি কৌশল: ডিসকর্ড মেসেজে মার্কডাউন টেবিল রেন্ডার করে না, কিন্তু আপনি যদি প্যাড করা আউটপুটকে একটি কোড ব্লকে (ট্রিপল ব্যাকটিক) মুড়িয়ে দেন তাহলে কলামগুলো তার মোনোস্পেস ফন্টে সারিবদ্ধ হয়ে যায়। GFM টেবিল Obsidian-এর Live Preview, Notion-এর ইমপোর্টার, VS Code-এর মার্কডাউন প্রিভিউ এবং Docusaurus ডকসে স্বাভাবিকভাবেই রেন্ডার হয় — এই টুল থেকে এগুলোর যেকোনোটিতে পেস্ট করুন, এটি ঠিকঠাক কাজ করবে।

একটি বিদ্যমান মার্কডাউন টেবিল এডিট করুন

এটি একমুখী রাস্তা নয়। একটি সম্পূর্ণ মার্কডাউন টেবিল আবার ইমপোর্ট বক্সে পেস্ট করুন আর টুলটি সেল এবং অ্যালাইনমেন্ট কোলনগুলো পড়ে, পুরো জিনিসটা গ্রিডে লোড করে যাতে আপনি এডিট করতে পারেন — একটি কলাম যোগ করুন, একটি টাইপো ঠিক করুন, একটি প্রাইস কলাম পুনরায় অ্যালাইন করুন, তারপর আবার কপি করুন। এটি এটিকে একটি প্রকৃত টেবিল থেকে মার্কডাউন রাউন্ড-ট্রিপ এবং মাস আগে লেখা টেবিলের জন্য একটি ব্যবহারিক মার্কডাউন টেবিল এডিটর করে তোলে।

ডেভেলপারদের জন্য: Python, R এবং VS Code

কোডে এটা দরকার? Python-এ, tabulate লাইব্রেরি tablefmt="github"সহ (বা একটি pandas DataFrame-এ df.to_markdown()) একই ফরম্যাট তৈরি করে। R Markdown-এ, knitr::kable() একটি চাংকের ভেতরে একটি ডেটা ফ্রেমকে মার্কডাউন টেবিলে রূপান্তর করে। আর VS Code-এ, বিল্ট-ইন প্রিভিউ GFM টেবিল রেন্ডার করে এবং ফরম্যাটার এক্সটেনশন পাইপগুলো সারিবদ্ধ রাখে।

তবে একটি দ্রুত, এককালীন টেবিলের জন্য, একটি স্ক্রিপ্ট তৈরি করার চেয়ে এই জেনারেটরে পেস্ট করা দ্রুত — আর ফলাফল একই মার্কডাউন।

প্রাইভেট, তাৎক্ষণিক এবং ফ্রি — TableConvert ও Tables Generator-এর সাথে তুলনা

TableConvert (tableconvert.com) সবচেয়ে জনপ্রিয় মার্কডাউন টেবিল টুল কিন্তু এটি প্রসেসিংয়ের জন্য আপনার ডেটা তাদের সার্ভারে পাঠায় — এটি একটি প্রকৃত সমস্যা যখন টেবিলে অভ্যন্তরীণ মূল্য নির্ধারণ, কর্মচারীর নাম বা গোপনীয় প্রকল্পের ডেটা থাকে। Tables Generator (tablesgenerator.com)-ও সার্ভার-সাইড, এবং এর মার্কডাউন আউটপুট এর LaTeX ফোকাসের চেয়ে গৌণ।

UtiloKit-এ কোনো সাইন-আপ নেই এবং কোনো খরচ নেই। প্রতিটি টেবিল — আপনি টাইপ করেছেন, একটি স্প্রেডশিট ইমপোর্ট করেছেন, বা এডিট করার জন্য মার্কডাউন পেস্ট করেছেন যাই হোক — সম্পূর্ণভাবে আপনার ব্রাউজারে তৈরি হয়, তাই আপনার ডেটা কখনো আপলোড বা সার্ভারে সংরক্ষিত হয় না। এটি লোড হওয়ার পর অফলাইনে কাজ চালিয়ে যায়, আর আপনি যে গ্রিড এডিট করছিলেন তা পরের বার পেজ খোলার সময় মনে থাকে। মার্কডাউন টেবিল জেনারেটর বুকমার্ক করুন এবং যখনই একটি পরিষ্কার, অ্যালাইনড টেবিল দরকার তখনই ব্যবহার করুন।

মার্কডাউন টেবিল সিনট্যাক্স বিস্তারিতভাবে

পাইপ-ডিলিমিটেড ফরম্যাটটি দেখতে যতটা মনে হয় তার চেয়ে সহজ কিন্তু জানার মতো কিছু নিয়ম রয়েছে। প্রতিটি সারি এমন এক লাইন টেক্সট যেখানে সেলগুলো পাইপ অক্ষর (|) দিয়ে আলাদা করা। বাইরের পাইপ — একটি লাইনের একেবারে শুরু ও শেষে থাকা | — বেশিরভাগ রেন্ডারারে ঐচ্ছিক, কিন্তু সেগুলো অন্তর্ভুক্ত করা প্রভাবশালী কনভেনশন এবং কাঠামোকে দৃশ্যত দ্ব্যর্থহীন করে তোলে। সেলের ভেতরের হোয়াইটস্পেস ট্রিম হয়ে যায়, তাই | Alice | এবং |Alice| একই আউটপুট তৈরি করে; রেন্ডার করা ফলাফল পরিবর্তন না করেই আপনি সোর্স অ্যালাইন করতে অবাধে স্পেস দিয়ে প্যাড করতে পারেন।

সেপারেটর সারি — হেডার এবং প্রথম বডি সারির মধ্যকার হাইফেনের লাইন — বাধ্যতামূলক। সেপারেটরের প্রতিটি সেলে কমপক্ষে একটি হাইফেন থাকতে হবে। অ্যালাইনমেন্ট কোলন দিয়ে এনকোড করা: :--- বামে-অ্যালাইন করে, ---: ডানে-অ্যালাইন করে, এবং :---: কলামটি মাঝখানে রাখে। কোনো কোলন ছাড়া বেশিরভাগ রেন্ডারারে ডিফল্ট বাম-অ্যালাইনড। একটি গুরুত্বপূর্ণ সীমাবদ্ধতা: মার্কডাউন টেবিলের সেলের ভেতরে লাইন ব্রেকের কোনো নেটিভ সমর্থন নেই। একটি কাঁচা নিউলাইন সারি শেষ করে দেয়, তাই আপনি একাধিক লাইনে টেক্সট মোড়াতে পারবেন না। HTML আউটপুট প্রেক্ষাপটে আপনি একটি আক্ষরিক <br> ট্যাগ সন্নিবেশ করতে পারেন — ইনলাইন HTML অনুমতি দেয় এমন রেন্ডারার (গিটহাব, Obsidian) সেটি সম্মান করবে — কিন্তু কঠোর CommonMark রেন্ডারিংয়ে ট্যাগটি টেক্সট হিসেবেই থেকে যায়। একটি সেলে মাল্টি-লাইন কনটেন্ট দরকার হলে, পরিষ্কার সমাধান হলো টেবিলটি পুনর্গঠন করা বা ভিন্ন একটি ফরম্যাট ব্যবহার করা। অবশেষে, একটি সেলের মানে যদি নিজেই একটি পাইপ অক্ষর থাকে, তাহলে ব্যাকস্ল্যাশ দিয়ে এটি এস্কেপ করুন (\|); ব্যাকস্ল্যাশ ছাড়া পার্সার সেই পজিশনে সেলটি ভেঙে ফেলে।

প্রতিটি সারির কলাম সংখ্যা হেডার দ্বারা ঘোষিত সংখ্যার সাথে মিলতে হবে। রেন্ডারারগুলো ভিন্নভাবে ক্ষমাশীল — কিছু নীরবে অতিরিক্ত সেল বাদ দেয়, অন্যরা সেগুলো ঝুলিয়ে রাখে — কিন্তু নিরাপদ নিয়ম হলো কঠোর সামঞ্জস্য। গণনা স্বয়ংক্রিয়ভাবে সঠিক রাখতে এই জেনারেটর ব্যবহার করুন: গ্রিড অভিন্ন কলাম গণনা বলবৎ করে, তাই এক্সপোর্ট করা মার্কডাউন সবসময় সুগঠিত থাকে।

গিটহাব ফ্লেভারড মার্কডাউন, CommonMark এবং অন্যান্য ফ্লেভার

জন গ্রুবার ২০০৪ সালে মূল মার্কডাউন স্পেসিফিকেশন প্রকাশ করেন। এটি একটি পাঠযোগ্য প্লেইন-টেক্সট ফরম্যাট সংজ্ঞায়িত করে যা HTML-এ রূপান্তরিত হয়, কিন্তু এটি ইচ্ছাকৃতভাবে অনেক প্রান্তিক ক্ষেত্র অনির্দিষ্ট রেখে দিয়েছিল — এবং এতে কোনো টেবিল সিনট্যাক্সই ছিল না। ফলাফল ছিল বাস্তবায়নের বিভাজন, প্রতিটি অস্পষ্ট নির্মাণ ভিন্নভাবে পার্স করছিল। ২০১৪ সালে জন ম্যাকফার্লেন ও অন্যরা CommonMark প্রকাশ করেন, একটি আনুষ্ঠানিক টেস্ট স্যুটসহ মূল মার্কডাউনের জন্য একটি কঠোর, দ্ব্যর্থহীন স্পেসিফিকেশন। CommonMark প্যারাগ্রাফ, লিস্ট, কোড ব্লক এবং ইনলাইন ফরম্যাটিং স্ট্যান্ডার্ডাইজ করেছিল, কিন্তু ইচ্ছাকৃতভাবে টেবিল বাদ দিয়েছিল, সেগুলোকে একটি এক্সটেনশন হিসেবে গণ্য করে।

গিটহাব ফ্লেভারড মার্কডাউন (GFM) হলো CommonMark-এর সবচেয়ে ব্যাপকভাবে ব্যবহৃত সুপারসেট। গিটহাব ২০১৭ সালে এটি একটি খোলা স্পেসিফিকেশন হিসেবে প্রকাশ করে এবং এটি CommonMark-এ পাঁচটি ফিচার যোগ করে: টেবিল (এই টুল যে পাইপ-ডিলিমিটেড ফরম্যাট তৈরি করে), স্ট্রাইকথ্রু (~~text~~), টাস্ক লিস্ট আইটেম (- [ ]), অটোলিংক এবং ইমোজি শর্টকোড। GFM হলো গিটহাব, GitLab, Bitbucket, VS Code-এর প্রিভিউ, Obsidian এবং অনেক ডকুমেন্টেশন প্ল্যাটফর্মের টেবিল স্ট্যান্ডার্ড। MultiMarkdown (Fletcher Penney, ২০০৯) স্বাধীনভাবে সামান্য ভিন্ন কলাম-স্প্যানিং সিনট্যাক্সসহ টেবিল যোগ করেছিল, পাশাপাশি ফুটনোট, সাইটেশন এবং ডেফিনিশন লিস্টও — এটি একাডেমিক ও দীর্ঘ-ফর্ম লেখার ওয়ার্কফ্লোতে সাধারণ। Pandoc মার্কডাউন সবচেয়ে সক্ষম ভ্যারিয়েন্ট: এটি GFM-স্টাইল পাইপ টেবিল, গ্রিড টেবিল (যেখানে সেলগুলো ভিজ্যুয়াল লেআউটের জন্য +- অক্ষর দিয়ে আঁকা), কাঁচা LaTeX ব্লক, YAML ফ্রন্টম্যাটার, ফুটনোট এবং ক্রস-রেফারেন্স সমর্থন করে — যা এটিকে স্কলারলি ডকুমেন্ট পাইপলাইনের জন্য পছন্দের ফরম্যাট করে তোলে। এই জেনারেটরের আউটপুট — স্ট্যান্ডার্ড GFM পাইপ টেবিল — এই সব ফ্লেভারের সাথে সামঞ্জস্যপূর্ণ: টেবিল বোঝে এমন প্রতিটি পার্সারই পাইপ ফরম্যাট বোঝে।

যখন একটি রেন্ডারার টেবিল সমর্থন করে না (প্লেইন CommonMark পার্সার, অনেক হালকা মার্কডাউন লাইব্রেরি, GFM প্লাগইন ছাড়া পুরনো স্ট্যাটিক সাইট জেনারেটর), টেবিলটি পাইপ অক্ষর ও হাইফেনের একটি প্যারাগ্রাফ হিসেবে দেখানো হয়। সমাধান হলো হয় একটি GFM প্লাগইন সক্রিয় করা বা এই টুলের Pretty আউটপুট ব্যবহার করা এবং এটি একটি কোড ব্লকে মুড়িয়ে দেওয়া, যা অন্তত ডেটাকে একটি মোনোস্পেস লেআউটে পাঠযোগ্যভাবে উপস্থাপন করে।

মার্কডাউন টেবিল বনাম HTML টেবিল বনাম CSV

মার্কডাউন টেবিল ভার্সন কন্ট্রোলে থাকা ডকুমেন্টেশনের জন্য সঠিক পছন্দ: README ফাইল, উইকি পেজ, ডকস-অ্যাজ-কোড ওয়ার্কফ্লোতে লেখা API ডকস। এগুলো প্লেইন টেক্সট হিসেবে পাঠযোগ্য — একজন ডেভেলপার রেন্ডার না করেই একটি কাঁচা ফাইলে একটি মার্কডাউন টেবিল স্ক্যান করতে পারেন — এবং ডিফ লাইন-বাই-লাইন অর্থপূর্ণ। ফরম্যাটটি ডেভেলপাররা প্রতিদিন ব্যবহার করেন এমন প্ল্যাটফর্মেও স্বাভাবিকভাবে বোঝা যায়: গিটহাব, GitLab, Notion, Obsidian, Confluence Cloud এবং VS Code। ট্রেড-অফ হলো সীমিত এক্সপ্রেসিভনেস: মার্কডাউন টেবিল সেল স্প্যান (colspan বা rowspan) করতে পারে না, কোনো বিল্ট-ইন ক্যাপশন মেকানিজম নেই এবং একটি সেলের ভেতরে বুলেট লিস্টের মতো গঠনগত ফরম্যাটিং ধরে রাখতে পারে না।

HTML টেবিল সম্পূর্ণ নিয়ন্ত্রণ আনলক করে। <table>, <thead>, <tbody> এবং <tfoot> এলিমেন্ট সিম্যান্টিক কাঠামো দেয়; <th colspan="2"> সেলগুলো অনুভূমিকভাবে মার্জ করে; <caption> টেবিলের উদ্দেশ্যের একটি প্রোগ্রামেটিক বর্ণনা দেয়; এবং CSS বর্ডার, বিকল্প সারির রঙ, স্টিকি হেডার এবং রেসপনসিভ ওভারফ্লো আচরণ স্টাইল করতে পারে। HTML টেবিল প্রয়োজনীয় হয় যখন লেআউট নিজেই অর্থ বহন করে — একটি ক্যালেন্ডার গ্রিড, মার্জ করা হেডার গ্রুপসহ একটি তুলনা ম্যাট্রিক্স, বা স্প্যান করা সারিসহ একটি প্রাইসিং টেবিল। লেআউটের জন্য HTML টেবিল অ্যান্টি-প্যাটার্ন (পেজ কনটেন্ট পজিশন করতে <table> ব্যবহার) CSS লেআউট সার্বজনীন হওয়ার পর থেকে সেকেলে হয়ে গেছে, কিন্তু HTML-এ ডেটা টেবিল সবচেয়ে এক্সপ্রেসিভ অপশন হিসেবে রয়ে গেছে।

CSV (কমা-সেপারেটেড ভ্যালু) একটি ডিসপ্লে ফরম্যাট নয় — এটি একটি ডেটা ইন্টারচেঞ্জ ফরম্যাট। একটি CSV ফাইলে কাঁচা মান থাকে কোনো অ্যালাইনমেন্ট, কোনো হেডার সিম্যান্টিক্স এবং কোনো ভিজ্যুয়াল কাঠামো ছাড়া; এটি হলো যা আপনি একটি ডাটাবেস থেকে এক্সপোর্ট করেন, একটি স্প্রেডশিটে ইমপোর্ট করেন, বা একটি ডেটা পাইপলাইনে ফিড করেন। সুবিধা হলো সার্বজনীনতা: প্রায় প্রতিটি টুল যা ট্যাবুলার ডেটা হ্যান্ডেল করে — Excel, Google Sheets, Python-এর pandas, R, PostgreSQL-এর COPY কমান্ড, Tableau — কোনো বিশেষ কনফিগারেশন ছাড়াই CSV পড়ে ও লেখে। যখন আপনার ভার্সন কন্ট্রোলের অধীনে পাঠযোগ্য ডকুমেন্টেশন দরকার তখন মার্কডাউন বেছে নিন; যখন আপনার একটি ওয়েব পেজে স্টাইলিং বা মার্জ করা সেল দরকার তখন HTML বেছে নিন; যখন আপনার সিস্টেমের মধ্যে ডেটা সরানো দরকার তখন CSV বেছে নিন।

অ্যাক্সেসযোগ্য টেবিল ডিজাইন

ডকুমেন্টেশন টেবিলের জন্যও অ্যাক্সেসিবিলিটি গুরুত্বপূর্ণ। মূল HTML এলিমেন্ট হলো <th> — টেবিল হেডার সেল। scope="col"সহ একটি <th> স্ক্রিন রিডারকে বলে যে সেলটি একটি কলাম হেডার এবং তার নিচের প্রতিটি সেল সেই কলামের অন্তর্গত; scope="row" একটি সারির হেডার চিহ্নিত করে যাতে সারির প্রতিটি সেলের আগে স্ক্রিন রিডার এটি ঘোষণা করে। বেশিরভাগ মার্কডাউন-থেকে-HTML রেন্ডারার (গিটহাব, Pandoc, Marked.js) হেডার সারির জন্য স্বয়ংক্রিয়ভাবে <th> এলিমেন্ট তৈরি করে, তাই একটি সুগঠিত মার্কডাউন টেবিল ইতিমধ্যে একটি অ্যাক্সেসযোগ্য HTML টেবিল তৈরি করে — যদি রেন্ডারার scope অ্যাট্রিবিউট যোগ করে, যা শীর্ষস্থানীয় রেন্ডারারগুলো করে থাকে। <caption> এলিমেন্ট টেবিলে কী আছে তার একটি দৃশ্যমান বা প্রোগ্রামেটিক বর্ণনা দেয়; টেবিল শুরু হওয়ার আগে স্ক্রিন রিডার এটি ঘোষণা করে এবং টেবিল লেবেল করার পছন্দের উপায় (পুরনো summary অ্যাট্রিবিউট HTML5-এ ডেপ্রিকেটেড হয়ে <caption> বা aria-describedby দিয়ে প্রতিস্থাপিত হয়েছে)।

জটিল টেবিল — একাধিক হেডার সারি, অনিয়মিত কলাম গ্রুপিং, বা সারি ও কলাম উভয় হেডারসহ — ডেটা সেলে headers অ্যাট্রিবিউট প্রয়োজন। প্রতিটি <td headers="id1 id2"> স্পষ্টভাবে সেই হেডার সেলগুলোর নাম দেয় যা এর ওপর প্রযোজ্য, কারণ হেডার সম্পর্ক কঠোরভাবে আয়তক্ষেত্রাকার না হলে শুধু scope যথেষ্ট নয়। মার্কডাউন এই জটিলতা প্রকাশ করতে পারে না (এর কোনো মাল্টি-রো হেডার সিনট্যাক্স নেই), যে কারণে জটিল তুলনামূলক টেবিল মার্কডাউনের বদলে HTML-এ লেখা উচিত।

ভিজ্যুয়াল ডিজাইনেরও অ্যাক্সেসিবিলিটি প্রভাব রয়েছে। WCAG 1.4.1 (রঙের ব্যবহার) প্রয়োজন করে যে তথ্য জানানোর একমাত্র মাধ্যম রঙ না হয়: বিকল্প সারির ব্যাকগ্রাউন্ড (জেব্রা স্ট্রাইপিং) দুটি টোনের মধ্যে যথেষ্ট কনট্রাস্ট থাকতে হবে, এবং হেডার সারি ও বডি সারির মধ্যকার পার্থক্য শুধু রঙের ওপর নির্ভর করা উচিত নয় — একটি সেকেন্ডারি ইঙ্গিত হিসেবে বোল্ড টেক্সট বা একটি দৃশ্যমান বর্ডার দরকার। কম দৃষ্টিসম্পন্ন ব্যবহারকারীদের কাছে বোধগম্য হতে টেবিল বর্ডার ও রুল লাইনকে তাদের ব্যাকগ্রাউন্ডের বিপরীতে ৩:১ কনট্রাস্ট অনুপাত পূরণ করতে হবে (WCAG 1.4.11, নন-টেক্সট কনট্রাস্ট)। এই সীমাবদ্ধতাগুলো একটি মার্কডাউন রেন্ডারার তৈরি করা HTML স্টাইল করার সময় প্রযোজ্য; মার্কডাউন সোর্স নিজে স্টাইল নিয়ন্ত্রণ করতে পারে না, কিন্তু হোস্ট পেজ প্রয়োগ করা CSS-কে সেগুলো সম্মান করতে হবে।

ডকুমেন্টেশন ও README ফাইলে টেবিল

একটি মার্কডাউন টেবিলের সবচেয়ে সাধারণ ঘর হলো গিটহাবে একটি README ফাইল। গিটহাব রিয়েল টাইমে ব্রাউজারে মার্কডাউন রেন্ডার করে, তাই একটি README-এ পেস্ট করা টেবিল রিপোজিটরি দেখার সাথে সাথেই ফরম্যাট করা HTML হিসেবে দেখা যায়। গিটহাবের ওয়েব এডিটরের লাইভ প্রিভিউ কমিট করার আগে অ্যালাইনমেন্ট ও কলাম প্রস্থ চেক করতে দেয়। API প্যারামিটার ডকুমেন্টেশনের প্রভাবশালী কনভেনশন হলো Parameter, Type, Required, Default এবং Description হেডারসহ একটি পাঁচ-কলাম টেবিল; এই প্যাটার্নটি হাজার হাজার ওপেন-সোর্স লাইব্রেরিতে দেখা যায় কারণ এটি একটি রেফারেন্সকে সংকুচিত করে যা অন্যথায় গদ্য প্যারাগ্রাফ জুড়ে ছড়িয়ে থাকত একটি স্ক্যানযোগ্য গ্রিডে। একইভাবে, ফিচার-তুলনা ম্যাট্রিক্স — চেকমার্ক বা ক্রস কলামসহ সমর্থিত প্ল্যাটফর্ম, ভার্সন বা সক্ষমতা তালিকাভুক্ত করা — প্রোডাক্ট ডকুমেন্টেশনে মার্কডাউন টেবিলের জন্য একটি স্বাভাবিক ফিট।

মার্কডাউনের ওপর নির্মিত ডকুমেন্টেশন প্ল্যাটফর্ম (Docusaurus, MkDocs, GFM প্লাগইনসহ Jekyll, VuePress, Starlight) সবই পাইপ টেবিল সঠিকভাবে রেন্ডার করে। এই সিস্টেমে টেবিল সোর্স একটি .md ফাইলের ভেতরে প্লেইন টেক্সট হিসেবে থাকে, পুল রিকোয়েস্টে পরিষ্কারভাবে ডিফ করে এবং যে কোড এটি ডকুমেন্ট করে তার পাশাপাশি চেক করা হয় — ডকস-অ্যাজ-কোডের মূল সুবিধা। Confluence Cloud-এর এডিটরও পেস্ট করা মার্কডাউন গ্রহণ করে টেবিলসহ যখন আপনি /Markdown ম্যাক্রো ব্যবহার করেন বা একটি মার্কডাউন-সক্ষম টেক্সট ব্লকে পেস্ট করেন, আর Notion ২০২১ থেকে মার্কডাউন পেস্ট (টেবিলসহ) সমর্থন করে আসছে।

একটি এড়িয়ে যাওয়ার মতো অ্যান্টি-প্যাটার্ন: অ-ট্যাবুলার তথ্যের জন্য টেবিল ব্যবহার করা। একটি টেবিল সারি ও কলামের মধ্যে একটি সম্পর্ক বোঝায় — যে প্রতিটি সারি একই এনটিটি টাইপের একটি ইনস্ট্যান্স এবং প্রতিটি কলাম একটি সঙ্গতিপূর্ণ অ্যাট্রিবিউট। বুলেট পয়েন্টের একটি সাইড-বাই-সাইড তালিকা লেআউট করতে ব্যবহৃত একটি দুই-কলাম টেবিল, বা দুটি প্যারাগ্রাফকে পাশাপাশি বসাতে বাধ্য করা একটি এক-সারির টেবিল, ঠিক সেভাবেই টেবিল সিম্যান্টিকের অপব্যবহার করে যেভাবে HTML-এর লেআউটের জন্য টেবিল প্যাটার্ন করেছিল। স্ক্রিন রিডার তাদের মাত্রাসহ টেবিল ঘোষণা করে (টেবিল, ৩ কলাম, ৮ সারি), তাই একটি লেআউট টেবিল সহায়ক প্রযুক্তি ব্যবহারকারীদের জন্য শব্দ তৈরি করে। তথ্যটি যদি একটি তালিকা হয়, একটি মার্কডাউন তালিকা ব্যবহার করুন। যদি এটি একটি কী-ভ্যালু গ্লোসারি হয়, একটি ডেফিনিশন লিস্ট বা শুধুমাত্র একটি দুই-কলাম টেবিল ব্যবহার করুন যদি কলাম সম্পর্ক সত্যিই হেডার-থেকে-ভ্যালু হয়। সত্যিকারের তুলনামূলক ডেটার জন্য টেবিল সংরক্ষণ করুন।

Frequently asked questions

আমি কীভাবে একটি মার্কডাউন টেবিল তৈরি করব?

উপরের এডিটেবল গ্রিডে আপনার ডেটা টাইপ করুন, সাইজ করতে + Row এবং + Column বাটন ব্যবহার করুন, প্রতিটি কলামের অ্যালাইনমেন্ট বেছে নিন, তারপর Copy-তে ক্লিক করুন। টুলটি আপনার জন্য পাইপ ও ড্যাশ লেখে — Name এবং Role হেডারসহ নিচে Ada এবং Engineer থাকলে তিনটি লাইন হয়ে যায় | Name | Role |, তারপর | :--- | :--- |, তারপর | Ada | Engineer | — কখনো হাতে কলাম সারিবদ্ধ করতে হবে না।

মার্কডাউন টেবিল সিনট্যাক্স কী?

একটি মার্কডাউন টেবিল হলো পাইপ অক্ষরে মোড়ানো সারি, হেডারের নিচে হাইফেনের একটি সেপারেটর সারিসহ। সর্বনিম্ন তিনটি লাইন — | Product | Price | এর মতো একটি হেডার, একটি সেপারেটর | --- | --- |, এবং কমপক্ষে একটি বডি সারি যেমন | Coffee | $3 |। ড্যাশের সেপারেটর সারিই রেন্ডারারকে বলে যে প্রথম সারি একটি হেডার; এটি ছাড়া টেক্সটটি শুধু প্লেইন থেকে যায়।

মার্কডাউন টেবিলে কলাম কীভাবে অ্যালাইন করব?

সেপারেটর সারিতে কোলন দিয়ে অ্যালাইনমেন্ট নিয়ন্ত্রিত হয়: :--- বামে-অ্যালাইন করে, :---: মাঝখানে রাখে, এবং ---: একটি কলামকে ডানে-অ্যালাইন করে। তাই | :--- | :---: | ---: | সেপারেটর প্রথম কলামকে বাম, দ্বিতীয়টি মাঝখান এবং তৃতীয়টি ডানে-অ্যালাইন করে। এই টুলে শুধু প্রতিটি কলামের ওপরে Left, Center বা Right বেছে নিন আর সঠিক কোলনগুলো স্বয়ংক্রিয়ভাবে যোগ করা হয়।

Excel বা CSV-কে মার্কডাউন টেবিলে কীভাবে রূপান্তর করব?

'Paste Excel, CSV or a Markdown table' বক্সটি খুলুন, তারপর আপনার ডেটা পেস্ট করুন। Excel বা Google Sheets থেকে সরাসরি কপি করা সেল ট্যাব-সেপারেটেড হিসেবে আসে এবং একটি CSV ফাইল কমা-সেপারেটেড — ইমপোর্টার স্বয়ংক্রিয়ভাবে উভয়ই সনাক্ত করে, গ্রিড পূরণ করে, এবং আপনি মার্কডাউন কপি করে নেন। একটি পাইপও না লিখেই 'excel to markdown table' বা 'csv to markdown table' করার এটি দ্রুততম উপায়।

গিটহাবে টেবিল কীভাবে বানাব?

গিটহাব গিটহাব ফ্লেভারড মার্কডাউন ব্যবহার করে, যা README ফাইল, ইস্যু, পুল রিকোয়েস্ট এবং কমেন্টে টেবিল রেন্ডার করে। এখানে আপনার টেবিল তৈরি করুন, কপি করুন এবং পেস্ট করুন — শুধু টেবিলের আগে ও পরে একটি খালি লাইন রাখুন যাতে গিটহাব এটি চিনতে পারে। এই টুলের আউটপুট GFM-সঙ্গতিপূর্ণ, গিটহাব সমর্থিত অ্যালাইনমেন্ট কোলনসহ।

মার্কডাউন টেবিল কি ডিসকর্ডে কাজ করে?

সাধারণ মেসেজে না — ডিসকর্ডের চ্যাট ফরম্যাটিং মার্কডাউন টেবিল রেন্ডার করে না, তাই পাইপগুলো প্লেইন টেক্সট হিসেবে দেখা যায়। সাধারণ সমাধান হলো এই টুলের Pretty / প্যাডেড আউটপুট ব্যবহার করে টেবিলটিকে একটি কোড ব্লকে (ট্রিপল ব্যাকটিক) মুড়িয়ে দেওয়া, যাতে কলামগুলো ডিসকর্ডের মোনোস্পেস ফন্টে সারিবদ্ধ হয়। আউটপুটটি 'Pretty'-তে পাল্টান, কপি করুন, এবং এটি ``` ফেন্সের মধ্যে পেস্ট করুন।

মার্কডাউন টেবিল কি Notion, Obsidian বা Confluence-এ কাজ করে?

তিনটিতেই হ্যাঁ। Notion আপনি পেস্ট করলে বা একটি মার্কডাউন ফাইল ইমপোর্ট করলে স্ট্যান্ডার্ড মার্কডাউন টেবিল রেন্ডার করে। Obsidian তার সব ভিউতে সম্পূর্ণভাবে গিটহাব ফ্লেভারড মার্কডাউন টেবিল সমর্থন করে। Confluence মার্কডাউন ম্যাক্রোর মাধ্যমে বা মার্কডাউন ডকুমেন্ট ইমপোর্ট করার সময় মার্কডাউন টেবিল সমর্থন করে। এখানে আপনার টেবিল তৈরি করুন, আউটপুট কপি করুন এবং এগুলোর যেকোনোটিতে সরাসরি পেস্ট করুন — কোনো রিফরম্যাটিংয়ের দরকার নেই। Confluence উইকি মার্কআপের নিজস্ব টেবিল সিনট্যাক্স আছে, কিন্তু GFM মার্কডাউন টেবিল Confluence Cloud এডিটরের মার্কডাউন মোডে কাজ করে।

সারি ও কলাম কীভাবে যোগ বা সরাব?

টেবিল বাড়াতে + Row এবং + Column বাটন ব্যবহার করুন, এবং এটি মুছতে যেকোনো সারির শুরুতে ✕ বাটন বা যেকোনো কলামের ওপরে ব্যবহার করুন। পুরো গ্রিডের আকার এক ধাপে পরিবর্তন করতে আপনি একটি বড় ব্লক ইমপোর্ট বক্সে পেস্টও করতে পারেন — টুলটি ইমপোর্ট করা ডেটার সাথে মিলিয়ে গ্রিডের মাত্রা রিসেট করে দেয়। আপনি বডি সারি এডিট করার সময় হেডার সারি সবসময় জায়গায় থাকে। কলাম পুনরায় সাজাতে হলে, টেবিলটি কপি করুন, ইমপোর্ট বক্সে পেস্ট করুন, ম্যানুয়ালি কলামের কনটেন্ট কেটে ফেলুন, তারপর পুনরায় ইমপোর্ট করুন। কোনো ড্র্যাগ-টু-রিঅর্ডার কলাম ফিচার নেই, তাই ইমপোর্ট-এডিট সাইকেলই বিকল্প।

হেডার সারি কীভাবে সেট করব?

গ্রিডের প্রথম সারি ডিফল্টভাবে হেডার। এটি এডিটরে বোল্ড দেখায় এবং মার্কডাউন আউটপুটে --- সেপারেটর সারির ওপরে বসে — সেপারেটরটিই গিটহাব, VS Code এবং Notion-এর মতো রেন্ডারারকে বলে যে সারি এক একটি হেডার, সাধারণ ডেটা সারি নয়। যদি আপনার ইমপোর্ট করা ডেটায় কোনো হেডিং না থাকে — যেমন একটি CSV যা সরাসরি ডেটা ভ্যালু দিয়ে শুরু হয় — 'First row is header' টগলটি বন্ধ করে দিন। তখন টুলটি একটি খালি হেডার সারি তৈরি করে (যা সেপারেটরের জন্য মার্কডাউনের এখনও প্রয়োজন) এবং প্রথমটিসহ প্রতিটি সারিকে ডেটা হিসেবে গণ্য করে।

এটি অনলাইনে ব্যবহার করা কি নিরাপদ?

হ্যাঁ। এই জেনারেটর ১০০% ক্লায়েন্ট-সাইড চলে: আপনার টেবিল সম্পূর্ণভাবে আপনার ব্রাউজারে JavaScript দিয়ে তৈরি হয় এবং কিছুই আপলোড, লগ বা সার্ভারে পাঠানো হয় না। আপনি নিরাপদে গোপনীয় স্প্রেডশিট — অভ্যন্তরীণ প্রাইসিং টেবিল, কর্মচারীর ডেটা, আর্থিক পরিসংখ্যান — পেস্ট করতে পারেন এবং ডেটা কখনো আপনার ডিভাইস ছেড়ে যায় না। পেজ লোড হওয়ার পর এটি অফলাইনেও কাজ চালিয়ে যায়, তাই আপনি সার্ভার সংযোগের ওপর নির্ভরশীল নন। আপনার ডেটা লগ করে বা অ্যাকাউন্ট প্রয়োজন করে এমন সার্ভার-সাইড টেবিল টুলের বিপরীতে, UtiloKit কিছু সংরক্ষণ করে না এবং কিছু চায় না। আপনার টেবিলের অবস্থা আপনার ব্রাউজারে স্থানীয়ভাবে সংরক্ষিত থাকে তাই পরের বার এসে সেটি পাবেন।

একটি বিদ্যমান মার্কডাউন টেবিল কীভাবে এডিট করব?

বিদ্যমান টেবিলটি ইমপোর্ট বক্সে পেস্ট করুন। টুলটি চিনে নেয় যে এটি মার্কডাউন, সেল ও অ্যালাইনমেন্ট কোলন পার্স করে এবং সেটি আবার এডিটেবল গ্রিডে লোড করে যাতে আপনি কলাম যোগ করতে, একটি মান ঠিক করতে বা পুনরায় অ্যালাইন করতে পারেন — তারপর আপডেট হওয়া মার্কডাউন কপি করে নিন। এটি একটি সম্পূর্ণ মার্কডাউন টেবিল এডিটর, শুধু একমুখী জেনারেটর নয়।

Python-এ মার্কডাউন টেবিল কীভাবে তৈরি করব?

tabulate লাইব্রেরি ব্যবহার করুন: from tabulate import tabulate; print(tabulate(rows, headers, tablefmt="github")) একটি গিটহাব-ফ্লেভারড মার্কডাউন টেবিল তৈরি করে। আপনার যদি ইতিমধ্যে একটি pandas DataFrame থাকে, df.to_markdown() একই কাজ এক কলে করে দেয়। তবে একটি দ্রুত, এককালীন টেবিলের জন্য, একটি স্ক্রিপ্ট তৈরি করার চেয়ে এই টুলে ডেটা পেস্ট করা দ্রুত।

আমার মার্কডাউন টেবিল কেন রেন্ডার হচ্ছে না?

দুটি সবচেয়ে সাধারণ কারণ হলো একটি অনুপস্থিত সেপারেটর সারি এবং অনুপস্থিত খালি লাইন। প্রতিটি মার্কডাউন টেবিলে হেডারের ঠিক নিচে --- সেপারেটর লাইন দরকার, এবং বেশিরভাগ রেন্ডারারের টেবিল ব্লকের ঠিক আগে ও পরে একটি খালি লাইন প্রয়োজন। প্রতিটি সারিতে একই সংখ্যক পাইপ অক্ষর আছে কিনা তাও চেক করুন — একটি অনুপস্থিত | সেই সারির কলাম গণনা ভেঙে দেয়। নিশ্চিত করুন আপনার রেন্ডারার গিটহাব ফ্লেভারড মার্কডাউন (GFM) সমর্থন করে, কারণ প্লেইন CommonMark এবং অনেক বেসিক মার্কডাউন পার্সারে টেবিল সিনট্যাক্স অন্তর্ভুক্ত নেই। GitLab, Notion, Obsidian এবং VS Code সবই GFM টেবিল সমর্থন করে, কিন্তু প্লাগইন ছাড়া Jekyll-এর মতো পুরনো টুল হয়তো করে না।

VS Code-এ মার্কডাউন টেবিল কীভাবে বানাব?

VS Code-এর বিল্ট-ইন মার্কডাউন প্রিভিউ (Ctrl/Cmd+Shift+V) GFM টেবিল রেন্ডার করে, এবং 'Markdown All in One' বা 'Markdown Table Formatter'-এর মতো এক্সটেনশন টাইপ করার সাথে সাথে পাইপগুলো স্বয়ংক্রিয়ভাবে অ্যালাইন করে। দ্রুততম পথ এখনও হলো এখানে টেবিল তৈরি করা, কপি করা এবং সম্পন্ন মার্কডাউন আপনার .md ফাইলে VS Code-এ পেস্ট করা।

R Markdown-এ একটি টেবিল কীভাবে তৈরি করব?

R Markdown-এ স্ট্যান্ডার্ড পদ্ধতি হলো একটি কোড চাংকের ভেতরে knitr::kable(df), যা একটি ডেটা ফ্রেমকে মার্কডাউন টেবিলে রূপান্তরিত করে; gt এবং flextable-এর মতো প্যাকেজ স্টাইলিং যোগ করে। আপনার যদি শুধু স্ট্যাটিক মার্কডাউন দরকার হয়, এখানে এটি তৈরি করুন এবং সরাসরি আপনার .Rmd ডকুমেন্টে পেস্ট করুন — এটি একইভাবে রেন্ডার হয়।

UtiloKit TableConvert, tableflip বা Tables Generator-এর সাথে কীভাবে তুলনীয়?

TableConvert (tableconvert.com) একটি সুপরিচিত বিকল্প যা মার্কডাউন, HTML, CSV, LaTeX এবং আরও অনেক কিছু সমর্থন করে, কিন্তু এটি সার্ভার-সাইড — আপনার টেবিল ডেটা রূপান্তরের জন্য তাদের ব্যাকএন্ডে পাঠানো হয়। TableFlip একটি পেইড macOS ডেস্কটপ অ্যাপ, ফ্রি ওয়েব টুল নয়। Tables Generator (tablesgenerator.com) মূলত LaTeX টেবিলের ওপর ফোকাস করে, আর এর মার্কডাউন সমর্থন আরও সীমিত। UtiloKit-এর মার্কডাউন টেবিল জেনারেটর সম্পূর্ণভাবে আপনার ব্রাউজারে চলে কোনো সার্ভার যোগাযোগ, কোনো সাইন-আপ, কোনো পেইড টিয়ার এবং আপনার ডিভাইস থেকে কখনো ডেটা না বেরিয়ে। এটি Excel পেস্ট, CSV ইমপোর্ট, দ্বিমুখী রাউন্ড-ট্রিপ এডিটিং এবং কমপ্যাক্ট ও প্যাডেড আউটপুট উভয়ই হ্যান্ডেল করে — সবই ফ্রি।

আমি কি আইফোন বা অ্যান্ড্রয়েডে এই মার্কডাউন টেবিল জেনারেটর ব্যবহার করতে পারি?

হ্যাঁ। টুলটি সম্পূর্ণভাবে রেসপনসিভ এবং ৩৭৫px (iPhone SE প্রস্থ) ও তার ওপরে পরীক্ষিত। মোবাইলে আপনি সরাসরি গ্রিড সেলে টাইপ করতে পারেন, সাইজ করতে + Row এবং + Column বাটন ব্যবহার করতে পারেন, এবং ক্লিপবোর্ডে মার্কডাউন পেতে Copy ট্যাপ করতে পারেন। iOS ও Android-এ Google Sheets বা Excel থেকে পেস্ট ইমপোর্ট বক্সের মাধ্যমে কাজ করে — শুধু আপনার স্প্রেডশিট অ্যাপে সেল কপি করুন, ইমপোর্ট এরিয়া ট্যাপ করুন এবং পেস্ট করুন। আউটপুট পরিষ্কারভাবে ক্লিপবোর্ডে কপি হয় তাই আপনি সরাসরি গিটহাব মোবাইল, Notion, বা অন্য যেকোনো অ্যাপে পেস্ট করতে পারেন। কোনো অ্যাপ ইনস্টলের দরকার নেই — শুধু Mobile Safari বা Chrome-এ URL খুলুন।