Markdown یک زبان نشانهگذاری سبکوزن است که در سال ۲۰۰۴ توسط John Gruber ساخته شد. این زبان از نمادهای قالببندی متن ساده مانند ستارهها، علامتهای هشتگ و خطفاصله برای نشاندادن ساختار استفاده میکند: عناوین، متن پررنگ، متن کج، لیستها، پیوندها و بلوکهای کد. یک ابزار پیشنمایش Markdown این متن ساده را به HTML قالببندیشده تبدیل میکند تا بتوانید دقیقاً ببینید سند نهایی قبل از انتشار چه شکلی خواهد داشت. مشخصات اصلی Markdown در مستندات Daring Fireball نوشته Gruber توضیح داده شده و این قالب از آن زمان بهصورت CommonMark رسمی شده است.
Markdown به قالب نوشتاری پیشفرض برای مستندات توسعهدهندگان، فایلهای README، مولدهای سایت استاتیک (Jekyll، Hugo، Astro)، ویکیها و پایگاههای دانش تبدیل شده است. GitHub، GitLab، Bitbucket، Stack Overflow، Reddit و Notion همگی بهطور بومی از Markdown پشتیبانی میکنند. از آنجا که منبع آن متن ساده است، فایلهای Markdown با Git بهراحتی کنترل نسخه میشوند، در شاخههای مختلف مقایسه میشوند و در بخشهای غیرمتداخل یک فایل بدون تعارض ادغام میشوند.
یک ابزار پیشنمایش Markdown ورودی شما را تجزیه کرده و در زمان واقعی به HTML تبدیل میکند. این امکان را میدهد که خطاهای قالببندی، پیوندهای شکسته و تودرتوی ناخواسته را قبل از ثبت فایل یا انتشار صفحه شناسایی کنید. این ابزار پیشنمایش کاملاً در مرورگر شما اجرا میشود و نیاز به ارسال درخواست به سرور ندارد، بنابراین میتوانید روی مستندات خصوصی یا حساس بدون ارسال محتوا از طریق شبکه کار کنید.
چرا از ابزار پیشنمایش Markdown آنلاین استفاده کنیم؟
نوشتن Markdown در یک ویرایشگر ساده بدون پیشنمایش به معنای حدسزدن درباره خروجی است. یک ابزار پیشنمایش زنده این حلقه بازخورد را فوراً میبندد.
⚡
رندر در زمان واقعی
خروجی قالببندیشده را همانطور که تایپ میکنید ببینید. هر عنوان، لیست، بلوک کد و پیوند بلافاصله رندر میشود تا اشتباهات را در همان لحظهای که رخ میدهند شناسایی کنید.
🔒
پردازش با اولویت حریم خصوصی
تمام تجزیه در مرورگر شما انجام میشود. متن Markdown شما هرگز به سروری بارگذاری نمیشود؛ برای همین میتوانید مستندات داخلی، کلیدهای API در نمونهها یا پیشنویس پستهای وبلاگ را بدون نگرانی وارد کنید.
📝
بدون نیاز به حساب کاربری یا نصب
صفحه را باز کنید و شروع به تایپ کنید. هیچ فرم ثبتنامی، هیچ برنامه دسکتاپی برای دانلود و هیچ افزونه VS Code برای تنظیم وجود ندارد. در هر دستگاهی با مرورگر کار میکند.
🌐
پشتیبانی کامل از CommonMark
عناوین، متن پررنگ، متن کج، خطخورده، کد درونخطی، بلوکهای کد محصور، لیستهای مرتب و نامرتب، پیوندها، نقلقولها و خطوط افقی همگی پشتیبانی میشوند.
موارد استفاده از پیشنمایش Markdown
توسعهدهنده فرانتاند در حال نوشتن مستندات کامپوننت
فایلهای README و مستندات کامپوننت را قبل از ارسال به GitHub پیشنمایش کنید. تأیید کنید که نمونههای کد بهدرستی در بلوکهای محصور رندر میشوند و پیوندهای نسبی به فایلهای درست اشاره دارند.
مهندس بکاند در حال تهیه مستندات API
توضیحات endpoint، نمونههای درخواست/پاسخ و راهنماهای احراز هویت را در Markdown بنویسید. خروجی رندرشده را پیشنمایش کنید تا تأیید کنید بلوکهای کد JSON، جداول و لیستهای تودرتو بهدرستی نمایش داده میشوند.
مهندس DevOps در حال نگهداری runbookها
Runbookها و playbookهای رویداد که بهعنوان Markdown در یک مخزن Git ذخیره شدهاند نیاز به قالببندی دقیق دارند. دستورالعملهای گامبهگام با لیستهای شمارهدار و قطعههای کد را قبل از ادغام پیشنمایش کنید.
مهندس QA در حال نوشتن برنامههای آزمایش
سناریوهای آزمایش، معیارهای پذیرش و گزارشهای اشکال را در Markdown مستند کنید. از ابزار پیشنمایش استفاده کنید تا مطمئن شوید چکلیستها، عناوین و ارجاعات متقاطع بهدرستی رندر میشوند.
مهندس داده در حال مستندسازی خطوط لوله
فایلهای README خطوط لوله طرحها، وابستگیهای DAG و پیکربندیها را توصیف میکنند. این مستندات را پیشنمایش کنید تا اطمینان حاصل کنید کد درونخطی، بلوکهای SQL محصور و مراحل راهاندازی شمارهدار بهدرستی قالببندی شدهاند.
دانشجو در حال یادگیری نحو Markdown
Markdown را در سمت چپ تایپ کنید و نتیجه HTML را در سمت راست ببینید. با عناوین، لیستها، متن پررنگ، متن کج و بلوکهای کد آزمایش کنید تا حافظه عضلانی برای نحو ایجاد کنید.
مرجع نحو Markdown
جدول زیر نحو رایج Markdown را به نتیجه رندرشده و عنصر HTML مربوطه نگاشت میکند. این پایه CommonMark را پوشش میدهد که تقریباً هر تجزیهکننده Markdown آن را پشتیبانی میکند.
Markdown
خروجی
تگ HTML
# Heading
Heading 1
<h1>
## Heading
Heading 2
<h2>
**bold**
Bold text
<strong>
*italic*
Italic text
<em>
~~strike~~
Strikethrough
<del>
`code`
Inline code
<code>
```lang\n...\n```
Fenced code block
<pre><code>
- item
Unordered list
<ul><li>
1. item
Ordered list
<ol><li>
[text](url)
Hyperlink
<a href>
> quote
Blockquote
<blockquote>
---
Horizontal rule
<hr>
مقایسه نسخههای Markdown
پلتفرمهای مختلف مشخصات اصلی Markdown را با ویژگیهای اضافی گسترش میدهند. دانستن اینکه کدام نسخه را هدف قرار میدهید به شما کمک میکند از نحوی که در رندرکنندههای دیگر بیسروصدا خراب میشود دوری کنید.
GitHub Flavored Markdown (GFM)
لیستهای وظیفه (- [ ] / - [x])، جداول با نحو pipe، خطخورده (~~text~~) و URLهای پیوند خودکار را اضافه میکند. این نسخهای است که در issueهای GitHub، درخواستهای pull و فایلهای README استفاده میشود. در GitHub Flavored Markdown Spec مشخص شده که بر اساس CommonMark ساخته شده است.
CommonMark
مشخصات دقیق و بدون ابهام از نحو اصلی Markdown. CommonMark قوانین دقیقی برای موارد لبهای مانند لیستهای تودرتو، خطوط ادامه تنبل و خطوط خالی در داخل نقلقولهای بلوکی تعریف میکند. اکثر تجزیهکنندههای مدرن (marked، markdown-it، goldmark) بهطور پیشفرض از CommonMark استفاده میکنند.
MultiMarkdown (MMD)
Markdown را با پاورقیها، کلیدهای استناد، ریاضیات (LaTeX)، لیستهای تعریف و متادیتای سند گسترش میدهد. عمدتاً در نوشتارهای دانشگاهی و مستندات طولانی که به PDF یا LaTeX صادر میشوند استفاده میشود.
MDX
کامپوننتهای JSX را مستقیماً در فایلهای Markdown جاسازی میکند. توسط چارچوبهای مستندسازی مانند Docusaurus، Nextra و مجموعههای محتوای Astro استفاده میشود. فایلهای MDX در زمان ساخت به کامپوننتهای React کامپایل میشوند.
نمونههای کد: رندر Markdown بهصورت برنامهنویسی
وقتی نیاز دارید Markdown را درون یک برنامه بهجای ابزار مرورگر رندر کنید، از یکی از این کتابخانهها استفاده کنید. هر نمونه یک رشته Markdown را به یک رشته HTML تبدیل میکند.
JavaScript (marked)
import { marked } from 'marked'
const md = '# Hello\n\nThis is **Markdown**.'
const html = marked(md)
// → "<h1>Hello</h1>\n<p>This is <strong>Markdown</strong>.</p>\n"
// With options
marked.setOptions({ gfm: true, breaks: true })
const gfmHtml = marked('Line one\nLine two')
// → "<p>Line one<br>Line two</p>\n"
Python (markdown)
import markdown
md = '# Hello\n\nThis is **Markdown**.'
html = markdown.markdown(md)
# → '<h1>Hello</h1>\n<p>This is <strong>Markdown</strong>.</p>'
# With extensions
html = markdown.markdown(md, extensions=['fenced_code', 'tables'])
# Convert a file
with open('README.md') as f:
html = markdown.markdown(f.read(), extensions=['extra'])
Go (goldmark)
package main
import (
"bytes"
"fmt"
"github.com/yuin/goldmark"
)
func main() {
source := []byte("# Hello\n\nThis is **Markdown**.")
var buf bytes.Buffer
if err := goldmark.Convert(source, &buf); err != nil {
panic(err)
}
fmt.Println(buf.String())
// → <h1>Hello</h1>
// → <p>This is <strong>Markdown</strong>.</p>
}
CLI (pandoc)
# Convert Markdown file to HTML
pandoc README.md -f markdown -t html -o output.html
# Convert with GitHub Flavored Markdown
pandoc README.md -f gfm -t html --standalone -o output.html
# Pipe from stdin
echo '# Hello **world**' | pandoc -f markdown -t html
# → <h1>Hello <strong>world</strong></h1>
سؤالات متداول
تفاوت بین Markdown و HTML چیست؟
Markdown یک میانبر متن ساده است که به HTML تبدیل میشود. بهجای <h1>Heading</h1> مینویسید # Heading. Markdown سریعتر برای نوشتن و در شکل منبع آسانتر برای خواندن است، اما HTML کنترل کاملی بر هر عنصر و صفت به شما میدهد. اکثر رندرکنندههای Markdown HTML استاندارد تولید میکنند.
آیا Markdown همان GitHub Flavored Markdown است؟
خیر. GitHub Flavored Markdown (GFM) یک فوقمجموعه از CommonMark است که جداول، لیستهای وظیفه، خطخورده و پیوندهای خودکار را اضافه میکند. Markdown ساده (CommonMark) این ویژگیها را ندارد. اگر Markdown شما در GitHub نمایش داده میشود، آن را با نحو GFM بنویسید. اگر رندرکننده دیگری هدف است، بررسی کنید کدام افزونهها را پشتیبانی میکند.
آیا Markdown میتواند شامل تصویر باشد؟
بله. نحو آن  است. متن جایگزین داخل براکتهای مربعی و آدرس تصویر داخل پرانتز قرار میگیرد. همچنین میتوانید عنوان اختیاری اضافه کنید: . اکثر رندرکنندهها این را به یک تگ <img> با صفات src، alt و title تبدیل میکنند.
چگونه در Markdown جدول ایجاد کنم؟
جداول بخشی از مشخصات اصلی Markdown نیستند، اما GFM و اکثر تجزیهکنندههای مدرن از آنها پشتیبانی میکنند. از pipe (|) برای جداسازی ستونها و خطفاصله (---) برای ردیف هدر استفاده کنید: | نام | سن |\n|---|---|\n| رضا | ۳۰ |. تراز با دونقطه در ردیف جداکننده کنترل میشود: :--- برای چپ، :---: برای مرکز، ---: برای راست.
آیا متن من هنگام استفاده از این ابزار پیشنمایش به سرور ارسال میشود؟
خیر. تجزیهکننده Markdown کاملاً در مرورگر شما با استفاده از JavaScript اجرا میشود. متن شما روی دستگاهتان باقی میماند و هرگز از طریق شبکه منتقل نمیشود. میتوانید این را با باز کردن تب Network مرورگرتان در حین استفاده از ابزار تأیید کنید.
این ابزار پیشنمایش از چه عناصر Markdown پشتیبانی میکند؟
این ابزار پیشنمایش عناوین (h1 تا h6)، متن پررنگ، متن کج، خطخورده، کد درونخطی، بلوکهای کد محصور با راهنمای زبان، لیستهای مرتب و نامرتب، پیوندها، نقلقولها و خطوط افقی را مدیریت میکند. از قوانین تجزیه CommonMark برای این عناصر پیروی میکند.
چگونه میتوانم Markdown با ریاضیات یا نمودار پیشنمایش کنم؟
ریاضیات (LaTeX) و نمودارها (Mermaid) افزونههایی هستند که در CommonMark یا GFM گنجانده نشدهاند. برای رندر آنها به تجزیهکنندهای نیاز دارید که از این افزونهها پشتیبانی کند، مانند markdown-it با افزونه markdown-it-katex برای ریاضیات، یا پلتفرمی مانند GitHub که بلوکهای Mermaid را بهصورت بومی رندر میکند. این ابزار پیشنمایش بر عناصر استاندارد Markdown تمرکز دارد.