ToolDeck

CSV به Markdown

تبدیل CSV به جدول Markdown

یک مثال امتحان کنید

ورودی CSV

خروجی Markdown

به‌صورت محلی اجرا می‌شود · جای‌گذاری اسرار امن است
جدول Markdown اینجا نمایش داده خواهد شد…

تبدیل CSV به Markdown چیست؟

تبدیل CSV به جدول Markdown یک کار رایج برای توسعه‌دهندگان است. CSV (مقادیر جداشده با کاما) داده‌های جدولی را به‌صورت متن ساده ذخیره می‌کند؛ هر سطر روی خط جداگانه‌ای قرار دارد و فیلدها با یک جداکننده مانند کاما یا تب از هم جدا می‌شوند. این فرمت خروجی پیش‌فرض صفحه‌گسترده‌ها، کلاینت‌های SQL و ابزارهای تحلیل داده است. فایل‌های CSV فشرده و تولیدشان آسان است، اما هیچ راه توکاری برای کنترل نمایش داده ندارند. یک فایل CSV باز‌شده در ویرایشگر متن، دیواری از رشته‌های جداشده با کاماست که ماشین‌ها به‌راحتی می‌خوانند اما خواندن آن برای انسان دشوار است.

جداول Markdown این مشکل خوانایی را حل می‌کنند. آن‌ها بر اساس مشخصات GitHub Flavored Markdown (GFM) تعریف شده‌اند و GitHub، GitLab، Bitbucket، Notion، Obsidian و سایت‌سازهای ایستا مانند Hugo و Jekyll از آن‌ها پشتیبانی می‌کنند — در هر جایی که Markdown پردازش شود، به جدول HTML تمیز رندر می‌شوند. نحو از کاراکترهای پایپ برای جداسازی ستون‌ها و یک سطر جداکننده اجباری از خط‌تیره بین سطر سرصفحه و سطرهای بدنه استفاده می‌کند.

تبدیل CSV به جدول Markdown به معنای قرار دادن هر سطر در قالب جداشده با پایپ و درج سطر جداکننده پس از سرصفحه است. اولین سطر CSV به سرصفحه جدول تبدیل می‌شود و هر سطر بعدی به یک سطر بدنه. این تبدیل برای درج داده‌های ساختاریافته در README، توضیح pull request، صفحه ویکی یا هر سامانه مستندسازی مبتنی بر Markdown ضروری است.

چرا از این ابزار استفاده کنیم؟

این مبدل، CSV شما را در مرورگر تجزیه می‌کند، بلافاصله جدول Markdown تولید می‌کند و هیچ داده‌ای را به سرور ارسال نمی‌کند.

تولید فوری جدول
CSV را بچسبانید و فوری یک جدول Markdown با قالب‌بندی صحیح دریافت کنید. بدون انتظار برای آپلود یا پردازش سرور. خروجی هم‌زمان با تایپ به‌روزرسانی می‌شود.
🔒
پردازش با حفظ حریم خصوصی
داده‌های شما در تب مرورگر شما باقی می‌مانند. هیچ چیزی از طریق شبکه ارسال نمی‌شود. برای مجموعه‌داده‌های داخلی، اطلاعات محرمانه یا داده‌های اختصاصی که نباید دستگاه شما را ترک کنند، امن است.
📋
خروجی آماده کپی
جدول Markdown را با یک کلیک در کلیپ‌بورد کپی کنید. مستقیماً در یک README GitHub، issue، توضیح PR، صفحه Confluence یا هر ویرایشگر Markdown بچسبانید.
🔀
تشخیص جداکننده
ابزار جداکننده‌های کاما، تب، سمی‌کالن و پایپ را به‌طور خودکار تشخیص می‌دهد. CSV شما برای تولید خروجی معتبر نیازی به پیروی از یک فرمت واحد ندارد.

موارد استفاده تبدیل CSV به Markdown

مستندسازی README
یک فایل CSV از گزینه‌های پیکربندی، endpointهای API یا متغیرهای محیطی را به جدول Markdown برای README پروژه تبدیل کنید. مستندات را با صادرات داده هماهنگ نگه می‌دارد.
توضیحات Pull Request
نتایج آزمون، مقایسه‌های benchmark یا خلاصه‌های مهاجرت را به‌عنوان جداول Markdown در توضیحات PR روی GitHub یا GitLab بچسبانید تا بررسی‌کنندگان بتوانند داده‌ها را بدون باز کردن فایل جداگانه‌ای اسکن کنند.
Runbookهای DevOps
موجودی‌های CSV از سرورها، پورت‌ها یا endpointهای سرویس را به جداول Markdown برای ویکی‌های تیمی و runbookهای پاسخ به حادثه ذخیره‌شده در Git تبدیل کنید.
گزارش‌دهی آزمون QA
صادرات نتایج آزمون CSV از pipeline‌های CI را به جداول Markdown تبدیل کنید که مستقیماً در تیکت‌های Jira، Confluence یا Notion برای بررسی ذی‌نفعان رندر می‌شوند.
مستندات مهندسی داده
تعریف‌های schema یا فراداده ستون‌های صادرشده به‌عنوان CSV از یک کاتالوگ داده را به جداول Markdown برای درج در مستندات pipeline داده تبدیل کنید.
کارهای دانشگاهی و دانشجویی
مجموعه‌داده‌های Kaggle یا درگاه‌های داده آزاد دولتی را به جداول Markdown برای یادداشت‌های پژوهشی، گزارش‌های آزمایشگاهی یا مستندات دفترچه Jupyter تبدیل کنید.

