CSV'den Markdown'a
CSV'yi Markdown tablosuna dönüştürün
CSV Girişi
Markdown Çıktısı
CSV'den Markdown'a Dönüşüm Nedir?
CSV'yi Markdown tablosuna dönüştürmek, geliştiricilerin sık karşılaştığı bir görevdir. CSV (Virgülle Ayrılmış Değerler), tablo verilerini düz metin olarak depolar; her satır kendi satırındadır ve alanlar virgül ya da sekme gibi bir ayırıcıyla birbirinden ayrılır. CSV, elektronik tablolar, SQL istemcileri ve analiz araçlarının varsayılan dışa aktarma biçimidir. CSV dosyaları kompakttır ve üretilmesi kolaydır; ancak verinin görüntülendiğinde nasıl görüneceğini kontrol etmek için yerleşik bir yöntem sunmaz. Bir metin düzenleyicide açılan CSV dosyası, makineler için okunabilir fakat insanlar için taranması güç, virgülle ayrılmış dizelerden oluşan bir duvar gibidir.
Markdown tabloları bu okunabilirlik sorununu çözer. GitHub Flavored Markdown (GFM) belirtiminde tanımlanmıştır ve GitHub, GitLab, Bitbucket, Notion, Obsidian ile Hugo ve Jekyll gibi statik site oluşturucular tarafından desteklenmektedir. Markdown'ın işlendiği her yerde düzgün HTML tabloları olarak görüntülenirler. Söz dizimi, sütunları ayırmak için boru karakterlerini ve başlık ile gövde satırları arasında zorunlu bir tire ayırıcı satırını kullanır.
CSV'yi Markdown tablosuna dönüştürmek, her satırı boru karakteriyle ayrılmış söz dizimine sarmak ve başlıktan sonra ayırıcı satırı eklemek demektir. CSV'nin ilk satırı tablo başlığı, sonraki her satır ise gövde satırı olur. Yapılandırılmış verileri bir README'ye, pull request açıklamasına, wiki sayfasına veya herhangi bir Markdown belgeleme sistemine yapıştırmak istediğinizde bu dönüşüme ihtiyaç duyarsınız.
Bu Aracı Neden Kullanmalısınız?
Bu dönüştürücü, CSV'nizi tarayıcıda ayrıştırır, Markdown tablo çıktısını anında oluşturur ve verilerinizi asla sunucuya göndermez.
CSV'den Markdown'a Kullanım Senaryoları
Markdown Tablo Söz Dizimi Başvurusu
Markdown tabloları GitHub Flavored Markdown (GFM) belirtimini izler. Her tablo bir başlık satırı, bir ayırıcı satır ve bir veya daha fazla gövde satırı gerektirir. Ayırıcı satır, sütun hizalamasını belirler.
| Öğe | Söz Dizimi | Açıklama |
|---|---|---|
| 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 ile Markdown Tablosu Karşılaştırması
Her iki biçim de tablo verilerini düz metin olarak temsil eder. CSV makineler ve veri boru hatları içindir; Markdown tabloları belgeleri okuyan insanlar içindir.
Kod Örnekleri
Aşağıdaki örnekler, farklı dillerde CSV'yi programatik olarak Markdown tablosuna nasıl dönüştüreceğinizi gösterir. Her biri geçerli bir GFM tablosu üretir.
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