[{"data":1,"prerenderedAt":798},["ShallowReactive",2],{"guide-github-flavored-markdown":3},{"id":4,"title":5,"body":6,"date":789,"description":790,"extension":791,"meta":792,"navigation":793,"path":794,"readingTime":449,"seo":795,"stem":796,"__hash__":797},"guides\u002Fguides\u002Fgithub-flavored-markdown.md","GitHub Flavored Markdown: Extensions, Tables, and Task Lists",{"type":7,"value":8,"toc":762},"minimark",[9,14,18,21,25,28,117,120,123,126,131,172,176,179,204,226,230,256,260,263,267,292,296,323,327,330,333,336,345,353,356,367,371,374,389,396,400,410,414,417,459,463,466,553,556,560,563,601,604,608,611,655,658,662,665,698,702,722,726,746,750,758],[10,11,13],"h2",{"id":12},"what-is-github-flavored-markdown","What Is GitHub Flavored Markdown?",[15,16,17],"p",{},"GitHub Flavored Markdown (GFM) is GitHub's extension of the CommonMark specification. It adds features that developers and writers need every day — tables, task lists, strikethrough, autolinks, and stricter HTML filtering.",[15,19,20],{},"GFM is not a separate language. It builds on CommonMark as a strict superset: every valid CommonMark document is valid GFM, but GFM adds syntax that CommonMark does not recognize. Most modern Markdown parsers support GFM by default.",[10,22,24],{"id":23},"gfm-vs-commonmark-key-differences","GFM vs CommonMark: Key Differences",[15,26,27],{},"Understanding what GFM adds helps you write Markdown that works consistently across platforms.",[29,30,31,47],"table",{},[32,33,34],"thead",{},[35,36,37,41,44],"tr",{},[38,39,40],"th",{},"Feature",[38,42,43],{},"CommonMark",[38,45,46],{},"GFM",[48,49,50,62,71,80,95,106],"tbody",{},[35,51,52,56,59],{},[53,54,55],"td",{},"Tables",[53,57,58],{},"No",[53,60,61],{},"Yes",[35,63,64,67,69],{},[53,65,66],{},"Task lists",[53,68,58],{},[53,70,61],{},[35,72,73,76,78],{},[53,74,75],{},"Strikethrough",[53,77,58],{},[53,79,61],{},[35,81,82,85,92],{},[53,83,84],{},"Autolinks (bare URLs)",[53,86,87,88],{},"Requires ",[89,90,91],"code",{},"\u003Curl>",[53,93,94],{},"Automatic",[35,96,97,100,103],{},[53,98,99],{},"Disallowed raw HTML",[53,101,102],{},"No filtering",[53,104,105],{},"Strips dangerous tags",[35,107,108,111,114],{},[53,109,110],{},"Heading IDs",[53,112,113],{},"Not specified",[53,115,116],{},"Auto-generated",[15,118,119],{},"If your content uses any feature in the GFM column, you need a GFM-compliant parser. CommonMark parsers will render those sections as plain text or ignore them.",[10,121,55],{"id":122},"tables",[15,124,125],{},"Tables are the most-requested GFM feature. They turn data into scannable, aligned columns.",[127,128,130],"h3",{"id":129},"basic-syntax","Basic Syntax",[132,133,138],"pre",{"className":134,"code":135,"language":136,"meta":137,"style":137},"language-markdown shiki shiki-themes github-light github-dark","| Language   | Year | Paradigm      |\n|------------|------|---------------|\n| Python     | 1991 | Multi-paradigm|\n| Rust       | 2010 | Systems       |\n| TypeScript | 2012 | Object-oriented|\n","markdown","",[89,139,140,148,154,160,166],{"__ignoreMap":137},[141,142,145],"span",{"class":143,"line":144},"line",1,[141,146,147],{},"| Language   | Year | Paradigm      |\n",[141,149,151],{"class":143,"line":150},2,[141,152,153],{},"|------------|------|---------------|\n",[141,155,157],{"class":143,"line":156},3,[141,158,159],{},"| Python     | 1991 | Multi-paradigm|\n",[141,161,163],{"class":143,"line":162},4,[141,164,165],{},"| Rust       | 2010 | Systems       |\n",[141,167,169],{"class":143,"line":168},5,[141,170,171],{},"| TypeScript | 2012 | Object-oriented|\n",[127,173,175],{"id":174},"column-alignment","Column Alignment",[15,177,178],{},"Colons in the separator row control alignment:",[132,180,182],{"className":134,"code":181,"language":136,"meta":137,"style":137},"| Left      | Center       | Right      |\n|:----------|:------------:|-----------:|\n| Default   | Centered     | Numbers    |\n| Aligned   | Text         | Align here |\n",[89,183,184,189,194,199],{"__ignoreMap":137},[141,185,186],{"class":143,"line":144},[141,187,188],{},"| Left      | Center       | Right      |\n",[141,190,191],{"class":143,"line":150},[141,192,193],{},"|:----------|:------------:|-----------:|\n",[141,195,196],{"class":143,"line":156},[141,197,198],{},"| Default   | Centered     | Numbers    |\n",[141,200,201],{"class":143,"line":162},[141,202,203],{},"| Aligned   | Text         | Align here |\n",[205,206,207,214,220],"ul",{},[208,209,210,213],"li",{},[89,211,212],{},":---"," — left-aligned (default)",[208,215,216,219],{},[89,217,218],{},":---:"," — center-aligned",[208,221,222,225],{},[89,223,224],{},"---:"," — right-aligned",[127,227,229],{"id":228},"table-tips","Table Tips",[205,231,232,235,246,253],{},[208,233,234],{},"You do not need to align pipes visually — parsers ignore extra spaces",[208,236,237,238,241,242,245],{},"Blank cells are fine: ",[89,239,240],{},"| | |"," renders as empty ",[89,243,244],{},"\u003Ctd>"," elements",[208,247,248,249,252],{},"Tables do not support row spans or column spans — use HTML ",[89,250,251],{},"\u003Ctable>"," markup only if absolutely necessary",[208,254,255],{},"Keep tables narrow. Wide tables break on mobile; consider bullet lists as an alternative",[10,257,259],{"id":258},"task-lists","Task Lists",[15,261,262],{},"Task lists add interactive checkboxes to your Markdown. On GitHub, they render as clickable toggles in issues, pull requests, and comments.",[127,264,266],{"id":265},"syntax","Syntax",[132,268,270],{"className":134,"code":269,"language":136,"meta":137,"style":137},"- [x] Set up CI pipeline\n- [x] Write unit tests\n- [ ] Add integration tests\n- [ ] Deploy to staging\n",[89,271,272,277,282,287],{"__ignoreMap":137},[141,273,274],{"class":143,"line":144},[141,275,276],{},"- [x] Set up CI pipeline\n",[141,278,279],{"class":143,"line":150},[141,280,281],{},"- [x] Write unit tests\n",[141,283,284],{"class":143,"line":156},[141,285,286],{},"- [ ] Add integration tests\n",[141,288,289],{"class":143,"line":162},[141,290,291],{},"- [ ] Deploy to staging\n",[127,293,295],{"id":294},"use-cases","Use Cases",[205,297,298,305,311,317],{},[208,299,300,304],{},[301,302,303],"strong",{},"Pull request descriptions"," — track what a PR covers at a glance",[208,306,307,310],{},[301,308,309],{},"Issue templates"," — give contributors a checklist to follow",[208,312,313,316],{},[301,314,315],{},"Project READMEs"," — show progress on planned features",[208,318,319,322],{},[301,320,321],{},"Meeting notes"," — assign and track action items",[127,324,326],{"id":325},"compatibility-note","Compatibility Note",[15,328,329],{},"Outside GitHub, task lists typically render as static checkboxes (checked or unchecked icons). They are not interactive in static-site generators unless you add custom JavaScript.",[10,331,75],{"id":332},"strikethrough",[15,334,335],{},"Double tildes strike through text:",[132,337,339],{"className":134,"code":338,"language":136,"meta":137,"style":137},"This feature is ~~deprecated~~ legacy — use the new API instead.\n",[89,340,341],{"__ignoreMap":137},[141,342,343],{"class":143,"line":144},[141,344,338],{},[15,346,347,348,352],{},"Renders as: This feature is ",[349,350,351],"del",{},"deprecated"," legacy — use the new API instead.",[15,354,355],{},"Common uses:",[205,357,358,361,364],{},[208,359,360],{},"Marking outdated information while keeping it visible for context",[208,362,363],{},"Showing before\u002Fafter edits in documentation",[208,365,366],{},"Tracking changes in meeting notes without deleting the original",[10,368,370],{"id":369},"autolinks","Autolinks",[15,372,373],{},"GFM automatically turns bare URLs and email addresses into clickable links — no angle brackets needed.",[132,375,377],{"className":134,"code":376,"language":136,"meta":137,"style":137},"Visit https:\u002F\u002Fgithub.com for the source code.\nContact support@example.com for help.\n",[89,378,379,384],{"__ignoreMap":137},[141,380,381],{"class":143,"line":144},[141,382,383],{},"Visit https:\u002F\u002Fgithub.com for the source code.\n",[141,385,386],{"class":143,"line":150},[141,387,388],{},"Contact support@example.com for help.\n",[15,390,391,392,395],{},"CommonMark requires ",[89,393,394],{},"\u003Chttps:\u002F\u002Fgithub.com>"," syntax. GFM removes that friction.",[127,397,399],{"id":398},"url-break-detection","URL Break Detection",[15,401,402,403,409],{},"GFM handles URLs that wrap across lines and strips trailing punctuation (periods, commas, parentheses) from links. This prevents sentences like \"See ",[404,405,406],"a",{"href":406,"rel":407},"https:\u002F\u002Fexample.com",[408],"nofollow",".\" from including the period in the URL.",[10,411,413],{"id":412},"code-blocks-and-syntax-highlighting","Code Blocks and Syntax Highlighting",[15,415,416],{},"GFM supports fenced code blocks with optional language hints — identical to standard Markdown but with better support on GitHub's platform.",[132,418,420],{"className":134,"code":419,"language":136,"meta":137,"style":137},"```python\ndef fibonacci(n):\n    a, b = 0, 1\n    for _ in range(n):\n        a, b = b, a + b\n    return a\n```\n",[89,421,422,427,432,437,442,447,453],{"__ignoreMap":137},[141,423,424],{"class":143,"line":144},[141,425,426],{},"```python\n",[141,428,429],{"class":143,"line":150},[141,430,431],{},"def fibonacci(n):\n",[141,433,434],{"class":143,"line":156},[141,435,436],{},"    a, b = 0, 1\n",[141,438,439],{"class":143,"line":162},[141,440,441],{},"    for _ in range(n):\n",[141,443,444],{"class":143,"line":168},[141,445,446],{},"        a, b = b, a + b\n",[141,448,450],{"class":143,"line":449},6,[141,451,452],{},"    return a\n",[141,454,456],{"class":143,"line":455},7,[141,457,458],{},"```\n",[127,460,462],{"id":461},"github-specific-highlighting","GitHub-Specific Highlighting",[15,464,465],{},"GitHub uses Linguist to detect languages and apply syntax highlighting. Language hints override auto-detection:",[29,467,468,478],{},[32,469,470],{},[35,471,472,475],{},[38,473,474],{},"Hint",[38,476,477],{},"Language",[48,479,480,494,507,520,533,543],{},[35,481,482,491],{},[53,483,484,487,488],{},[89,485,486],{},"js"," or ",[89,489,490],{},"javascript",[53,492,493],{},"JavaScript",[35,495,496,504],{},[53,497,498,487,501],{},[89,499,500],{},"ts",[89,502,503],{},"typescript",[53,505,506],{},"TypeScript",[35,508,509,517],{},[53,510,511,487,514],{},[89,512,513],{},"py",[89,515,516],{},"python",[53,518,519],{},"Python",[35,521,522,530],{},[53,523,524,487,527],{},[89,525,526],{},"sh",[89,528,529],{},"bash",[53,531,532],{},"Shell",[35,534,535,540],{},[53,536,537],{},[89,538,539],{},"json",[53,541,542],{},"JSON",[35,544,545,550],{},[53,546,547],{},[89,548,549],{},"yaml",[53,551,552],{},"YAML",[15,554,555],{},"Always specify the language. Auto-detection fails on short snippets and ambiguous syntax.",[10,557,559],{"id":558},"disallowed-raw-html","Disallowed Raw HTML",[15,561,562],{},"GFM strips certain HTML tags from output to prevent security issues. The disallowed list includes:",[205,564,565,571,577,583,589,595],{},[208,566,567,570],{},[89,568,569],{},"\u003Cscript>"," — prevents script injection",[208,572,573,576],{},[89,574,575],{},"\u003Ctitle>"," — prevents page title manipulation",[208,578,579,582],{},[89,580,581],{},"\u003Cstyle>"," — prevents style injection",[208,584,585,588],{},[89,586,587],{},"\u003Ctextarea>"," — prevents form manipulation",[208,590,591,594],{},[89,592,593],{},"\u003Cxmp>"," — deprecated, potential XSS vector",[208,596,597,600],{},[89,598,599],{},"\u003Ciframe>"," — (on some renderers) prevents framing attacks",[15,602,603],{},"This is a security feature, not a formatting limitation. If you need these elements, they should come from your template system, not from user-generated Markdown.",[10,605,607],{"id":606},"github-only-extensions","GitHub-Only Extensions",[15,609,610],{},"Some GFM features work exclusively on GitHub's platform:",[205,612,613,635,645],{},[208,614,615,618,619,622,623,622,626,622,629,622,632],{},[301,616,617],{},"Alerts"," — callout blocks using ",[89,620,621],{},"> [!NOTE]",", ",[89,624,625],{},"> [!WARNING]",[89,627,628],{},"> [!TIP]",[89,630,631],{},"> [!CAUTION]",[89,633,634],{},"> [!IMPORTANT]",[208,636,637,640,641,644],{},[301,638,639],{},"Mermaid diagrams"," — render flowcharts and sequence diagrams from fenced ",[89,642,643],{},"mermaid"," code blocks",[208,646,647,650,651,654],{},[301,648,649],{},"Footnotes"," — GitHub now supports ",[89,652,653],{},"[^1]"," footnote syntax in issues and discussions",[15,656,657],{},"These features may not render correctly in other Markdown parsers. Check your target platform before relying on them.",[10,659,661],{"id":660},"portability-checklist","Portability Checklist",[15,663,664],{},"Before publishing GFM content outside GitHub:",[666,667,668,674,680,686,692],"ol",{},[208,669,670,673],{},[301,671,672],{},"Test tables"," in your target renderer — alignment and empty cells vary",[208,675,676,679],{},[301,677,678],{},"Replace alerts"," with standard blockquotes if your platform does not support them",[208,681,682,685],{},[301,683,684],{},"Verify autolinks"," — some parsers still require angle brackets",[208,687,688,691],{},[301,689,690],{},"Check task list rendering"," — interactive vs static behavior differs",[208,693,694,697],{},[301,695,696],{},"Strip GitHub-only features"," — Mermaid and alerts need plugin support",[10,699,701],{"id":700},"key-takeaways","Key Takeaways",[205,703,704,707,710,713,716,719],{},[208,705,706],{},"GFM extends CommonMark with tables, task lists, strikethrough, and autolinks",[208,708,709],{},"Tables support left, center, and right alignment via colon syntax",[208,711,712],{},"Task lists are interactive on GitHub, static elsewhere",[208,714,715],{},"GFM filters dangerous HTML tags automatically — a baseline security benefit",[208,717,718],{},"Alerts and Mermaid diagrams are GitHub-specific; plan replacements for other platforms",[208,720,721],{},"Always specify code-block language hints for reliable syntax highlighting",[10,723,725],{"id":724},"related-guides","Related Guides",[205,727,728,734,740],{},[208,729,730],{},[404,731,733],{"href":732},"\u002Fguides\u002Fmarkdown-preview-guide","Markdown Preview Guide",[208,735,736],{},[404,737,739],{"href":738},"\u002Fguides\u002Fmarkdown-writing-workflow","Markdown Writing Workflow",[208,741,742],{},[404,743,745],{"href":744},"\u002Fguides\u002Fmarkdown-syntax-guide","Markdown Syntax Guide",[10,747,749],{"id":748},"try-it-yourself","Try It Yourself",[15,751,752,753,757],{},"Put GFM syntax to the test. Open our free ",[404,754,756],{"href":755},"\u002Ftools\u002Fmarkdown-preview","Markdown Preview"," tool, write a table or task list, and see the rendered output in real time — no GitHub repository required.",[759,760,761],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":137,"searchDepth":150,"depth":150,"links":763},[764,765,766,771,776,777,780,783,784,785,786,787,788],{"id":12,"depth":150,"text":13},{"id":23,"depth":150,"text":24},{"id":122,"depth":150,"text":55,"children":767},[768,769,770],{"id":129,"depth":156,"text":130},{"id":174,"depth":156,"text":175},{"id":228,"depth":156,"text":229},{"id":258,"depth":150,"text":259,"children":772},[773,774,775],{"id":265,"depth":156,"text":266},{"id":294,"depth":156,"text":295},{"id":325,"depth":156,"text":326},{"id":332,"depth":150,"text":75},{"id":369,"depth":150,"text":370,"children":778},[779],{"id":398,"depth":156,"text":399},{"id":412,"depth":150,"text":413,"children":781},[782],{"id":461,"depth":156,"text":462},{"id":558,"depth":150,"text":559},{"id":606,"depth":150,"text":607},{"id":660,"depth":150,"text":661},{"id":700,"depth":150,"text":701},{"id":724,"depth":150,"text":725},{"id":748,"depth":150,"text":749},"2026-05-28","Master GitHub Flavored Markdown (GFM). Learn tables, task lists, strikethrough, autolinks, and how GFM extends the CommonMark spec.","md",{"immutable":793},true,"\u002Fguides\u002Fgithub-flavored-markdown",{"title":5,"description":790},"guides\u002Fgithub-flavored-markdown","x9NQ82RFLnOHU3X4aTckTrd8_Qotql9aUB9Ln1rV0IE",1780401327484]