مرجع نحو جدول 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 برای ماشین‌ها و pipeline‌های داده است؛ جداول Markdown برای انسان‌هایی که مستندات می‌خوانند.

CSV
ماشین‌محور. فیلدها با یک جداکننده (کاما، تب، سمی‌کالن) از هم جدا می‌شوند. کنترل تراز ندارد. رندری ندارد — آنچه در ویرایشگر متن می‌بینید مقادیر خام است. توسط هر صفحه‌گسترده، ابزار صادرات پایگاه داده و زبان برنامه‌نویسی پشتیبانی می‌شود. بهترین گزینه برای تبادل و ذخیره‌سازی داده.
Markdown Table
انسان‌محور. ستون‌ها با کاراکترهای پایپ جدا می‌شوند و یک سطر جداکننده از خط‌تیره الزامی است. از تراز چپ، وسط و راست به‌ازای هر ستون پشتیبانی می‌کند. روی GitHub، GitLab، Notion و سایت‌سازهای ایستا به جدول HTML رندر می‌شود. بهترین گزینه برای مستندات، READMEها و نمایش داده درون‌خطی.

نمونه‌های کد

نمونه‌های زیر نحوه تبدیل برنامه‌نویسانه CSV به جدول Markdown را در زبان‌های مختلف نشان می‌دهند. هر نمونه یک جدول GFM معتبر تولید می‌کند.

JavaScript (Node.js)
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 |
Python
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))
Go
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 |
}
CLI (Miller + csvtomd)
# 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

سوالات متداول

این ابزار چه فرمت جدول Markdown تولید می‌کند؟
ابزار جداول GitHub Flavored Markdown (GFM) تولید می‌کند. این فرمت از کاراکترهای پایپ به‌عنوان جداکننده ستون و یک سطر از خط‌تیره (---) بین سرصفحه و بدنه استفاده می‌کند. جداول GFM توسط GitHub، GitLab، Bitbucket، Notion، Obsidian، Hugo، Jekyll و اکثر رندرکننده‌های Markdown پشتیبانی می‌شوند.
آیا می‌توانم تراز ستون‌ها را در خروجی Markdown کنترل کنم؟
نحو استاندارد جدول Markdown از تراز چپ، وسط و راست با افزودن دونقطه به سطر جداکننده پشتیبانی می‌کند (:--- برای چپ، :---: برای وسط، ---: برای راست). این ابزار به‌طور پیش‌فرض ستون‌های تراز چپ تولید می‌کند. پس از تبدیل می‌توانید سطر جداکننده را در خروجی برای تغییر تراز ویرایش کنید.
ابزار با فیلدهای CSV که شامل کاما هستند چطور برخورد می‌کند؟
اگر یک فیلد CSV شامل کاراکتر جداکننده باشد، طبق RFC 4180 باید در گیومه‌های دوتایی محصور شود. ابزار هنگام تجزیه، گیومه‌های بیرونی را حذف می‌کند و مقدار ساده را داخل سلول Markdown خروجی می‌دهد. فرمت Markdown جداشده با پایپ برای کاما نیازی به نقل‌قول‌گذاری ندارد.
آیا محدودیتی برای تعداد سطر یا ستون در تبدیل وجود دارد؟
هیچ محدودیت سختی توسط ابزار اعمال نمی‌شود. تبدیل در مرورگر شما اجرا می‌شود، پس عملکرد به دستگاه شما بستگی دارد. جداول با چند هزار سطر روی سخت‌افزار مدرن در کمتر از یک ثانیه تبدیل می‌شوند. برای فایل‌های بسیار بزرگ (۱۰۰٬۰۰۰+ سطر)، ابزار خط فرمانی مانند Miller مناسب‌تر است.
اگر CSV من سطر سرصفحه نداشته باشد چه اتفاقی می‌افتد؟
جداول Markdown به سطر سرصفحه نیاز دارند. اگر CSV شما سرصفحه ندارد، ابزار اولین سطر داده را به‌عنوان سرصفحه در نظر می‌گیرد. می‌توانید قبل از چسباندن یک سطر سرصفحه به CSV اضافه کنید یا پس از تبدیل اولین سطر خروجی Markdown را ویرایش کنید.
آیا می‌توانم داده‌های جداشده با تب (TSV) را به Markdown تبدیل کنم؟
بله. ابزار کاراکترهای تب را به‌عنوان جداکننده تشخیص می‌دهد. داده‌های TSV را مستقیماً بچسبانید و مبدل آن‌ها را همانند ورودی جداشده با کاما تجزیه می‌کند. همچنین می‌توانید اگر تشخیص خودکار با داده شما تطابق ندارد، جداکننده را به‌صورت دستی انتخاب کنید.
جداول Markdown با کاراکترهای خاص مانند پایپ چطور برخورد می‌کنند؟
یک کاراکتر پایپ واقعی داخل یک سلول ساختار جدول را خراب می‌کند. در Markdown، آن را با بک‌اسلش escape می‌کنید: \|. هنگام تبدیل از CSV، ابزار به‌طور خودکار هر کاراکتر پایپ موجود در مقادیر سلول را escape می‌کند تا جدول خروجی به‌درستی رندر شود.