CSV থেকে Markdown
CSV কে Markdown টেবিলে রূপান্তর করুন
CSV ইনপুট
Markdown আউটপুট
CSV থেকে Markdown রূপান্তর কী?
CSV কে Markdown টেবিলে রূপান্তর করা ডেভেলপারদের একটি সাধারণ কাজ। CSV (Comma-Separated Values) টেবুলার ডেটা সাধারণ পাঠ্য হিসেবে সংরক্ষণ করে, প্রতিটি সারি নিজের লাইনে থাকে এবং ফিল্ডগুলো কমা বা ট্যাবের মতো ডিলিমিটার দিয়ে আলাদা করা হয়। এটি স্প্রেডশিট, SQL ক্লায়েন্ট ও বিশ্লেষণ টুলের ডিফল্ট রপ্তানি ফরম্যাট। CSV ফাইল সংক্ষিপ্ত ও তৈরি করা সহজ, কিন্তু ডেটা প্রদর্শনের ক্ষেত্রে এর কোনো অন্তর্নির্মিত নিয়ন্ত্রণ নেই। টেক্সট এডিটরে খোলা CSV ফাইল কমা-বিভাজিত স্ট্রিংয়ের একটি দেয়াল — মেশিন পড়তে পারে, কিন্তু মানুষের জন্য পড়া কঠিন।
Markdown টেবিল এই পাঠযোগ্যতার সমস্যা সমাধান করে। এগুলো GitHub Flavored Markdown (GFM) স্পেসিফিকেশন দ্বারা সংজ্ঞায়িত এবং GitHub, GitLab, Bitbucket, Notion, Obsidian ও Hugo ও Jekyll-এর মতো স্ট্যাটিক সাইট জেনারেটর সমর্থন করে — যেকোনো জায়গায় Markdown প্রক্রিয়া করা হয়, সেখানে এগুলো পরিষ্কার HTML টেবিল হিসেবে রেন্ডার হয়। সিনট্যাক্সে কলাম আলাদা করতে পাইপ অক্ষর ব্যবহার হয় এবং হেডার ও বডি সারির মধ্যে ড্যাশের একটি বাধ্যতামূলক বিভাজক সারি থাকে।
CSV কে Markdown টেবিলে রূপান্তর মানে প্রতিটি সারিকে পাইপ-বিভাজিত সিনট্যাক্সে মোড়ানো এবং হেডারের পরে বিভাজক সারি যোগ করা। CSV-এর প্রথম সারি টেবিল হেডার হয়, এবং পরবর্তী প্রতিটি সারি বডি রো হয়। README, পুল রিকোয়েস্ট বিবরণ, উইকি পেজ বা যেকোনো Markdown ডকুমেন্টেশন সিস্টেমে কাঠামোবদ্ধ ডেটা পেস্ট করার সময় এই রূপান্তর প্রয়োজন।
কেন এই টুল ব্যবহার করবেন?
এই কনভার্টার আপনার CSV ব্রাউজারেই পার্স করে, তাৎক্ষণিকভাবে Markdown টেবিল আউটপুট তৈরি করে এবং কখনো আপনার ডেটা কোনো সার্ভারে পাঠায় না।
CSV থেকে Markdown ব্যবহারের ক্ষেত্র
Markdown টেবিল সিনট্যাক্স রেফারেন্স
Markdown টেবিল GitHub Flavored Markdown (GFM) স্পেসিফিকেশন অনুসরণ করে। প্রতিটি টেবিলে একটি হেডার সারি, একটি বিভাজক সারি ও এক বা একাধিক বডি সারি থাকতে হবে। বিভাজক সারি কলামের অ্যালাইনমেন্ট নিয়ন্ত্রণ করে।
| উপাদান | সিনট্যাক্স | বিবরণ |
|---|---|---|
| Column separator | | | Separates each cell within a row |
| Header row | | Name | Age | | First row of the table, defines column names |
| Separator row | | --- | --- | | Required second row; separates header from body |
| Left align | | :--- | | Default alignment — colon on the left side |
| Center align | | :---: | | Colons on both sides of the dashes |
| Right align | | ---: | | Colon on the right side only |
| Escaped pipe | \| | Use backslash to include a literal pipe in cell text |
CSV বনাম Markdown টেবিল
উভয় ফরম্যাটই সাধারণ পাঠ্য হিসেবে টেবুলার ডেটা উপস্থাপন করে। CSV মেশিন ও ডেটা পাইপলাইনের জন্য; Markdown টেবিল ডকুমেন্টেশন পড়া মানুষের জন্য।
কোড উদাহরণ
নিচের উদাহরণগুলো বিভিন্ন ভাষায় প্রোগ্রামগতভাবে CSV কে Markdown টেবিলে রূপান্তরের পদ্ধতি দেখায়। প্রতিটি একটি বৈধ GFM টেবিল তৈরি করে।
const csv = `name,age,city
Alice,30,Berlin
Bob,25,Tokyo`
const [headerLine, ...rows] = csv.trim().split('\n')
const headers = headerLine.split(',')
const separator = '| ' + headers.map(() => '---').join(' | ') + ' |'
const headerRow = '| ' + headers.join(' | ') + ' |'
const bodyRows = rows.map(row =>
'| ' + row.split(',').join(' | ') + ' |'
)
const markdown = [headerRow, separator, ...bodyRows].join('\n')
// → | name | age | city |
// → | --- | --- | --- |
// → | Alice | 30 | Berlin |
// → | Bob | 25 | Tokyo |import csv
import io
csv_string = """name,age,city
Alice,30,Berlin
Bob,25,Tokyo"""
reader = csv.reader(io.StringIO(csv_string))
rows = list(reader)
headers = rows[0]
lines = []
lines.append('| ' + ' | '.join(headers) + ' |')
lines.append('| ' + ' | '.join('---' for _ in headers) + ' |')
for row in rows[1:]:
lines.append('| ' + ' | '.join(row) + ' |')
print('\n'.join(lines))
# → | name | age | city |
# → | --- | --- | --- |
# → | Alice | 30 | Berlin |
# → | Bob | 25 | Tokyo |
# With pandas (one-liner)
import pandas as pd
df = pd.read_csv(io.StringIO(csv_string))
print(df.to_markdown(index=False))package main
import (
"encoding/csv"
"fmt"
"strings"
)
func main() {
input := "name,age,city\nAlice,30,Berlin\nBob,25,Tokyo"
r := csv.NewReader(strings.NewReader(input))
records, _ := r.ReadAll()
headers := records[0]
var lines []string
lines = append(lines, "| "+strings.Join(headers, " | ")+" |")
sep := make([]string, len(headers))
for i := range sep {
sep[i] = "---"
}
lines = append(lines, "| "+strings.Join(sep, " | ")+" |")
for _, row := range records[1:] {
lines = append(lines, "| "+strings.Join(row, " | ")+" |")
}
fmt.Println(strings.Join(lines, "\n"))
// → | name | age | city |
// → | --- | --- | --- |
// → | Alice | 30 | Berlin |
// → | Bob | 25 | Tokyo |
}# Using Miller (mlr) — convert CSV to Markdown table mlr --icsv --omarkdown cat data.csv # → | name | age | city | # → | --- | --- | --- | # → | Alice | 30 | Berlin | # Using csvtomd (pip install csvtomd) csvtomd data.csv # Using pandas in a one-liner python3 -c " import pandas as pd, sys print(pd.read_csv(sys.argv[1]).to_markdown(index=False)) " data.csv