{"kind":"Skill","metadata":{"namespace":"community","name":"markdown-to-html","version":"0.1.0"},"spec":{"description":"Convert Markdown files to HTML similar to `marked.js`, `pandoc`, `gomarkdown/markdown`, or similar tools; or writing custom script to convert markdown to html and/or working on web template systems like `jekyll/jekyll`, `gohugoio/hugo`, or similar web templating systems that utilize markdown documents, converting them to html. Use when asked to \"convert markdown to html\", \"transform md to html\", \"render markdown\", \"generate html from markdown\", or when working with .md files and/or web a templating system that converts markdown to HTML output. Supports CLI and Node.js workflows with GFM, CommonMark, and standard Markdown flavors.","files":{"SKILL.md":"---\nname: markdown-to-html\ndescription: 'Convert Markdown files to HTML similar to `marked.js`, `pandoc`, `gomarkdown/markdown`, or similar tools; or writing custom script to convert markdown to html and/or working on web template systems like `jekyll/jekyll`, `gohugoio/hugo`, or similar web templating systems that utilize markdown documents, converting them to html. Use when asked to \"convert markdown to html\", \"transform md to html\", \"render markdown\", \"generate html from markdown\", or when working with .md files and/or web a templating system that converts markdown to HTML output. Supports CLI and Node.js workflows with GFM, CommonMark, and standard Markdown flavors.'\n---\n\n# Markdown to HTML Conversion\n\nExpert skill for converting Markdown documents to HTML using the marked.js library, or writing data conversion scripts; in this case scripts similar to [markedJS/marked](https://github.com/markedjs/marked) repository. For custom scripts knowledge is not confined to `marked.js`, but data conversion methods are utilized from tools like [pandoc](https://github.com/jgm/pandoc) and [gomarkdown/markdown](https://github.com/gomarkdown/markdown) for data conversion; [jekyll/jekyll](https://github.com/jekyll/jekyll) and [gohugoio/hugo](https://github.com/gohugoio/hugo) for templating systems.\n\nThe conversion script or tool should handle single files, batch conversions, and advanced configurations.\n\n## When to Use This Skill\n\n- User asks to \"convert markdown to html\" or \"transform md files\"\n- User wants to \"render markdown\" as HTML output\n- User needs to generate HTML documentation from .md files\n- User is building static sites from Markdown content\n- User is building template system that converts markdown to html\n- User is working on a tool, widget, or custom template for an existing templating system\n- User wants to preview Markdown as rendered HTML\n\n## Converting Markdown to HTML\n\n### Essential Basic Conversions\n\nFor more see [basic-markdown-to-html.md](references/basic-markdown-to-html.md)\n\n```text\n    ```markdown\n    # Level 1\n    ## Level 2\n\n    One sentence with a [link](https://example.com), and a HTML snippet like `\u003cp\u003eparagraph tag\u003c/p\u003e`.\n\n    - `ul` list item 1\n    - `ul` list item 2\n\n    1. `ol` list item 1\n    2. `ol` list item 1\n\n    | Table Item | Description |\n    | One | One is the spelling of the number `1`. |\n    | Two | Two is the spelling of the number `2`. |\n\n    ```js\n    var one = 1;\n    var two = 2;\n\n    function simpleMath(x, y) {\n     return x + y;\n    }\n    console.log(simpleMath(one, two));\n    ```\n    ```\n\n    ```html\n    \u003ch1\u003eLevel 1\u003c/h1\u003e\n    \u003ch2\u003eLevel 2\u003c/h2\u003e\n\n    \u003cp\u003eOne sentence with a \u003ca href=\"https://example.com\"\u003elink\u003c/a\u003e, and a HTML snippet like \u003ccode\u003e\u0026lt;p\u0026gt;paragraph tag\u0026lt;/p\u0026gt;\u003c/code\u003e.\u003c/p\u003e\n\n    \u003cul\u003e\n     \u003cli\u003e`ul` list item 1\u003c/li\u003e\n     \u003cli\u003e`ul` list item 2\u003c/li\u003e\n    \u003c/ul\u003e\n\n    \u003col\u003e\n     \u003cli\u003e`ol` list item 1\u003c/li\u003e\n     \u003cli\u003e`ol` list item 2\u003c/li\u003e\n    \u003c/ol\u003e\n\n    \u003ctable\u003e\n     \u003cthead\u003e\n      \u003ctr\u003e\n       \u003cth\u003eTable Item\u003c/th\u003e\n       \u003cth\u003eDescription\u003c/th\u003e\n      \u003c/tr\u003e\n     \u003c/thead\u003e\n     \u003ctbody\u003e\n      \u003ctr\u003e\n       \u003ctd\u003eOne\u003c/td\u003e\n       \u003ctd\u003eOne is the spelling of the number `1`.\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n       \u003ctd\u003eTwo\u003c/td\u003e\n       \u003ctd\u003eTwo is the spelling of the number `2`.\u003c/td\u003e\n      \u003c/tr\u003e\n     \u003c/tbody\u003e\n    \u003c/table\u003e\n\n    \u003cpre\u003e\n     \u003ccode\u003evar one = 1;\n     var two = 2;\n\n     function simpleMath(x, y) {\n      return x + y;\n     }\n     console.log(simpleMath(one, two));\u003c/code\u003e\n    \u003c/pre\u003e\n    ```\n```\n\n### Code Block Conversions\n\nFor more see [code-blocks-to-html.md](references/code-blocks-to-html.md)\n\n```text\n\n    ```markdown\n    your code here\n    ```\n\n    ```html\n    \u003cpre\u003e\u003ccode class=\"language-md\"\u003e\n    your code here\n    \u003c/code\u003e\u003c/pre\u003e\n    ```\n\n    ```js\n    console.log(\"Hello world\");\n    ```\n\n    ```html\n    \u003cpre\u003e\u003ccode class=\"language-js\"\u003e\n    console.log(\"Hello world\");\n    \u003c/code\u003e\u003c/pre\u003e\n    ```\n\n    ```markdown\n      ```\n\n      ```\n      visible backticks\n      ```\n\n      ```\n    ```\n\n    ```html\n      \u003cpre\u003e\u003ccode\u003e\n      ```\n\n      visible backticks\n\n      ```\n      \u003c/code\u003e\u003c/pre\u003e\n    ```\n```\n\n### Collapsed Section Conversions\n\nFor more see [collapsed-sections-to-html.md](references/collapsed-sections-to-html.md)\n\n```text\n    ```markdown\n    \u003cdetails\u003e\n    \u003csummary\u003eMore info\u003c/summary\u003e\n\n    ### Header inside\n\n    - Lists\n    - **Formatting**\n    - Code blocks\n\n        ```js\n        console.log(\"Hello\");\n        ```\n\n    \u003c/details\u003e\n    ```\n\n    ```html\n    \u003cdetails\u003e\n    \u003csummary\u003eMore info\u003c/summary\u003e\n\n    \u003ch3\u003eHeader inside\u003c/h3\u003e\n\n    \u003cul\u003e\n     \u003cli\u003eLists\u003c/li\u003e\n     \u003cli\u003e\u003cstrong\u003eFormatting\u003c/strong\u003e\u003c/li\u003e\n     \u003cli\u003eCode blocks\u003c/li\u003e\n    \u003c/ul\u003e\n\n    \u003cpre\u003e\n     \u003ccode class=\"language-js\"\u003econsole.log(\"Hello\");\u003c/code\u003e\n    \u003c/pre\u003e\n\n    \u003c/details\u003e\n    ```\n```\n\n### Mathematical Expression Conversions\n\nFor more see [writing-mathematical-expressions-to-html.md](references/writing-mathematical-expressions-to-html.md)\n\n```text\n    ```markdown\n    This sentence uses `$` delimiters to show math inline: $\\sqrt{3x-1}+(1+x)^2$\n    ```\n\n    ```html\n    \u003cp\u003eThis sentence uses \u003ccode\u003e$\u003c/code\u003e delimiters to show math inline:\n     \u003cmath-renderer\u003e\u003cmath xmlns=\"http://www.w3.org/1998/Math/MathML\"\u003e\n      \u003cmsqrt\u003e\u003cmn\u003e3\u003c/mn\u003e\u003cmi\u003ex\u003c/mi\u003e\u003cmo\u003e−\u003c/mo\u003e\u003cmn\u003e1\u003c/mn\u003e\u003c/msqrt\u003e\n      \u003cmo\u003e+\u003c/mo\u003e\u003cmo\u003e(\u003c/mo\u003e\u003cmn\u003e1\u003c/mn\u003e\u003cmo\u003e+\u003c/mo\u003e\u003cmi\u003ex\u003c/mi\u003e\n      \u003cmsup\u003e\u003cmo\u003e)\u003c/mo\u003e\u003cmn\u003e2\u003c/mn\u003e\u003c/msup\u003e\n     \u003c/math\u003e\n    \u003c/math-renderer\u003e\n    \u003c/p\u003e\n    ```\n\n    ```markdown\n    **The Cauchy-Schwarz Inequality**\\\n    $$\\left( \\sum_{k=1}^n a_k b_k \\right)^2 \\leq \\left( \\sum_{k=1}^n a_k^2 \\right) \\left( \\sum_{k=1}^n b_k^2 \\right)$$\n    ```\n\n    ```html\n    \u003cp\u003e\u003cstrong\u003eThe Cauchy-Schwarz Inequality\u003c/strong\u003e\u003cbr\u003e\n     \u003cmath-renderer\u003e\n      \u003cmath xmlns=\"http://www.w3.org/1998/Math/MathML\"\u003e\n       \u003cmsup\u003e\n        \u003cmrow\u003e\u003cmo\u003e(\u003c/mo\u003e\n         \u003cmunderover\u003e\u003cmo data-mjx-texclass=\"OP\"\u003e∑\u003c/mo\u003e\n          \u003cmrow\u003e\u003cmi\u003ek\u003c/mi\u003e\u003cmo\u003e=\u003c/mo\u003e\u003cmn\u003e1\u003c/mn\u003e\u003c/mrow\u003e\u003cmi\u003en\u003c/mi\u003e\n         \u003c/munderover\u003e\n         \u003cmsub\u003e\u003cmi\u003ea\u003c/mi\u003e\u003cmi\u003ek\u003c/mi\u003e\u003c/msub\u003e\n         \u003cmsub\u003e\u003cmi\u003eb\u003c/mi\u003e\u003cmi\u003ek\u003c/mi\u003e\u003c/msub\u003e\n         \u003cmo\u003e)\u003c/mo\u003e\n        \u003c/mrow\u003e\n        \u003cmn\u003e2\u003c/mn\u003e\n       \u003c/msup\u003e\n       \u003cmo\u003e≤\u003c/mo\u003e\n       \u003cmrow\u003e\u003cmo\u003e(\u003c/mo\u003e\n        \u003cmunderover\u003e\u003cmo\u003e∑\u003c/mo\u003e\n         \u003cmrow\u003e\u003cmi\u003ek\u003c/mi\u003e\u003cmo\u003e=\u003c/mo\u003e\u003cmn\u003e1\u003c/mn\u003e\u003c/mrow\u003e\n         \u003cmi\u003en\u003c/mi\u003e\n        \u003c/munderover\u003e\n        \u003cmsubsup\u003e\u003cmi\u003ea\u003c/mi\u003e\u003cmi\u003ek\u003c/mi\u003e\u003cmn\u003e2\u003c/mn\u003e\u003c/msubsup\u003e\n        \u003cmo\u003e)\u003c/mo\u003e\n       \u003c/mrow\u003e\n       \u003cmrow\u003e\u003cmo\u003e(\u003c/mo\u003e\n         \u003cmunderover\u003e\u003cmo\u003e∑\u003c/mo\u003e\n          \u003cmrow\u003e\u003cmi\u003ek\u003c/mi\u003e\u003cmo\u003e=\u003c/mo\u003e\u003cmn\u003e1\u003c/mn\u003e\u003c/mrow\u003e\n          \u003cmi\u003en\u003c/mi\u003e\n         \u003c/munderover\u003e\n         \u003cmsubsup\u003e\u003cmi\u003eb\u003c/mi\u003e\u003cmi\u003ek\u003c/mi\u003e\u003cmn\u003e2\u003c/mn\u003e\u003c/msubsup\u003e\n         \u003cmo\u003e)\u003c/mo\u003e\n       \u003c/mrow\u003e\n      \u003c/math\u003e\n     \u003c/math-renderer\u003e\u003c/p\u003e\n    ```\n```\n\n### Table Conversions\n\nFor more see [tables-to-html.md](references/tables-to-html.md)\n\n```text\n    ```markdown\n    | First Header  | Second Header |\n    | ------------- | ------------- |\n    | Content Cell  | Content Cell  |\n    | Content Cell  | Content Cell  |\n    ```\n\n    ```html\n    \u003ctable\u003e\n     \u003cthead\u003e\u003ctr\u003e\u003cth\u003eFirst Header\u003c/th\u003e\u003cth\u003eSecond Header\u003c/th\u003e\u003c/tr\u003e\u003c/thead\u003e\n     \u003ctbody\u003e\n      \u003ctr\u003e\u003ctd\u003eContent Cell\u003c/td\u003e\u003ctd\u003eContent Cell\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003eContent Cell\u003c/td\u003e\u003ctd\u003eContent Cell\u003c/td\u003e\u003c/tr\u003e\n     \u003c/tbody\u003e\n    \u003c/table\u003e\n    ```\n\n    ```markdown\n    | Left-aligned | Center-aligned | Right-aligned |\n    | :---         |     :---:      |          ---: |\n    | git status   | git status     | git status    |\n    | git diff     | git diff       | git diff      |\n    ```\n\n    ```html\n    \u003ctable\u003e\n      \u003cthead\u003e\n       \u003ctr\u003e\n        \u003cth align=\"left\"\u003eLeft-aligned\u003c/th\u003e\n        \u003cth align=\"center\"\u003eCenter-aligned\u003c/th\u003e\n        \u003cth align=\"right\"\u003eRight-aligned\u003c/th\u003e\n       \u003c/tr\u003e\n      \u003c/thead\u003e\n      \u003ctbody\u003e\n       \u003ctr\u003e\n        \u003ctd align=\"left\"\u003egit status\u003c/td\u003e\n        \u003ctd align=\"center\"\u003egit status\u003c/td\u003e\n        \u003ctd align=\"right\"\u003egit status\u003c/td\u003e\n       \u003c/tr\u003e\n       \u003ctr\u003e\n        \u003ctd align=\"left\"\u003egit diff\u003c/td\u003e\n        \u003ctd align=\"center\"\u003egit diff\u003c/td\u003e\n        \u003ctd align=\"right\"\u003egit diff\u003c/td\u003e\n       \u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n    ```\n```\n\n## Working with [`markedJS/marked`](references/marked.md)\n\n### Prerequisites\n\n- Node.js installed (for CLI or programmatic usage)\n- Install marked globally for CLI: `npm install -g marked`\n- Or install locally: `npm install marked`\n\n### Quick Conversion Methods\n\nSee [marked.md](references/marked.md) **Quick Conversion Methods**\n\n### Step-by-Step Workflows\n\nSee [marked.md](references/marked.md) **Step-by-Step Workflows**\n\n### CLI Configuration\n\n### Using Config Files\n\nCreate `~/.marked.json` for persistent options:\n\n```json\n{\n  \"gfm\": true,\n  \"breaks\": true\n}\n```\n\nOr use a custom config:\n\n```bash\nmarked -i input.md -o output.html -c config.json\n```\n\n### CLI Options Reference\n\n| Option | Description |\n|--------|-------------|\n| `-i, --input \u003cfile\u003e` | Input Markdown file |\n| `-o, --output \u003cfile\u003e` | Output HTML file |\n| `-s, --string \u003cstring\u003e` | Parse string instead of file |\n| `-c, --config \u003cfile\u003e` | Use custom config file |\n| `--gfm` | Enable GitHub Flavored Markdown |\n| `--breaks` | Convert newlines to `\u003cbr\u003e` |\n| `--help` | Show all options |\n\n### Security Warning\n\n⚠️ **Marked does NOT sanitize output HTML.** For untrusted input, use a sanitizer:\n\n```javascript\nimport { marked } from 'marked';\nimport DOMPurify from 'dompurify';\n\nconst unsafeHtml = marked.parse(untrustedMarkdown);\nconst safeHtml = DOMPurify.sanitize(unsafeHtml);\n```\n\nRecommended sanitizers:\n\n- [DOMPurify](https://github.com/cure53/DOMPurify) (recommended)\n- [sanitize-html](https://github.com/apostrophecms/sanitize-html)\n- [js-xss](https://github.com/leizongmin/js-xss)\n\n### Supported Markdown Flavors\n\n| Flavor | Support |\n|--------|---------|\n| Original Markdown | 100% |\n| CommonMark 0.31 | 98% |\n| GitHub Flavored Markdown | 97% |\n\n### Troubleshooting\n\n| Issue | Solution |\n|-------|----------|\n| Special characters at file start | Strip zero-width chars: `content.replace(/^[\\u200B\\u200C\\u200D\\uFEFF]/,\"\")` |\n| Code blocks not highlighting | Add a syntax highlighter like highlight.js |\n| Tables not rendering | Ensure `gfm: true` option is set |\n| Line breaks ignored | Set `breaks: true` in options |\n| XSS vulnerability concerns | Use DOMPurify to sanitize output |\n\n## Working with [`pandoc`](references/pandoc.md)\n\n### Prerequisites\n\n- Pandoc installed (download from \u003chttps://pandoc.org/installing.html\u003e)\n- For PDF output: LaTeX installation (MacTeX on macOS, MiKTeX on Windows, texlive on Linux)\n- Terminal/command prompt access\n\n### Quick Conversion Methods\n\n#### Method 1: CLI Basic Conversion\n\n```bash\n# Convert markdown to HTML\npandoc input.md -o output.html\n\n# Convert with standalone document (includes header/footer)\npandoc input.md -s -o output.html\n\n# Explicit format specification\npandoc input.md -f markdown -t html -s -o output.html\n```\n\n#### Method 2: Filter Mode (Interactive)\n\n```bash\n# Start pandoc as a filter\npandoc\n\n# Type markdown, then Ctrl-D (Linux/macOS) or Ctrl-Z+Enter (Windows)\nHello *pandoc*!\n# Output: \u003cp\u003eHello \u003cem\u003epandoc\u003c/em\u003e!\u003c/p\u003e\n```\n\n#### Method 3: Format Conversion\n\n```bash\n# HTML to Markdown\npandoc -f html -t markdown input.html -o output.md\n\n# Markdown to LaTeX\npandoc input.md -s -o output.tex\n\n# Markdown to PDF (requires LaTeX)\npandoc input.md -s -o output.pdf\n\n# Markdown to Word\npandoc input.md -s -o output.docx\n```\n\n### CLI Configuration\n\n| Option | Description |\n|--------|-------------|\n| `-f, --from \u003cformat\u003e` | Input format (markdown, html, latex, etc.) |\n| `-t, --to \u003cformat\u003e` | Output format (html, latex, pdf, docx, etc.) |\n| `-s, --standalone` | Produce standalone document with header/footer |\n| `-o, --output \u003cfile\u003e` | Output file (inferred from extension) |\n| `--mathml` | Convert TeX math to MathML |\n| `--metadata title=\"Title\"` | Set document metadata |\n| `--toc` | Include table of contents |\n| `--template \u003cfile\u003e` | Use custom template |\n| `--help` | Show all options |\n\n### Security Warning\n\n⚠️ **Pandoc processes input faithfully.** When converting untrusted markdown:\n\n- Use `--sandbox` mode to disable external file access\n- Validate input before processing\n- Sanitize HTML output if displayed in browsers\n\n```bash\n# Run in sandbox mode for untrusted input\npandoc --sandbox input.md -o output.html\n```\n\n### Supported Markdown Flavors\n\n| Flavor | Support |\n|--------|---------|\n| Pandoc Markdown | 100% (native) |\n| CommonMark | Full (use `-f commonmark`) |\n| GitHub Flavored Markdown | Full (use `-f gfm`) |\n| MultiMarkdown | Partial |\n\n### Troubleshooting\n\n| Issue | Solution |\n|-------|----------|\n| PDF generation fails | Install LaTeX (MacTeX, MiKTeX, or texlive) |\n| Encoding issues on Windows | Run `chcp 65001` before using pandoc |\n| Missing standalone headers | Add `-s` flag for complete documents |\n| Math not rendering | Use `--mathml` or `--mathjax` option |\n| Tables not rendering | Ensure proper table syntax with pipes and dashes |\n\n## Working with [`gomarkdown/markdown`](references/gomarkdown.md)\n\n### Prerequisites\n\n- Go 1.18 or higher installed\n- Install the library: `go get github.com/gomarkdown/markdown`\n- For CLI tool: `go install github.com/gomarkdown/mdtohtml@latest`\n\n### Quick Conversion Methods\n\n#### Method 1: Simple Conversion (Go)\n\n```go\npackage main\n\nimport (\n    \"fmt\"\n    \"github.com/gomarkdown/markdown\"\n)\n\nfunc main() {\n    md := []byte(\"# Hello World\\n\\nThis is **bold** text.\")\n    html := markdown.ToHTML(md, nil, nil)\n    fmt.Println(string(html))\n}\n```\n\n#### Method 2: CLI Tool\n\n```bash\n# Install mdtohtml\ngo install github.com/gomarkdown/mdtohtml@latest\n\n# Convert file\nmdtohtml input.md output.html\n\n# Convert file (output to stdout)\nmdtohtml input.md\n```\n\n#### Method 3: Custom Parser and Renderer\n\n```go\npackage main\n\nimport (\n    \"github.com/gomarkdown/markdown\"\n    \"github.com/gomarkdown/markdown/html\"\n    \"github.com/gomarkdown/markdown/parser\"\n)\n\nfunc mdToHTML(md []byte) []byte {\n    // Create parser with extensions\n    extensions := parser.CommonExtensions | parser.AutoHeadingIDs | parser.NoEmptyLineBeforeBlock\n    p := parser.NewWithExtensions(extensions)\n    doc := p.Parse(md)\n\n    // Create HTML renderer with extensions\n    htmlFlags := html.CommonFlags | html.HrefTargetBlank\n    opts := html.RendererOptions{Flags: htmlFlags}\n    renderer := html.NewRenderer(opts)\n\n    return markdown.Render(doc, renderer)\n}\n```\n\n### CLI Configuration\n\nThe `mdtohtml` CLI tool has minimal options:\n\n```bash\nmdtohtml input-file [output-file]\n```\n\nFor advanced configuration, use the Go library programmatically with parser and renderer options:\n\n| Parser Extension | Description |\n|------------------|-------------|\n| `parser.CommonExtensions` | Tables, fenced code, autolinks, strikethrough, etc. |\n| `parser.AutoHeadingIDs` | Generate IDs for headings |\n| `parser.NoEmptyLineBeforeBlock` | No blank line needed before blocks |\n| `parser.MathJax` | MathJax support for LaTeX math |\n\n| HTML Flag | Description |\n|-----------|-------------|\n| `html.CommonFlags` | Common HTML output flags |\n| `html.HrefTargetBlank` | Add `target=\"_blank\"` to links |\n| `html.CompletePage` | Generate complete HTML page |\n| `html.UseXHTML` | Generate XHTML output |\n\n### Security Warning\n\n⚠️ **gomarkdown does NOT sanitize output HTML.** For untrusted input, use Bluemonday:\n\n```go\nimport (\n    \"github.com/microcosm-cc/bluemonday\"\n    \"github.com/gomarkdown/markdown\"\n)\n\nmaybeUnsafeHTML := markdown.ToHTML(md, nil, nil)\nhtml := bluemonday.UGCPolicy().SanitizeBytes(maybeUnsafeHTML)\n```\n\nRecommended sanitizer: [Bluemonday](https://github.com/microcosm-cc/bluemonday)\n\n### Supported Markdown Flavors\n\n| Flavor | Support |\n|--------|---------|\n| Original Markdown | 100% |\n| CommonMark | High (with extensions) |\n| GitHub Flavored Markdown | High (tables, fenced code, strikethrough) |\n| MathJax/LaTeX Math | Supported via extension |\n| Mmark | Supported |\n\n### Troubleshooting\n\n| Issue | Solution |\n|-------|----------|\n| Windows/Mac newlines not parsed | Use `parser.NormalizeNewlines(input)` |\n| Tables not rendering | Enable `parser.Tables` extension |\n| Code blocks without highlighting | Integrate with syntax highlighter like Chroma |\n| Math not rendering | Enable `parser.MathJax` extension |\n| XSS vulnerabilities | Use Bluemonday to sanitize output |\n\n## Working with [`jekyll`](references/jekyll.md)\n\n### Prerequisites\n\n- Ruby version 2.7.0 or higher\n- RubyGems\n- GCC and Make (for native extensions)\n- Install Jekyll and Bundler: `gem install jekyll bundler`\n\n### Quick Conversion Methods\n\n#### Method 1: Create New Site\n\n```bash\n# Create a new Jekyll site\njekyll new myblog\n\n# Change to site directory\ncd myblog\n\n# Build and serve locally\nbundle exec jekyll serve\n\n# Access at http://localhost:4000\n```\n\n#### Method 2: Build Static Site\n\n```bash\n# Build site to _site directory\nbundle exec jekyll build\n\n# Build with production environment\nJEKYLL_ENV=production bundle exec jekyll build\n```\n\n#### Method 3: Live Reload Development\n\n```bash\n# Serve with live reload\nbundle exec jekyll serve --livereload\n\n# Serve with drafts\nbundle exec jekyll serve --drafts\n```\n\n### CLI Configuration\n\n| Command | Description |\n|---------|-------------|\n| `jekyll new \u003cpath\u003e` | Create new Jekyll site |\n| `jekyll build` | Build site to `_site` directory |\n| `jekyll serve` | Build and serve locally |\n| `jekyll clean` | Remove generated files |\n| `jekyll doctor` | Check for configuration issues |\n\n| Serve Options | Description |\n|---------------|-------------|\n| `--livereload` | Reload browser on changes |\n| `--drafts` | Include draft posts |\n| `--port \u003cport\u003e` | Set server port (default: 4000) |\n| `--host \u003chost\u003e` | Set server host (default: localhost) |\n| `--baseurl \u003curl\u003e` | Set base URL |\n\n### Security Warning\n\n⚠️ **Jekyll security considerations:**\n\n- Avoid using `safe: false` in production\n- Use `exclude` in `_config.yml` to prevent sensitive files from being published\n- Sanitize user-generated content if accepting external input\n- Keep Jekyll and plugins updated\n\n```yaml\n# _config.yml security settings\nexclude:\n  - Gemfile\n  - Gemfile.lock\n  - node_modules\n  - vendor\n```\n\n### Supported Markdown Flavors\n\n| Flavor | Support |\n|--------|---------|\n| Kramdown (default) | 100% |\n| CommonMark | Via plugin (jekyll-commonmark) |\n| GitHub Flavored Markdown | Via plugin (jekyll-commonmark-ghpages) |\n| RedCarpet | Via plugin (deprecated) |\n\nConfigure markdown processor in `_config.yml`:\n\n```yaml\nmarkdown: kramdown\nkramdown:\n  input: GFM\n  syntax_highlighter: rouge\n```\n\n### Troubleshooting\n\n| Issue | Solution |\n|-------|----------|\n| Ruby 3.0+ fails to serve | Run `bundle add webrick` |\n| Gem dependency errors | Run `bundle install` |\n| Slow builds | Use `--incremental` flag |\n| Liquid syntax errors | Check for unescaped `{` in content |\n| Plugin not loading | Add to `_config.yml` plugins list |\n\n## Working with [`hugo`](references/hugo.md)\n\n### Prerequisites\n\n- Hugo installed (download from \u003chttps://gohugo.io/installation/\u003e)\n- Git (recommended for themes and modules)\n- Go (optional, for Hugo Modules)\n\n### Quick Conversion Methods\n\n#### Method 1: Create New Site\n\n```bash\n# Create a new Hugo site\nhugo new site mysite\n\n# Change to site directory\ncd mysite\n\n# Add a theme\ngit init\ngit submodule add https://github.com/theNewDynamic/gohugo-theme-ananke themes/ananke\necho \"theme = 'ananke'\" \u003e\u003e hugo.toml\n\n# Create content\nhugo new content posts/my-first-post.md\n\n# Start development server\nhugo server -D\n```\n\n#### Method 2: Build Static Site\n\n```bash\n# Build site to public directory\nhugo\n\n# Build with minification\nhugo --minify\n\n# Build for specific environment\nhugo --environment production\n```\n\n#### Method 3: Development Server\n\n```bash\n# Start server with drafts\nhugo server -D\n\n# Start with live reload and bind to all interfaces\nhugo server --bind 0.0.0.0 --baseURL http://localhost:1313/\n\n# Start with specific port\nhugo server --port 8080\n```\n\n### CLI Configuration\n\n| Command | Description |\n|---------|-------------|\n| `hugo new site \u003cname\u003e` | Create new Hugo site |\n| `hugo new content \u003cpath\u003e` | Create new content file |\n| `hugo` | Build site to `public` directory |\n| `hugo server` | Start development server |\n| `hugo mod init` | Initialize Hugo Modules |\n\n| Build Options | Description |\n|---------------|-------------|\n| `-D, --buildDrafts` | Include draft content |\n| `-E, --buildExpired` | Include expired content |\n| `-F, --buildFuture` | Include future-dated content |\n| `--minify` | Minify output |\n| `--gc` | Run garbage collection after build |\n| `-d, --destination \u003cpath\u003e` | Output directory |\n\n| Server Options | Description |\n|----------------|-------------|\n| `--bind \u003cip\u003e` | Interface to bind to |\n| `-p, --port \u003cport\u003e` | Port number (default: 1313) |\n| `--liveReloadPort \u003cport\u003e` | Live reload port |\n| `--disableLiveReload` | Disable live reload |\n| `--navigateToChanged` | Navigate to changed content |\n\n### Security Warning\n\n⚠️ **Hugo security considerations:**\n\n- Configure security policy in `hugo.toml` for external commands\n- Use `--enableGitInfo` carefully with public repositories\n- Validate shortcode parameters for user-generated content\n\n```toml\n# hugo.toml security settings\n[security]\n  enableInlineShortcodes = false\n  [security.exec]\n    allow = ['^go$', '^npx$', '^postcss$']\n  [security.funcs]\n    getenv = ['^HUGO_', '^CI$']\n  [security.http]\n    methods = ['(?i)GET|POST']\n    urls = ['.*']\n```\n\n### Supported Markdown Flavors\n\n| Flavor | Support |\n|--------|---------|\n| Goldmark (default) | 100% (CommonMark compliant) |\n| GitHub Flavored Markdown | Full (tables, strikethrough, autolinks) |\n| CommonMark | 100% |\n| Blackfriday (legacy) | Deprecated, not recommended |\n\nConfigure markdown in `hugo.toml`:\n\n```toml\n[markup]\n  [markup.goldmark]\n    [markup.goldmark.extensions]\n      definitionList = true\n      footnote = true\n      linkify = true\n      strikethrough = true\n      table = true\n      taskList = true\n    [markup.goldmark.renderer]\n      unsafe = false  # Set true to allow raw HTML\n```\n\n### Troubleshooting\n\n| Issue | Solution |\n|-------|----------|\n| \"Page not found\" on paths | Check `baseURL` in config |\n| Theme not loading | Verify theme in `themes/` or Hugo Modules |\n| Slow builds | Use `--templateMetrics` to identify bottlenecks |\n| Raw HTML not rendering | Set `unsafe = true` in goldmark config |\n| Images not loading | Check `static/` folder structure |\n| Module errors | Run `hugo mod tidy` |\n\n## References\n\n### Writing and Styling Markdown\n\n- [basic-markdown.md](references/basic-markdown.md)\n- [code-blocks.md](references/code-blocks.md)\n- [collapsed-sections.md](references/collapsed-sections.md)\n- [tables.md](references/tables.md)\n- [writing-mathematical-expressions.md](references/writing-mathematical-expressions.md)\n- Markdown Guide: \u003chttps://www.markdownguide.org/basic-syntax/\u003e\n- Styling Markdown: \u003chttps://github.com/sindresorhus/github-markdown-css\u003e\n\n### [`markedJS/marked`](references/marked.md)\n\n- Official documentation: \u003chttps://marked.js.org/\u003e\n- Advanced options: \u003chttps://marked.js.org/using_advanced\u003e\n- Extensibility: \u003chttps://marked.js.org/using_pro\u003e\n- GitHub repository: \u003chttps://github.com/markedjs/marked\u003e\n\n### [`pandoc`](references/pandoc.md)\n\n- Getting started: \u003chttps://pandoc.org/getting-started.html\u003e\n- Official documentation: \u003chttps://pandoc.org/MANUAL.html\u003e\n- Extensibility: \u003chttps://pandoc.org/extras.html\u003e\n- GitHub repository: \u003chttps://github.com/jgm/pandoc\u003e\n\n### [`gomarkdown/markdown`](references/gomarkdown.md)\n\n- Official documentation: \u003chttps://pkg.go.dev/github.com/gomarkdown/markdown\u003e\n- Advanced configuration: \u003chttps://pkg.go.dev/github.com/gomarkdown/markdown@v0.0.0-20250810172220-2e2c11897d1a/html\u003e\n- Markdown processing: \u003chttps://blog.kowalczyk.info/article/cxn3/advanced-markdown-processing-in-go.html\u003e\n- GitHub repository: \u003chttps://github.com/gomarkdown/markdown\u003e\n\n### [`jekyll`](references/jekyll.md)\n\n- Official documentation: \u003chttps://jekyllrb.com/docs/\u003e\n- Configuration options: \u003chttps://jekyllrb.com/docs/configuration/options/\u003e\n- Plugins: \u003chttps://jekyllrb.com/docs/plugins/\u003e\n  - [Installation](https://jekyllrb.com/docs/plugins/installation/)\n  - [Generators](https://jekyllrb.com/docs/plugins/generators/)\n  - [Converters](https://jekyllrb.com/docs/plugins/converters/)\n  - [Commands](https://jekyllrb.com/docs/plugins/commands/)\n  - [Tags](https://jekyllrb.com/docs/plugins/tags/)\n  - [Filters](https://jekyllrb.com/docs/plugins/filters/)\n  - [Hooks](https://jekyllrb.com/docs/plugins/hooks/)\n- GitHub repository: \u003chttps://github.com/jekyll/jekyll\u003e\n\n### [`hugo`](references/hugo.md)\n\n- Official documentation: \u003chttps://gohugo.io/documentation/\u003e\n- All Settings: \u003chttps://gohugo.io/configuration/all/\u003e\n- Editor Plugins: \u003chttps://gohugo.io/tools/editors/\u003e\n- GitHub repository: \u003chttps://github.com/gohugoio/hugo\u003e\n","references/basic-markdown-to-html.md":"# Basic Markdown to HTML\n\n## Headings\n\n### Markdown\n\n```md\n# Basic writing and formatting syntax\n```\n\n### Parsed HTML\n\n```html\n\u003ch1\u003eBasic writing and formatting syntax\u003c/h1\u003e\n```\n\n```md\n## Headings\n```\n\n```html\n\u003ch2\u003eHeadings\u003c/h2\u003e\n```\n\n```md\n### A third-level heading\n```\n\n```html\n\u003ch3\u003eA third-level heading\u003c/h3\u003e\n```\n\n### Markdown\n\n```md\nHeading 2\n---\n```\n\n### Parsed HTML\n\n```html\n\u003ch2\u003eHeading 2\u003c/h2\u003e\n```\n\n---\n\n## Paragraphs\n\n### Markdown\n\n```md\nCreate sophisticated formatting for your prose and code on GitHub with simple syntax.\n```\n\n### Parsed HTML\n\n```html\n\u003cp\u003eCreate sophisticated formatting for your prose and code on GitHub with simple syntax.\u003c/p\u003e\n```\n\n---\n\n## Inline Formatting\n\n### Bold\n\n```md\n**This is bold text**\n```\n\n```html\n\u003cstrong\u003eThis is bold text\u003c/strong\u003e\n```\n\n---\n\n### Italic\n\n```md\n_This text is italicized_\n```\n\n```html\n\u003cem\u003eThis text is italicized\u003c/em\u003e\n```\n\n---\n\n### Bold + Italic\n\n```md\n***All this text is important***\n```\n\n```html\n\u003cstrong\u003e\u003cem\u003eAll this text is important\u003c/em\u003e\u003c/strong\u003e\n```\n\n---\n\n### Strikethrough (GFM)\n\n```md\n~~This was mistaken text~~\n```\n\n```html\n\u003cdel\u003eThis was mistaken text\u003c/del\u003e\n```\n\n---\n\n### Subscript / Superscript (raw HTML passthrough)\n\n```md\nThis is a \u003csub\u003esubscript\u003c/sub\u003e text\n```\n\n```html\n\u003cp\u003eThis is a \u003csub\u003esubscript\u003c/sub\u003e text\u003c/p\u003e\n```\n\n```md\nThis is a \u003csup\u003esuperscript\u003c/sup\u003e text\n```\n\n```html\n\u003cp\u003eThis is a \u003csup\u003esuperscript\u003c/sup\u003e text\u003c/p\u003e\n```\n\n---\n\n## Blockquotes\n\n### Markdown\n\n```md\n\u003e Text that is a quote\n```\n\n### Parsed HTML\n\n```html\n\u003cblockquote\u003e\n  \u003cp\u003eText that is a quote\u003c/p\u003e\n\u003c/blockquote\u003e\n```\n\n---\n\n### GitHub Alert (NOTE)\n\n```md\n\u003e [!NOTE]\n\u003e Useful information.\n```\n\n```html\n\u003cblockquote class=\"markdown-alert markdown-alert-note\"\u003e\n  \u003cp\u003e\u003cstrong\u003eNote\u003c/strong\u003e\u003c/p\u003e\n  \u003cp\u003eUseful information.\u003c/p\u003e\n\u003c/blockquote\u003e\n```\n\n\u003e ⚠️ The `markdown-alert-*` classes are GitHub-specific, not standard Markdown.\n\n---\n\n## Inline Code\n\n```md\nUse `git status` to list files.\n```\n\n```html\n\u003cp\u003eUse \u003ccode\u003egit status\u003c/code\u003e to list files.\u003c/p\u003e\n```\n\n---\n\n## Code Blocks\n\n### Markdown\n\n````md\n```markdown\ngit status\ngit add\n```\n````\n\n### Parsed HTML\n\n```html\n\u003cpre\u003e\u003ccode class=\"language-markdown\"\u003e\ngit status\ngit add\n\u003c/code\u003e\u003c/pre\u003e\n```\n\n---\n\n## Tables\n\n### Markdown\n\n```md\n| Style | Syntax |\n|------|--------|\n| Bold | ** ** |\n```\n\n### Parsed HTML\n\n```html\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth\u003eStyle\u003c/th\u003e\n      \u003cth\u003eSyntax\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eBold\u003c/td\u003e\n      \u003ctd\u003e\u003cstrong\u003e \u003c/strong\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n```\n\n---\n\n## Links\n\n### Markdown\n\n```md\n[GitHub Pages](https://pages.github.com/)\n```\n\n### Parsed HTML\n\n```html\n\u003ca href=\"https://pages.github.com/\"\u003eGitHub Pages\u003c/a\u003e\n```\n\n---\n\n## Images\n\n### Markdown\n\n```md\n![Alt text](image.png)\n```\n\n### Parsed HTML\n\n```html\n\u003cimg src=\"image.png\" alt=\"Alt text\"\u003e\n```\n\n---\n\n## Lists\n\n### Unordered List\n\n```md\n- George Washington\n- John Adams\n```\n\n```html\n\u003cul\u003e\n  \u003cli\u003eGeorge Washington\u003c/li\u003e\n  \u003cli\u003eJohn Adams\u003c/li\u003e\n\u003c/ul\u003e\n```\n\n---\n\n### Ordered List\n\n```md\n1. James Madison\n2. James Monroe\n```\n\n```html\n\u003col\u003e\n  \u003cli\u003eJames Madison\u003c/li\u003e\n  \u003cli\u003eJames Monroe\u003c/li\u003e\n\u003c/ol\u003e\n```\n\n---\n\n### Nested Lists\n\n```md\n1. First item\n   - Nested item\n```\n\n```html\n\u003col\u003e\n  \u003cli\u003e\n    First item\n    \u003cul\u003e\n      \u003cli\u003eNested item\u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/li\u003e\n\u003c/ol\u003e\n```\n\n---\n\n## Task Lists (GitHub Flavored Markdown)\n\n```md\n- [x] Done\n- [ ] Pending\n```\n\n```html\n\u003cul\u003e\n  \u003cli\u003e\n    \u003cinput type=\"checkbox\" checked disabled\u003e Done\n  \u003c/li\u003e\n  \u003cli\u003e\n    \u003cinput type=\"checkbox\" disabled\u003e Pending\n  \u003c/li\u003e\n\u003c/ul\u003e\n```\n\n---\n\n## Mentions\n\n```md\n@github/support\n```\n\n```html\n\u003ca href=\"https://github.com/github/support\" class=\"user-mention\"\u003e@github/support\u003c/a\u003e\n```\n\n---\n\n## Footnotes\n\n### Markdown\n\n```md\nHere is a footnote[^1].\n\n[^1]: My reference.\n```\n\n### Parsed HTML\n\n```html\n\u003cp\u003e\n  Here is a footnote\n  \u003csup id=\"fnref-1\"\u003e\n    \u003ca href=\"#fn-1\"\u003e1\u003c/a\u003e\n  \u003c/sup\u003e.\n\u003c/p\u003e\n\n\u003csection class=\"footnotes\"\u003e\n  \u003col\u003e\n    \u003cli id=\"fn-1\"\u003e\n      \u003cp\u003eMy reference.\u003c/p\u003e\n    \u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/section\u003e\n```\n\n---\n\n## HTML Comments (Hidden Content)\n\n```md\n\u003c!-- This content will not appear --\u003e\n```\n\n```html\n\u003c!-- This content will not appear --\u003e\n```\n\n---\n\n## Escaped Markdown Characters\n\n```md\n\\*not italic\\*\n```\n\n```html\n\u003cp\u003e*not italic*\u003c/p\u003e\n```\n\n---\n\n## Emoji\n\n```md\n:+1:\n```\n\n```html\n\u003cimg class=\"emoji\" alt=\"👍\" src=\"...\"\u003e\n```\n\n(GitHub replaces emoji with `\u003cimg\u003e` tags.)\n\n---\n","references/basic-markdown.md":"# Basic writing and formatting syntax\n\nCreate sophisticated formatting for your prose and code on GitHub with simple syntax.\n\n## Headings\n\nTo create a heading, add one to six \u003ckbd\u003e#\u003c/kbd\u003e symbols before your heading text. The number of \u003ckbd\u003e#\u003c/kbd\u003e you use will determine the hierarchy level and typeface size of the heading.\n\n```markdown\n# A first-level heading\n## A second-level heading\n### A third-level heading\n```\n\n![Screenshot of rendered GitHub Markdown showing sample h1, h2, and h3 headers, which descend in type size and visual weight to show hierarchy level.](https://docs.github.com/assets/images/help/writing/headings-rendered.png)\n\nWhen you use two or more headings, GitHub automatically generates a table of contents that you can access by clicking the \"Outline\" menu icon \u003csvg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-list-unordered\" aria-label=\"Table of Contents\" role=\"img\"\u003e\u003cpath d=\"M5.75 2.5h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1 0-1.5Zm0 5h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1 0-1.5Zm0 5h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1 0-1.5ZM2 14a1 1 0 1 1 0-2 1 1 0 0 1 0 2Zm1-6a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM2 4a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z\"\u003e\u003c/path\u003e\u003c/svg\u003e within the file header. Each heading title is listed in the table of contents and you can click a title to navigate to the selected section.\n\n![Screenshot of a README file with the drop-down menu for the table of contents exposed. The table of contents icon is outlined in dark orange.](https://docs.github.com/assets/images/help/repository/headings-toc.png)\n\n## Styling text\n\nYou can indicate emphasis with bold, italic, strikethrough, subscript, or superscript text in comment fields and `.md` files.\n\n| Style                  | Syntax              | Keyboard shortcut                                                                     | Example                                  | Output                                 |                                                   |\n| ---------------------- | ------------------- | ------------------------------------------------------------------------------------- | ---------------------------------------- | -------------------------------------- | ------------------------------------------------- |\n| Bold                   | `** **` or `__ __`  | \u003ckbd\u003eCommand\u003c/kbd\u003e+\u003ckbd\u003eB\u003c/kbd\u003e (Mac) or \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eB\u003c/kbd\u003e (Windows/Linux) | `**This is bold text**`                  | **This is bold text**                  |                                                   |\n| Italic                 | `* *` or `_ _`      | \u003ckbd\u003eCommand\u003c/kbd\u003e+\u003ckbd\u003eI\u003c/kbd\u003e (Mac) or \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eI\u003c/kbd\u003e (Windows/Linux) | `_This text is italicized_`              | *This text is italicized*              |                                                   |\n| Strikethrough          | `~~ ~~` or `~ ~`    | None                                                                                  | `~~This was mistaken text~~`             | ~~This was mistaken text~~             |                                                   |\n| Bold and nested italic | `** **` and `_ _`   | None                                                                                  | `**This text is _extremely_ important**` | **This text is *extremely* important** |                                                   |\n| All bold and italic    | `*** ***`           | None                                                                                  | `***All this text is important***`       | ***All this text is important***       | \u003c!-- markdownlint-disable-line emphasis-style --\u003e |\n| Subscript              | `\u003csub\u003e \u003c/sub\u003e`      | None                                                                                  | `This is a \u003csub\u003esubscript\u003c/sub\u003e text`    | This is a \u003csub\u003esubscript\u003c/sub\u003e text    |                                                   |\n| Superscript            | `\u003csup\u003e \u003c/sup\u003e`      | None                                                                                  | `This is a \u003csup\u003esuperscript\u003c/sup\u003e text`  | This is a \u003csup\u003esuperscript\u003c/sup\u003e text  |                                                   |\n| Underline              | `\u003cins\u003e \u003c/ins\u003e`      | None                                                                                  | `This is an \u003cins\u003eunderlined\u003c/ins\u003e text`  | This is an \u003cins\u003eunderlined\u003c/ins\u003e text  |                                                   |\n\n## Quoting text\n\nYou can quote text with a \u003ckbd\u003e\u003e\u003c/kbd\u003e.\n\n```markdown\nText that is not a quote\n\n\u003e Text that is a quote\n```\n\nQuoted text is indented with a vertical line on the left and displayed using gray type.\n\n![Screenshot of rendered GitHub Markdown showing the difference between normal and quoted text.](https://docs.github.com/assets/images/help/writing/quoted-text-rendered.png)\n\n\u003e \\[!NOTE]\n\u003e When viewing a conversation, you can automatically quote text in a comment by highlighting the text, then typing \u003ckbd\u003eR\u003c/kbd\u003e. You can quote an entire comment by clicking \u003csvg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-kebab-horizontal\" aria-label=\"The horizontal kebab icon\" role=\"img\"\u003e\u003cpath d=\"M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z\"\u003e\u003c/path\u003e\u003c/svg\u003e, then **Quote reply**. For more information about keyboard shortcuts, see [Keyboard shortcuts](https://docs.github.com/en/get-started/accessibility/keyboard-shortcuts).\n\n## Quoting code\n\nYou can call out code or a command within a sentence with single backticks. The text within the backticks will not be formatted. You can also press the \u003ckbd\u003eCommand\u003c/kbd\u003e+\u003ckbd\u003eE\u003c/kbd\u003e (Mac) or \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eE\u003c/kbd\u003e (Windows/Linux) keyboard shortcut to insert the backticks for a code block within a line of Markdown.\n\n```markdown\nUse `git status` to list all new or modified files that haven't yet been committed.\n```\n\n![Screenshot of rendered GitHub Markdown showing that characters surrounded by backticks are shown in a fixed-width typeface, highlighted in light gray.](https://docs.github.com/assets/images/help/writing/inline-code-rendered.png)\n\nTo format code or text into its own distinct block, use triple backticks.\n\n````markdown\nSome basic Git commands are:\n```\ngit status\ngit add\ngit commit\n```\n````\n\n![Screenshot of rendered GitHub Markdown showing a simple code block without syntax highlighting.](https://docs.github.com/assets/images/help/writing/code-block-rendered.png)\n\nFor more information, see [Creating and highlighting code blocks](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/creating-and-highlighting-code-blocks).\n\nIf you are frequently editing code snippets and tables, you may benefit from enabling a fixed-width font in all comment fields on GitHub. For more information, see [About writing and formatting on GitHub](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/about-writing-and-formatting-on-github#enabling-fixed-width-fonts-in-the-editor).\n\n## Supported color models\n\nIn issues, pull requests, and discussions, you can call out colors within a sentence by using backticks. A supported color model within backticks will display a visualization of the color.\n\n```markdown\nThe background color is `#ffffff` for light mode and `#000000` for dark mode.\n```\n\n![Screenshot of rendered GitHub Markdown showing how HEX values within backticks create small circles of color, here white and then black.](https://docs.github.com/assets/images/help/writing/supported-color-models-rendered.png)\n\nHere are the currently supported color models.\n\n| Color | Syntax                      | Example                             | Output                                                                                                                                                                         |\n| ----- | --------------------------- | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| HEX   | \u003ccode\u003e\\`#RRGGBB\\`\u003c/code\u003e    | \u003ccode\u003e\\`#0969DA\\`\u003c/code\u003e            | ![Screenshot of rendered GitHub Markdown showing how HEX value #0969DA appears with a blue circle.](https://docs.github.com/assets/images/help/writing/supported-color-models-hex-rendered.png)       |\n| RGB   | \u003ccode\u003e\\`rgb(R,G,B)\\`\u003c/code\u003e | \u003ccode\u003e\\`rgb(9, 105, 218)\\`\u003c/code\u003e   | ![Screenshot of rendered GitHub Markdown showing how RGB value 9, 105, 218 appears with a blue circle.](https://docs.github.com/assets/images/help/writing/supported-color-models-rgb-rendered.png)   |\n| HSL   | \u003ccode\u003e\\`hsl(H,S,L)\\`\u003c/code\u003e | \u003ccode\u003e\\`hsl(212, 92%, 45%)\\`\u003c/code\u003e | ![Screenshot of rendered GitHub Markdown showing how HSL value 212, 92%, 45% appears with a blue circle.](https://docs.github.com/assets/images/help/writing/supported-color-models-hsl-rendered.png) |\n\n\u003e \\[!NOTE]\n\u003e\n\u003e * A supported color model cannot have any leading or trailing spaces within the backticks.\n\u003e * The visualization of the color is only supported in issues, pull requests, and discussions.\n\n## Links\n\nYou can create an inline link by wrapping link text in brackets `[ ]`, and then wrapping the URL in parentheses `( )`. You can also use the keyboard shortcut \u003ckbd\u003eCommand\u003c/kbd\u003e+\u003ckbd\u003eK\u003c/kbd\u003e to create a link. When you have text selected, you can paste a URL from your clipboard to automatically create a link from the selection.\n\nYou can also create a Markdown hyperlink by highlighting the text and using the keyboard shortcut \u003ckbd\u003eCommand\u003c/kbd\u003e+\u003ckbd\u003eV\u003c/kbd\u003e. If you'd like to replace the text with the link, use the keyboard shortcut \u003ckbd\u003eCommand\u003c/kbd\u003e+\u003ckbd\u003eShift\u003c/kbd\u003e+\u003ckbd\u003eV\u003c/kbd\u003e.\n\n`This site was built using [GitHub Pages](https://pages.github.com/).`\n\n![Screenshot of rendered GitHub Markdown showing how text within brackets, \"GitHub Pages,\" appears as a blue hyperlink.](https://docs.github.com/assets/images/help/writing/link-rendered.png)\n\n\u003e \\[!NOTE]\n\u003e GitHub automatically creates links when valid URLs are written in a comment. For more information, see [Autolinked references and URLs](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/autolinked-references-and-urls).\n\n## Section links\n\nYou can link directly to any section that has a heading. To view the automatically generated anchor in a rendered file, hover over the section heading to expose the \u003csvg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-link\" aria-label=\"the link\" role=\"img\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e icon and click the icon to display the anchor in your browser.\n\n![Screenshot of a README for a repository. To the left of a section heading, a link icon is outlined in dark orange.](https://docs.github.com/assets/images/help/repository/readme-links.png)\n\nIf you need to determine the anchor for a heading in a file you are editing, you can use the following basic rules:\n\n* Letters are converted to lower-case.\n* Spaces are replaced by hyphens (`-`). Any other whitespace or punctuation characters are removed.\n* Leading and trailing whitespace are removed.\n* Markup formatting is removed, leaving only the contents (for example, `_italics_` becomes `italics`).\n* If the automatically generated anchor for a heading is identical to an earlier anchor in the same document, a unique identifier is generated by appending a hyphen and an auto-incrementing integer.\n\nFor more detailed information on the requirements of URI fragments, see [RFC 3986: Uniform Resource Identifier (URI): Generic Syntax, Section 3.5](https://www.rfc-editor.org/rfc/rfc3986#section-3.5).\n\nThe code block below demonstrates the basic rules used to generate anchors from headings in rendered content.\n\n```markdown\n# Example headings\n\n## Sample Section\n\n## This'll be a _Helpful_ Section About the Greek Letter Θ!\nA heading containing characters not allowed in fragments, UTF-8 characters, two consecutive spaces between the first and second words, and formatting.\n\n## This heading is not unique in the file\n\nTEXT 1\n\n## This heading is not unique in the file\n\nTEXT 2\n\n# Links to the example headings above\n\nLink to the sample section: [Link Text](#sample-section).\n\nLink to the helpful section: [Link Text](#thisll-be-a-helpful-section-about-the-greek-letter-Θ).\n\nLink to the first non-unique section: [Link Text](#this-heading-is-not-unique-in-the-file).\n\nLink to the second non-unique section: [Link Text](#this-heading-is-not-unique-in-the-file-1).\n```\n\n\u003e \\[!NOTE]\n\u003e If you edit a heading, or if you change the order of headings with \"identical\" anchors, you will also need to update any links to those headings as the anchors will change.\n\n## Relative links\n\nYou can define relative links and image paths in your rendered files to help readers navigate to other files in your repository.\n\nA relative link is a link that is relative to the current file. For example, if you have a README file in root of your repository, and you have another file in *docs/CONTRIBUTING.md*, the relative link to *CONTRIBUTING.md* in your README might look like this:\n\n```text\n[Contribution guidelines for this project](docs/CONTRIBUTING.md)\n```\n\nGitHub will automatically transform your relative link or image path based on whatever branch you're currently on, so that the link or path always works. The path of the link will be relative to the current file. Links starting with `/` will be relative to the repository root. You can use all relative link operands, such as `./` and `../`.\n\nYour link text should be on a single line. The example below will not work.\n\n```markdown\n[Contribution\nguidelines for this project](docs/CONTRIBUTING.md)\n```\n\nRelative links are easier for users who clone your repository. Absolute links may not work in clones of your repository - we recommend using relative links to refer to other files within your repository.\n\n## Custom anchors\n\nYou can use standard HTML anchor tags (`\u003ca name=\"unique-anchor-name\"\u003e\u003c/a\u003e`) to create navigation anchor points for any location in the document. To avoid ambiguous references, use a unique naming scheme for anchor tags, such as adding a prefix to the `name` attribute value.\n\n\u003e \\[!NOTE]\n\u003e Custom anchors will not be included in the document outline/Table of Contents.\n\nYou can link to a custom anchor using the value of the `name` attribute you gave the anchor. The syntax is exactly the same as when you link to an anchor that is automatically generated for a heading.\n\nFor example:\n\n```markdown\n# Section Heading\n\nSome body text of this section.\n\n\u003ca name=\"my-custom-anchor-point\"\u003e\u003c/a\u003e\nSome text I want to provide a direct link to, but which doesn't have its own heading.\n\n(… more content…)\n\n[A link to that custom anchor](#my-custom-anchor-point)\n```\n\n\u003e \\[!TIP]\n\u003e Custom anchors are not considered by the automatic naming and numbering behavior of automatic heading links.\n\n## Line breaks\n\nIf you're writing in issues, pull requests, or discussions in a repository, GitHub will render a line break automatically:\n\n```markdown\nThis example\nWill span two lines\n```\n\nHowever, if you are writing in an .md file, the example above would render on one line without a line break. To create a line break in an .md file, you will need to include one of the following:\n\n* Include two spaces at the end of the first line.\n  \u003cpre\u003e\n  This example\u0026nbsp;\u0026nbsp;\n  Will span two lines\n  \u003c/pre\u003e\n\n* Include a backslash at the end of the first line.\n\n  ```markdown\n  This example\\\n  Will span two lines\n  ```\n\n* Include an HTML single line break tag at the end of the first line.\n\n  ```markdown\n  This example\u003cbr/\u003e\n  Will span two lines\n  ```\n\nIf you leave a blank line between two lines, both .md files and Markdown in issues, pull requests, and discussions will render the two lines separated by the blank line:\n\n```markdown\nThis example\n\nWill have a blank line separating both lines\n```\n\n## Images\n\nYou can display an image by adding \u003ckbd\u003e!\u003c/kbd\u003e and wrapping the alt text in `[ ]`. Alt text is a short text equivalent of the information in the image. Then, wrap the link for the image in parentheses `()`.\n\n`![Screenshot of a comment on a GitHub issue showing an image, added in the Markdown, of an Octocat smiling and raising a tentacle.](https://myoctocat.com/assets/images/base-octocat.svg)`\n\n![Screenshot of a comment on a GitHub issue showing an image, added in the Markdown, of an Octocat smiling and raising a tentacle.](https://docs.github.com/assets/images/help/writing/image-rendered.png)\n\nGitHub supports embedding images into your issues, pull requests, discussions, comments and `.md` files. You can display an image from your repository, add a link to an online image, or upload an image. For more information, see [Uploading assets](#uploading-assets).\n\n\u003e \\[!NOTE]\n\u003e When you want to display an image that is in your repository, use relative links instead of absolute links.\n\nHere are some examples for using relative links to display an image.\n\n| Context                                                     | Relative Link                                                          |\n| ----------------------------------------------------------- | ---------------------------------------------------------------------- |\n| In a `.md` file on the same branch                          | `/assets/images/electrocat.png`                                        |\n| In a `.md` file on another branch                           | `/../main/assets/images/electrocat.png`                                |\n| In issues, pull requests and comments of the repository     | `../blob/main/assets/images/electrocat.png?raw=true`                   |\n| In a `.md` file in another repository                       | `/../../../../github/docs/blob/main/assets/images/electrocat.png`      |\n| In issues, pull requests and comments of another repository | `../../../github/docs/blob/main/assets/images/electrocat.png?raw=true` |\n\n\u003e \\[!NOTE]\n\u003e The last two relative links in the table above will work for images in a private repository only if the viewer has at least read access to the private repository that contains these images.\n\nFor more information, see [Relative Links](#relative-links).\n\n### The Picture element\n\nThe `\u003cpicture\u003e` HTML element is supported.\n\n## Lists\n\nYou can make an unordered list by preceding one or more lines of text with \u003ckbd\u003e-\u003c/kbd\u003e, \u003ckbd\u003e\\*\u003c/kbd\u003e, or \u003ckbd\u003e+\u003c/kbd\u003e.\n\n```markdown\n- George Washington\n* John Adams\n+ Thomas Jefferson\n```\n\n![Screenshot of rendered GitHub Markdown showing a bulleted list of the names of the first three American presidents.](https://docs.github.com/assets/images/help/writing/unordered-list-rendered.png)\n\nTo order your list, precede each line with a number.\n\n```markdown\n1. James Madison\n2. James Monroe\n3. John Quincy Adams\n```\n\n![Screenshot of rendered GitHub Markdown showing a numbered list of the names of the fourth, fifth, and sixth American presidents.](https://docs.github.com/assets/images/help/writing/ordered-list-rendered.png)\n\n### Nested Lists\n\nYou can create a nested list by indenting one or more list items below another item.\n\nTo create a nested list using the web editor on GitHub or a text editor that uses a monospaced font, like [Visual Studio Code](https://code.visualstudio.com/), you can align your list visually. Type space characters in front of your nested list item until the list marker character (\u003ckbd\u003e-\u003c/kbd\u003e or \u003ckbd\u003e\\*\u003c/kbd\u003e) lies directly below the first character of the text in the item above it.\n\n```markdown\n1. First list item\n   - First nested list item\n     - Second nested list item\n```\n\n\u003e \\[!NOTE]\n\u003e In the web-based editor, you can indent or dedent one or more lines of text by first highlighting the desired lines and then using \u003ckbd\u003eTab\u003c/kbd\u003e or \u003ckbd\u003eShift\u003c/kbd\u003e+\u003ckbd\u003eTab\u003c/kbd\u003e respectively.\n\n![Screenshot of Markdown in Visual Studio Code showing indentation of nested numbered lines and bullets.](https://docs.github.com/assets/images/help/writing/nested-list-alignment.png)\n\n![Screenshot of rendered GitHub Markdown showing a numbered item followed by nested bullets at two different levels of nesting.](https://docs.github.com/assets/images/help/writing/nested-list-example-1.png)\n\nTo create a nested list in the comment editor on GitHub, which doesn't use a monospaced font, you can look at the list item immediately above the nested list and count the number of characters that appear before the content of the item. Then type that number of space characters in front of the nested list item.\n\nIn this example, you could add a nested list item under the list item `100. First list item` by indenting the nested list item a minimum of five spaces, since there are five characters (`100. `) before `First list item`.\n\n```markdown\n100. First list item\n     - First nested list item\n```\n\n![Screenshot of rendered GitHub Markdown showing a numbered item prefaced by the number 100 followed by a bulleted item nested one level.](https://docs.github.com/assets/images/help/writing/nested-list-example-3.png)\n\nYou can create multiple levels of nested lists using the same method. For example, because the first nested list item has seven characters (`␣␣␣␣␣-␣`) before the nested list content `First nested list item`, you would need to indent the second nested list item by at least two more characters (nine spaces minimum).\n\n```markdown\n100. First list item\n     - First nested list item\n       - Second nested list item\n```\n\n![Screenshot of rendered GitHub Markdown showing a numbered item prefaced by the number 100 followed by bullets at two different levels of nesting.](https://docs.github.com/assets/images/help/writing/nested-list-example-2.png)\n\nFor more examples, see the [GitHub Flavored Markdown Spec](https://github.github.com/gfm/#example-265).\n\n## Task lists\n\nTo create a task list, preface list items with a hyphen and space followed by `[ ]`. To mark a task as complete, use `[x]`.\n\n```markdown\n- [x] #739\n- [ ] https://github.com/octo-org/octo-repo/issues/740\n- [ ] Add delight to the experience when all tasks are complete :tada:\n```\n\n![Screenshot showing the rendered version of the markdown. The references to issues are rendered as issue titles.](https://docs.github.com/assets/images/help/writing/task-list-rendered-simple.png)\n\nIf a task list item description begins with a parenthesis, you'll need to escape it with \u003ckbd\u003e\\\\\u003c/kbd\u003e:\n\n`- [ ] \\(Optional) Open a followup issue`\n\nFor more information, see [About tasklists](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/about-task-lists).\n\n## Mentioning people and teams\n\nYou can mention a person or [team](https://docs.github.com/en/organizations/organizing-members-into-teams) on GitHub by typing \u003ckbd\u003e@\u003c/kbd\u003e plus their username or team name. This will trigger a notification and bring their attention to the conversation. People will also receive a notification if you edit a comment to mention their username or team name. For more information about notifications, see [About notifications](https://docs.github.com/en/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/about-notifications).\n\n\u003e \\[!NOTE]\n\u003e A person will only be notified about a mention if the person has read access to the repository and, if the repository is owned by an organization, the person is a member of the organization.\n\n`@github/support What do you think about these updates?`\n\n![Screenshot of rendered GitHub Markdown showing how the team mention \"@github/support\" renders as bold, clickable text.](https://docs.github.com/assets/images/help/writing/mention-rendered.png)\n\nWhen you mention a parent team, members of its child teams also receive notifications, simplifying communication with multiple groups of people. For more information, see [About organization teams](https://docs.github.com/en/organizations/organizing-members-into-teams/about-teams).\n\nTyping an \u003ckbd\u003e@\u003c/kbd\u003e symbol will bring up a list of people or teams on a project. The list filters as you type, so once you find the name of the person or team you are looking for, you can use the arrow keys to select it and press either tab or enter to complete the name. For teams, enter the @organization/team-name and all members of that team will get subscribed to the conversation.\n\nThe autocomplete results are restricted to repository collaborators and any other participants on the thread.\n\n## Referencing issues and pull requests\n\nYou can bring up a list of suggested issues and pull requests within the repository by typing \u003ckbd\u003e#\u003c/kbd\u003e. Type the issue or pull request number or title to filter the list, and then press either tab or enter to complete the highlighted result.\n\nFor more information, see [Autolinked references and URLs](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/autolinked-references-and-urls).\n\n## Referencing external resources\n\nIf custom autolink references are configured for a repository, then references to external resources, like a JIRA issue or Zendesk ticket, convert into shortened links. To know which autolinks are available in your repository, contact someone with admin permissions to the repository. For more information, see [Configuring autolinks to reference external resources](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/configuring-autolinks-to-reference-external-resources).\n\n## Uploading assets\n\nYou can upload assets like images by dragging and dropping, selecting from a file browser, or pasting. You can upload assets to issues, pull requests, comments, and `.md` files in your repository.\n\n## Using emojis\n\nYou can add emoji to your writing by typing `:EMOJICODE:`, a colon followed by the name of the emoji.\n\n`@octocat :+1: This PR looks great - it's ready to merge! :shipit:`\n\n![Screenshot of rendered GitHub Markdown showing how emoji codes for +1 and shipit render visually as emoji.](https://docs.github.com/assets/images/help/writing/emoji-rendered.png)\n\nTyping \u003ckbd\u003e:\u003c/kbd\u003e will bring up a list of suggested emoji. The list will filter as you type, so once you find the emoji you're looking for, press **Tab** or **Enter** to complete the highlighted result.\n\nFor a full list of available emoji and codes, see [the Emoji-Cheat-Sheet](https://github.com/ikatyang/emoji-cheat-sheet/blob/github-actions-auto-update/README.md).\n\n## Paragraphs\n\nYou can create a new paragraph by leaving a blank line between lines of text.\n\n## Footnotes\n\nYou can add footnotes to your content by using this bracket syntax:\n\n```text\nHere is a simple footnote[^1].\n\nA footnote can also have multiple lines[^2].\n\n[^1]: My reference.\n[^2]: To add line breaks within a footnote, add 2 spaces to the end of a line.  \nThis is a second line.\n```\n\nThe footnote will render like this:\n\n![Screenshot of rendered Markdown showing superscript numbers used to indicate footnotes, along with optional line breaks inside a note.](https://docs.github.com/assets/images/help/writing/footnote-rendered.png)\n\n\u003e \\[!NOTE]\n\u003e The position of a footnote in your Markdown does not influence where the footnote will be rendered. You can write a footnote right after your reference to the footnote, and the footnote will still render at the bottom of the Markdown. Footnotes are not supported in wikis.\n\n## Alerts\n\n**Alerts**, also sometimes known as **callouts** or **admonitions**, are a Markdown extension based on the blockquote syntax that you can use to emphasize critical information. On GitHub, they are displayed with distinctive colors and icons to indicate the significance of the content.\n\nUse alerts only when they are crucial for user success and limit them to one or two per article to prevent overloading the reader. Additionally, you should avoid placing alerts consecutively. Alerts cannot be nested within other elements.\n\nTo add an alert, use a special blockquote line specifying the alert type, followed by the alert information in a standard blockquote. Five types of alerts are available:\n\n```markdown\n\u003e [!NOTE]\n\u003e Useful information that users should know, even when skimming content.\n\n\u003e [!TIP]\n\u003e Helpful advice for doing things better or more easily.\n\n\u003e [!IMPORTANT]\n\u003e Key information users need to know to achieve their goal.\n\n\u003e [!WARNING]\n\u003e Urgent info that needs immediate user attention to avoid problems.\n\n\u003e [!CAUTION]\n\u003e Advises about risks or negative outcomes of certain actions.\n```\n\nHere are the rendered alerts:\n\n![Screenshot of rendered Markdown alerts showing how Note, Tip, Important, Warning, and Caution render with different colored text and icons.](https://docs.github.com/assets/images/help/writing/alerts-rendered.png)\n\n## Hiding content with comments\n\nYou can tell GitHub to hide content from the rendered Markdown by placing the content in an HTML comment.\n\n```text\n\u003c!-- This content will not appear in the rendered Markdown --\u003e\n```\n\n## Ignoring Markdown formatting\n\nYou can tell GitHub to ignore (or escape) Markdown formatting by using \u003ckbd\u003e\\\\\u003c/kbd\u003e before the Markdown character.\n\n`Let's rename \\*our-new-project\\* to \\*our-old-project\\*.`\n\n![Screenshot of rendered GitHub Markdown showing how backslashes prevent the conversion of asterisks to italics.](https://docs.github.com/assets/images/help/writing/escaped-character-rendered.png)\n\nFor more information on backslashes, see Daring Fireball's [Markdown Syntax](https://daringfireball.net/projects/markdown/syntax#backslash).\n\n\u003e \\[!NOTE]\n\u003e The Markdown formatting will not be ignored in the title of an issue or a pull request.\n\n## Disabling Markdown rendering\n\nWhen viewing a Markdown file, you can click **Code** at the top of the file to disable Markdown rendering and view the file's source instead.\n\n![Screenshot of a Markdown file in a repository showing options for interacting with the file. A button, labeled \"Code\", is outlined in dark orange.](https://docs.github.com/assets/images/help/writing/display-markdown-as-source-global-nav-update.png)\n\nDisabling Markdown rendering enables you to use source view features, such as line linking, which is not possible when viewing rendered Markdown files.\n\n## Further reading\n\n*[GitHub Flavored Markdown Spec](https://github.github.com/gfm/)\n*[About writing and formatting on GitHub](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/about-writing-and-formatting-on-github)\n*[Working with advanced formatting](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting)\n*[Quickstart for writing on GitHub](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/quickstart-for-writing-on-github)","references/code-blocks-to-html.md":"# Code Blocks to HTML\n\n## Fenced Code Blocks (No Language)\n\n### Markdown\n\n```\nfunction test() {\n  console.log(\"notice the blank line before this function?\");\n}\n```\n\n### Parsed HTML\n\n```html\n\u003cpre\u003e\u003ccode\u003e\nfunction test() {\n  console.log(\"notice the blank line before this function?\");\n}\n\u003c/code\u003e\u003c/pre\u003e\n```\n\n---\n\n## GitHub Tip Callout\n\n### Markdown\n\n```md\n\u003e [!TIP]\n\u003e To preserve your formatting within a list, make sure to indent non-fenced code blocks by eight spaces.\n```\n\n### Parsed HTML (GitHub-specific)\n\n```html\n\u003cblockquote class=\"markdown-alert markdown-alert-tip\"\u003e\n  \u003cp\u003e\u003cstrong\u003eTip\u003c/strong\u003e\u003c/p\u003e\n  \u003cp\u003eTo preserve your formatting within a list, make sure to indent non-fenced code blocks by eight spaces.\u003c/p\u003e\n\u003c/blockquote\u003e\n```\n\n---\n\n## Showing Backticks Inside Code Blocks\n\n### Markdown\n\n`````md\n    ````\n    ```\n    Look! You can see my backticks.\n    ```\n    ````\n`````\n\n### Parsed HTML\n\n```html\n    \u003cpre\u003e\u003ccode\u003e\n    ```\n\n    Look! You can see my backticks.\n\n    ```\n    \u003c/code\u003e\u003c/pre\u003e\n```\n\n## Syntax Highlighting (Language Identifier)\n\n### Markdown\n\n```ruby\nrequire 'redcarpet'\nmarkdown = Redcarpet.new(\"Hello World!\")\nputs markdown.to_html\n```\n\n### Parsed HTML\n\n```html\n\u003cpre\u003e\u003ccode class=\"language-ruby\"\u003e\nrequire 'redcarpet'\nmarkdown = Redcarpet.new(\"Hello World!\")\nputs markdown.to_html\n\u003c/code\u003e\u003c/pre\u003e\n```\n\n\u003e The `language-ruby` class is consumed by GitHub’s syntax highlighter (Linguist + grammar).\n\n### Summary: Syntax-Highlighting Rules (HTML-Level)\n\n| Markdown fence | Parsed `\u003ccode\u003e` tag            |\n| -------------- | ------------------------------ |\n| ```js          | `\u003ccode class=\"language-js\"\u003e`   |\n| ```html        | `\u003ccode class=\"language-html\"\u003e` |\n| ```md          | `\u003ccode class=\"language-md\"\u003e`   |\n| ``` (no lang)  | `\u003ccode\u003e`                       |\n\n---\n\n## HTML Comments (Ignored by Renderer)\n\n```md\n\u003c!-- Internal documentation comment --\u003e\n```\n\n```html\n\u003c!-- Internal documentation comment --\u003e\n```\n\n---\n\n## Links\n\n```md\n[About writing and formatting on GitHub](https://docs.github.com/...)\n```\n\n```html\n\u003ca href=\"https://docs.github.com/...\"\u003eAbout writing and formatting on GitHub\u003c/a\u003e\n```\n\n---\n\n## Lists\n\n```md\n* [GitHub Flavored Markdown Spec](https://github.github.com/gfm/)\n```\n\n```html\n\u003cul\u003e\n  \u003cli\u003e\n    \u003ca href=\"https://github.github.com/gfm/\"\u003eGitHub Flavored Markdown Spec\u003c/a\u003e\n  \u003c/li\u003e\n\u003c/ul\u003e\n```\n\n---\n\n## Diagrams (Conceptual Parsing)\n\n### Markdown\n\n````md\n```mermaid\ngraph TD\n  A --\u003e B\n```\n````\n\n### Parsed HTML\n\n```html\n\u003cpre\u003e\u003ccode class=\"language-mermaid\"\u003e\ngraph TD\n  A --\u003e B\n\u003c/code\u003e\u003c/pre\u003e\n```\n\n## Closing Notes\n\n* No `language-*` class appears here because **no language identifier** was provided.\n* The inner triple backticks are preserved **as literal text** inside `\u003ccode\u003e`.\n","references/code-blocks.md":"# Creating and highlighting code blocks\n\nShare samples of code with fenced code blocks and enabling syntax highlighting.\n\n## Fenced code blocks\n\nYou can create fenced code blocks by placing triple backticks \u003ccode\u003e\\`\\`\\`\u003c/code\u003e before and after the code block. We recommend placing a blank line before and after code blocks to make the raw formatting easier to read.\n\n````text\n```\nfunction test() {\n  console.log(\"notice the blank line before this function?\");\n}\n```\n````\n\n![Screenshot of rendered GitHub Markdown showing the use of triple backticks to create code blocks. The block begins with \"function test() {.\"](https://docs.github.com/assets/images/help/writing/fenced-code-block-rendered.png)\n\n\u003e \\[!TIP]\n\u003e To preserve your formatting within a list, make sure to indent non-fenced code blocks by eight spaces.\n\nTo display triple backticks in a fenced code block, wrap them inside quadruple backticks.\n\n`````text\n````\n```\nLook! You can see my backticks.\n```\n````\n`````\n\n![Screenshot of rendered Markdown showing that when you write triple backticks between quadruple backticks they are visible in the rendered content.](https://docs.github.com/assets/images/help/writing/fenced-code-show-backticks-rendered.png)\n\nIf you are frequently editing code snippets and tables, you may benefit from enabling a fixed-width font in all comment fields on GitHub. For more information, see [About writing and formatting on GitHub](https://docs.github.com/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/about-writing-and-formatting-on-github#enabling-fixed-width-fonts-in-the-editor).\n\n## Syntax highlighting\n\n\u003c!-- If you make changes to this feature, check whether any of the changes affect languages listed in /get-started/learning-about-github/github-language-support. If so, please update the language support article accordingly. --\u003e\n\nYou can add an optional language identifier to enable syntax highlighting in your fenced code block.\n\nSyntax highlighting changes the color and style of source code to make it easier to read.\n\nFor example, to syntax highlight Ruby code:\n\n````text\n```ruby\nrequire 'redcarpet'\nmarkdown = Redcarpet.new(\"Hello World!\")\nputs markdown.to_html\n```\n````\n\nThis will display the code block with syntax highlighting:\n\n![Screenshot of three lines of Ruby code as displayed on GitHub. Elements of the code display in purple, blue, and red type for scannability.](https://docs.github.com/assets/images/help/writing/code-block-syntax-highlighting-rendered.png)\n\n\u003e \\[!TIP]\n\u003e When you create a fenced code block that you also want to have syntax highlighting on a GitHub Pages site, use lower-case language identifiers. For more information, see [About GitHub Pages and Jekyll](https://docs.github.com/pages/setting-up-a-github-pages-site-with-jekyll/about-github-pages-and-jekyll#syntax-highlighting).\n\nWe use [Linguist](https://github.com/github-linguist/linguist) to perform language detection and to select [third-party grammars](https://github.com/github-linguist/linguist/blob/main/vendor/README.md) for syntax highlighting. You can find out which keywords are valid in [the languages YAML file](https://github.com/github-linguist/linguist/blob/main/lib/linguist/languages.yml).\n\n## Creating diagrams\n\nYou can also use code blocks to create diagrams in Markdown. GitHub supports Mermaid, GeoJSON, TopoJSON, and ASCII STL syntax. For more information, see [Creating diagrams](https://docs.github.com/get-started/writing-on-github/working-with-advanced-formatting/creating-diagrams).\n\n## Further reading\n\n* [GitHub Flavored Markdown Spec](https://github.github.com/gfm/)\n* [Basic writing and formatting syntax](https://docs.github.com/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax)","references/collapsed-sections-to-html.md":"# Collapsed Sections to HTML\n\n## `\u003cdetails\u003e` Block (Raw HTML in Markdown)\n\n### Markdown\n\n````md\n\u003cdetails\u003e\n\n\u003csummary\u003eTips for collapsed sections\u003c/summary\u003e\n\n### You can add a header\n\nYou can add text within a collapsed section.\n\nYou can add an image or a code block, too.\n\n    ```ruby\n    puts \"Hello World\"\n    ```\n\n\u003c/details\u003e\n````\n\n---\n\n### Parsed HTML\n\n```html\n\u003cdetails\u003e\n  \u003csummary\u003eTips for collapsed sections\u003c/summary\u003e\n\n  \u003ch3\u003eYou can add a header\u003c/h3\u003e\n\n  \u003cp\u003eYou can add text within a collapsed section.\u003c/p\u003e\n\n  \u003cp\u003eYou can add an image or a code block, too.\u003c/p\u003e\n\n  \u003cpre\u003e\u003ccode class=\"language-ruby\"\u003e\nputs \"Hello World\"\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/details\u003e\n```\n\n#### Notes:\n\n* Markdown **inside `\u003cdetails\u003e`** is still parsed normally.\n* Syntax highlighting is preserved via `class=\"language-ruby\"`.\n\n---\n\n## Open by Default (`open` attribute)\n\n### Markdown\n\n````md\n\u003cdetails open\u003e\n\n\u003csummary\u003eTips for collapsed sections\u003c/summary\u003e\n\n### You can add a header\n\nYou can add text within a collapsed section.\n\nYou can add an image or a code block, too.\n\n    ```ruby\n    puts \"Hello World\"\n    ```\n\n\u003c/details\u003e\n````\n\n### Parsed HTML\n\n```html\n\u003cdetails open\u003e\n  \u003csummary\u003eTips for collapsed sections\u003c/summary\u003e\n\n  \u003ch3\u003eYou can add a header\u003c/h3\u003e\n\n  \u003cp\u003eYou can add text within a collapsed section.\u003c/p\u003e\n\n  \u003cp\u003eYou can add an image or a code block, too.\u003c/p\u003e\n\n  \u003cpre\u003e\u003ccode class=\"language-ruby\"\u003e\nputs \"Hello World\"\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/details\u003e\n```\n\n## Key Rules\n\n* `\u003cdetails\u003e` and `\u003csummary\u003e` are **raw HTML**, not Markdown syntax\n* Markdown inside `\u003cdetails\u003e` **is still parsed**\n* Syntax highlighting works normally inside collapsed sections\n* Use `\u003csummary\u003e` as the **clickable label**\n\n## Paragraphs with Inline HTML \u0026 SVG\n\n### Markdown\n\n```md\nYou can streamline your Markdown by creating a collapsed section with the `\u003cdetails\u003e` tag.\n```\n\n### Parsed HTML\n\n```html\n\u003cp\u003e\n  You can streamline your Markdown by creating a collapsed section with the \u003ccode\u003e\u0026lt;details\u0026gt;\u003c/code\u003e tag.\n\u003c/p\u003e\n```\n\n---\n\n### Markdown (inline SVG preserved)\n\n```md\nAny Markdown within the `\u003cdetails\u003e` block will be collapsed until the reader clicks \u003csvg ...\u003e\u003c/svg\u003e to expand the details.\n```\n\n### Parsed HTML\n\n```html\n\u003cp\u003e\n  Any Markdown within the \u003ccode\u003e\u0026lt;details\u0026gt;\u003c/code\u003e block will be collapsed until the reader clicks\n  \u003csvg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\n       class=\"octicon octicon-triangle-right\"\n       aria-label=\"The right triangle icon\"\n       role=\"img\"\u003e\n    \u003cpath d=\"m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z\"\u003e\u003c/path\u003e\n  \u003c/svg\u003e\n  to expand the details.\n\u003c/p\u003e\n```\n","references/collapsed-sections.md":"# Organizing information with collapsed sections\n\nYou can streamline your Markdown by creating a collapsed section with the `\u003cdetails\u003e` tag.\n\n## Creating a collapsed section\n\nYou can temporarily obscure sections of your Markdown by creating a collapsed section that the reader can choose to expand. For example, when you want to include technical details in an issue comment that may not be relevant or interesting to every reader, you can put those details in a collapsed section.\n\nAny Markdown within the `\u003cdetails\u003e` block will be collapsed until the reader clicks \u003csvg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-triangle-right\" aria-label=\"The right triangle icon\" role=\"img\"\u003e\u003cpath d=\"m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z\"\u003e\u003c/path\u003e\u003c/svg\u003e to expand the details.\n\nWithin the `\u003cdetails\u003e` block, use the `\u003csummary\u003e` tag to let readers know what is inside. The label appears to the right of \u003csvg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-triangle-right\" aria-label=\"The right triangle icon\" role=\"img\"\u003e\u003cpath d=\"m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z\"\u003e\u003c/path\u003e\u003c/svg\u003e.\n\n````markdown\n\u003cdetails\u003e\n\n\u003csummary\u003eTips for collapsed sections\u003c/summary\u003e\n\n### You can add a header\n\nYou can add text within a collapsed section.\n\nYou can add an image or a code block, too.\n\n```ruby\n   puts \"Hello World\"\n```\n\n\u003c/details\u003e\n````\n\nThe Markdown inside the `\u003csummary\u003e` label will be collapsed by default:\n\n![Screenshot of the Markdown above on this page as rendered on GitHub, showing a right-facing arrow and the header \"Tips for collapsed sections.\"](https://docs.github.com/assets/images/help/writing/collapsed-section-view.png)\n\nAfter a reader clicks \u003csvg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-triangle-right\" aria-label=\"The right triangle icon\" role=\"img\"\u003e\u003cpath d=\"m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z\"\u003e\u003c/path\u003e\u003c/svg\u003e, the details are expanded:\n\n![Screenshot of the Markdown above on this page as rendered on GitHub. The collapsed section contains headers, text, images, and code blocks.](https://docs.github.com/assets/images/help/writing/open-collapsed-section.png)\n\nOptionally, to make the section display as open by default, add the `open` attribute to the `\u003cdetails\u003e` tag:\n\n```html\n\u003cdetails open\u003e\n```\n\n## Further reading\n\n* [GitHub Flavored Markdown Spec](https://github.github.com/gfm/)\n* [Basic writing and formatting syntax](https://docs.github.com/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax)","references/gomarkdown.md":"# gomarkdown/markdown Reference\n\nGo library for parsing Markdown and rendering HTML. Fast, extensible, and thread-safe.\n\n## Installation\n\n```bash\n# Add to your Go project\ngo get github.com/gomarkdown/markdown\n\n# Install CLI tool\ngo install github.com/gomarkdown/mdtohtml@latest\n```\n\n## Basic Usage\n\n### Simple Conversion\n\n```go\npackage main\n\nimport (\n    \"fmt\"\n    \"github.com/gomarkdown/markdown\"\n)\n\nfunc main() {\n    md := []byte(\"# Hello World\\n\\nThis is **bold** text.\")\n    html := markdown.ToHTML(md, nil, nil)\n    fmt.Println(string(html))\n}\n```\n\n### Using CLI Tool\n\n```bash\n# Convert file to HTML\nmdtohtml input.md output.html\n\n# Output to stdout\nmdtohtml input.md\n```\n\n## Parser Configuration\n\n### Common Extensions\n\n```go\nimport (\n    \"github.com/gomarkdown/markdown\"\n    \"github.com/gomarkdown/markdown/parser\"\n)\n\n// Create parser with extensions\nextensions := parser.CommonExtensions | parser.AutoHeadingIDs\np := parser.NewWithExtensions(extensions)\n\n// Parse markdown\ndoc := p.Parse(md)\n```\n\n### Available Parser Extensions\n\n| Extension | Description |\n|-----------|-------------|\n| `parser.CommonExtensions` | Tables, fenced code, autolinks, strikethrough |\n| `parser.Tables` | Pipe tables support |\n| `parser.FencedCode` | Fenced code blocks with language |\n| `parser.Autolink` | Auto-detect URLs |\n| `parser.Strikethrough` | ~~strikethrough~~ text |\n| `parser.SpaceHeadings` | Require space after # in headings |\n| `parser.HeadingIDs` | Custom heading IDs {#id} |\n| `parser.AutoHeadingIDs` | Auto-generate heading IDs |\n| `parser.Footnotes` | Footnote support |\n| `parser.NoEmptyLineBeforeBlock` | No blank line required before blocks |\n| `parser.HardLineBreak` | Newlines become `\u003cbr\u003e` |\n| `parser.MathJax` | MathJax support |\n| `parser.SuperSubscript` | Super^script^ and sub~script~ |\n| `parser.Mmark` | Mmark syntax support |\n\n## HTML Renderer Configuration\n\n### Common Flags\n\n```go\nimport (\n    \"github.com/gomarkdown/markdown\"\n    \"github.com/gomarkdown/markdown/html\"\n    \"github.com/gomarkdown/markdown/parser\"\n)\n\n// Parser\np := parser.NewWithExtensions(parser.CommonExtensions)\n\n// Renderer\nhtmlFlags := html.CommonFlags | html.HrefTargetBlank\nopts := html.RendererOptions{\n    Flags: htmlFlags,\n    Title: \"My Document\",\n    CSS: \"style.css\",\n}\nrenderer := html.NewRenderer(opts)\n\n// Convert\nhtml := markdown.ToHTML(md, p, renderer)\n```\n\n### Available HTML Flags\n\n| Flag | Description |\n|------|-------------|\n| `html.CommonFlags` | Common sensible defaults |\n| `html.HrefTargetBlank` | Add `target=\"_blank\"` to links |\n| `html.CompletePage` | Generate complete HTML document |\n| `html.UseXHTML` | Use XHTML output |\n| `html.FootnoteReturnLinks` | Add return links in footnotes |\n| `html.FootnoteNoHRTag` | No `\u003chr\u003e` before footnotes |\n| `html.Smartypants` | Smart punctuation |\n| `html.SmartypantsFractions` | Smart fractions (1/2 → ½) |\n| `html.SmartypantsDashes` | Smart dashes (-- → –) |\n| `html.SmartypantsLatexDashes` | LaTeX-style dashes |\n\n### Renderer Options\n\n```go\nopts := html.RendererOptions{\n    Flags:          htmlFlags,\n    Title:          \"Document Title\",\n    CSS:            \"path/to/style.css\",\n    Icon:           \"favicon.ico\",\n    Head:           []byte(\"\u003cmeta name='author' content='...'\u003e\"),\n    RenderNodeHook: customRenderHook,\n}\n```\n\n## Complete Example\n\n```go\npackage main\n\nimport (\n    \"os\"\n    \"github.com/gomarkdown/markdown\"\n    \"github.com/gomarkdown/markdown/html\"\n    \"github.com/gomarkdown/markdown/parser\"\n)\n\nfunc mdToHTML(md []byte) []byte {\n    // Parser with extensions\n    extensions := parser.CommonExtensions | \n                  parser.AutoHeadingIDs | \n                  parser.NoEmptyLineBeforeBlock\n    p := parser.NewWithExtensions(extensions)\n    doc := p.Parse(md)\n\n    // HTML renderer with options\n    htmlFlags := html.CommonFlags | html.HrefTargetBlank\n    opts := html.RendererOptions{Flags: htmlFlags}\n    renderer := html.NewRenderer(opts)\n\n    return markdown.Render(doc, renderer)\n}\n\nfunc main() {\n    md, _ := os.ReadFile(\"input.md\")\n    html := mdToHTML(md)\n    os.WriteFile(\"output.html\", html, 0644)\n}\n```\n\n## Security: Sanitizing Output\n\n**Important:** gomarkdown does not sanitize HTML output. Use Bluemonday for untrusted input:\n\n```go\nimport (\n    \"github.com/microcosm-cc/bluemonday\"\n    \"github.com/gomarkdown/markdown\"\n)\n\n// Convert markdown to potentially unsafe HTML\nunsafeHTML := markdown.ToHTML(md, nil, nil)\n\n// Sanitize using Bluemonday\np := bluemonday.UGCPolicy()\nsafeHTML := p.SanitizeBytes(unsafeHTML)\n```\n\n### Bluemonday Policies\n\n| Policy | Description |\n|--------|-------------|\n| `UGCPolicy()` | User-generated content (most common) |\n| `StrictPolicy()` | Strip all HTML |\n| `StripTagsPolicy()` | Strip tags, keep text |\n| `NewPolicy()` | Build custom policy |\n\n## Working with AST\n\n### Accessing the AST\n\n```go\nimport (\n    \"github.com/gomarkdown/markdown/ast\"\n    \"github.com/gomarkdown/markdown/parser\"\n)\n\np := parser.NewWithExtensions(parser.CommonExtensions)\ndoc := p.Parse(md)\n\n// Walk the AST\nast.WalkFunc(doc, func(node ast.Node, entering bool) ast.WalkStatus {\n    if heading, ok := node.(*ast.Heading); ok \u0026\u0026 entering {\n        fmt.Printf(\"Found heading level %d\\n\", heading.Level)\n    }\n    return ast.GoToNext\n})\n```\n\n### Custom Renderer\n\n```go\ntype MyRenderer struct {\n    *html.Renderer\n}\n\nfunc (r *MyRenderer) RenderNode(w io.Writer, node ast.Node, entering bool) ast.WalkStatus {\n    // Custom rendering logic\n    if heading, ok := node.(*ast.Heading); ok \u0026\u0026 entering {\n        fmt.Fprintf(w, \"\u003ch%d class='custom'\u003e\", heading.Level)\n        return ast.GoToNext\n    }\n    return r.Renderer.RenderNode(w, node, entering)\n}\n```\n\n## Handling Newlines\n\nWindows and Mac newlines need normalization:\n\n```go\n// Normalize newlines before parsing\nnormalized := parser.NormalizeNewlines(input)\nhtml := markdown.ToHTML(normalized, nil, nil)\n```\n\n## Resources\n\n- [Package Documentation](https://pkg.go.dev/github.com/gomarkdown/markdown)\n- [Advanced Processing Guide](https://blog.kowalczyk.info/article/cxn3/advanced-markdown-processing-in-go.html)\n- [GitHub Repository](https://github.com/gomarkdown/markdown)\n- [CLI Tool](https://github.com/gomarkdown/mdtohtml)\n- [Bluemonday Sanitizer](https://github.com/microcosm-cc/bluemonday)\n","references/hugo.md":"# Hugo Reference\n\nHugo is the world's fastest static site generator. It builds sites in milliseconds and supports advanced content management features.\n\n## Installation\n\n### Windows\n\n```powershell\n# Using Chocolatey\nchoco install hugo-extended\n\n# Using Scoop\nscoop install hugo-extended\n\n# Using Winget\nwinget install Hugo.Hugo.Extended\n```\n\n### macOS\n\n```bash\n# Using Homebrew\nbrew install hugo\n```\n\n### Linux\n\n```bash\n# Debian/Ubuntu (snap)\nsnap install hugo --channel=extended\n\n# Using package manager (may not be latest)\nsudo apt-get install hugo\n\n# Or download from https://gohugo.io/installation/\n```\n\n## Quick Start\n\n### Create New Site\n\n```bash\n# Create site\nhugo new site mysite\ncd mysite\n\n# Initialize git and add theme\ngit init\ngit submodule add https://github.com/theNewDynamic/gohugo-theme-ananke themes/ananke\necho \"theme = 'ananke'\" \u003e\u003e hugo.toml\n\n# Create first post\nhugo new content posts/my-first-post.md\n\n# Start development server\nhugo server -D\n```\n\n### Directory Structure\n\n```\nmysite/\n├── archetypes/      # Content templates\n│   └── default.md\n├── assets/          # Assets to process (SCSS, JS)\n├── content/         # Markdown content\n│   └── posts/\n├── data/            # Data files (YAML, JSON, TOML)\n├── i18n/            # Internationalization\n├── layouts/         # Templates\n│   ├── _default/\n│   ├── partials/\n│   └── shortcodes/\n├── static/          # Static files (copied as-is)\n├── themes/          # Themes\n└── hugo.toml        # Configuration\n```\n\n## CLI Commands\n\n| Command | Description |\n|---------|-------------|\n| `hugo new site \u003cname\u003e` | Create new site |\n| `hugo new content \u003cpath\u003e` | Create content file |\n| `hugo` | Build to `public/` |\n| `hugo server` | Start dev server |\n| `hugo mod init` | Initialize Hugo Modules |\n| `hugo mod tidy` | Clean up modules |\n\n### Build Options\n\n```bash\n# Basic build\nhugo\n\n# Build with minification\nhugo --minify\n\n# Build with drafts\nhugo -D\n\n# Build for specific environment\nhugo --environment production\n\n# Build to custom directory\nhugo -d ./dist\n\n# Verbose output\nhugo -v\n```\n\n### Server Options\n\n```bash\n# Start with drafts\nhugo server -D\n\n# Bind to all interfaces\nhugo server --bind 0.0.0.0\n\n# Custom port\nhugo server --port 8080\n\n# Disable live reload\nhugo server --disableLiveReload\n\n# Navigate to changed content\nhugo server --navigateToChanged\n```\n\n## Configuration (hugo.toml)\n\n```toml\n# Basic settings\nbaseURL = 'https://example.com/'\nlanguageCode = 'en-us'\ntitle = 'My Hugo Site'\ntheme = 'ananke'\n\n# Build settings\n[build]\n  writeStats = true\n\n# Markdown configuration\n[markup]\n  [markup.goldmark]\n    [markup.goldmark.extensions]\n      definitionList = true\n      footnote = true\n      linkify = true\n      strikethrough = true\n      table = true\n      taskList = true\n    [markup.goldmark.parser]\n      autoHeadingID = true\n      autoHeadingIDType = 'github'\n    [markup.goldmark.renderer]\n      unsafe = false\n  [markup.highlight]\n    style = 'monokai'\n    lineNos = true\n\n# Taxonomies\n[taxonomies]\n  category = 'categories'\n  tag = 'tags'\n  author = 'authors'\n\n# Menus\n[menus]\n  [[menus.main]]\n    name = 'Home'\n    pageRef = '/'\n    weight = 10\n  [[menus.main]]\n    name = 'Posts'\n    pageRef = '/posts'\n    weight = 20\n\n# Parameters\n[params]\n  description = 'My awesome site'\n  author = 'John Doe'\n```\n\n## Front Matter\n\nHugo supports TOML, YAML, and JSON front matter:\n\n### TOML (default)\n\n```markdown\n+++\ntitle = 'My First Post'\ndate = 2025-01-28T12:00:00-05:00\ndraft = false\ntags = ['hugo', 'tutorial']\ncategories = ['blog']\nauthor = 'John Doe'\n+++\n\nContent here...\n```\n\n### YAML\n\n```markdown\n---\ntitle: \"My First Post\"\ndate: 2025-01-28T12:00:00-05:00\ndraft: false\ntags: [\"hugo\", \"tutorial\"]\n---\n\nContent here...\n```\n\n## Templates\n\n### Base Template (_default/baseof.html)\n\n```html\n\u003c!DOCTYPE html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n  \u003ctitle\u003e{{ .Title }} | {{ .Site.Title }}\u003c/title\u003e\n  {{ partial \"head.html\" . }}\n\u003c/head\u003e\n\u003cbody\u003e\n  {{ partial \"header.html\" . }}\n  \u003cmain\u003e\n    {{ block \"main\" . }}{{ end }}\n  \u003c/main\u003e\n  {{ partial \"footer.html\" . }}\n\u003c/body\u003e\n\u003c/html\u003e\n```\n\n### Single Page (_default/single.html)\n\n```html\n{{ define \"main\" }}\n\u003carticle\u003e\n  \u003ch1\u003e{{ .Title }}\u003c/h1\u003e\n  \u003ctime\u003e{{ .Date.Format \"January 2, 2006\" }}\u003c/time\u003e\n  {{ .Content }}\n\u003c/article\u003e\n{{ end }}\n```\n\n### List Page (_default/list.html)\n\n```html\n{{ define \"main\" }}\n\u003ch1\u003e{{ .Title }}\u003c/h1\u003e\n{{ range .Pages }}\n  \u003carticle\u003e\n    \u003ch2\u003e\u003ca href=\"{{ .Permalink }}\"\u003e{{ .Title }}\u003c/a\u003e\u003c/h2\u003e\n    \u003cp\u003e{{ .Summary }}\u003c/p\u003e\n  \u003c/article\u003e\n{{ end }}\n{{ end }}\n```\n\n## Shortcodes\n\n### Built-in Shortcodes\n\n```markdown\n{{\u003c figure src=\"/images/photo.jpg\" title=\"My Photo\" \u003e}}\n\n{{\u003c youtube dQw4w9WgXcQ \u003e}}\n\n{{\u003c gist user 12345 \u003e}}\n\n{{\u003c highlight go \u003e}}\nfmt.Println(\"Hello\")\n{{\u003c /highlight \u003e}}\n```\n\n### Custom Shortcode (layouts/shortcodes/alert.html)\n\n```html\n\u003cdiv class=\"alert alert-{{ .Get \"type\" | default \"info\" }}\"\u003e\n  {{ .Inner | markdownify }}\n\u003c/div\u003e\n```\n\nUsage:\n\n```markdown\n{{\u003c alert type=\"warning\" \u003e}}\n**Warning:** This is important!\n{{\u003c /alert \u003e}}\n```\n\n## Content Organization\n\n### Page Bundles\n\n```\ncontent/\n├── posts/\n│   └── my-post/           # Page bundle\n│       ├── index.md       # Content\n│       └── image.jpg      # Resources\n└── _index.md              # Section page\n```\n\n### Accessing Resources\n\n```html\n{{ $image := .Resources.GetMatch \"image.jpg\" }}\n{{ with $image }}\n  \u003cimg src=\"{{ .RelPermalink }}\" alt=\"...\"\u003e\n{{ end }}\n```\n\n## Hugo Pipes (Asset Processing)\n\n### SCSS Compilation\n\n```html\n{{ $styles := resources.Get \"scss/main.scss\" | toCSS | minify }}\n\u003clink rel=\"stylesheet\" href=\"{{ $styles.RelPermalink }}\"\u003e\n```\n\n### JavaScript Bundling\n\n```html\n{{ $js := resources.Get \"js/main.js\" | js.Build | minify }}\n\u003cscript src=\"{{ $js.RelPermalink }}\"\u003e\u003c/script\u003e\n```\n\n## Taxonomies\n\n### Configure\n\n```toml\n[taxonomies]\n  tag = 'tags'\n  category = 'categories'\n```\n\n### Use in Front Matter\n\n```markdown\n+++\ntags = ['go', 'hugo']\ncategories = ['tutorials']\n+++\n```\n\n### List Taxonomy Terms\n\n```html\n{{ range .Site.Taxonomies.tags }}\n  \u003ca href=\"{{ .Page.Permalink }}\"\u003e{{ .Page.Title }} ({{ .Count }})\u003c/a\u003e\n{{ end }}\n```\n\n## Multilingual Sites\n\n```toml\ndefaultContentLanguage = 'en'\n\n[languages]\n  [languages.en]\n    title = 'My Site'\n    weight = 1\n  [languages.es]\n    title = 'Mi Sitio'\n    weight = 2\n```\n\n## Troubleshooting\n\n| Issue | Solution |\n|-------|----------|\n| Page not found | Check `baseURL` configuration |\n| Theme not loading | Verify theme path in config |\n| Raw HTML not showing | Set `unsafe = true` in goldmark config |\n| Slow builds | Use `--templateMetrics` to debug |\n| Module errors | Run `hugo mod tidy` |\n| CSS not updating | Clear browser cache or use fingerprinting |\n\n## Resources\n\n- [Hugo Documentation](https://gohugo.io/documentation/)\n- [Hugo Themes](https://themes.gohugo.io/)\n- [Hugo Discourse](https://discourse.gohugo.io/)\n- [GitHub Repository](https://github.com/gohugoio/hugo)\n- [Quick Reference](https://gohugo.io/quick-reference/)\n","references/jekyll.md":"# Jekyll Reference\n\nJekyll is a static site generator that transforms Markdown content into complete websites. It's blog-aware and powers GitHub Pages.\n\n## Installation\n\n### Prerequisites\n\n- Ruby 2.7.0 or higher\n- RubyGems\n- GCC and Make\n\n### Install Jekyll\n\n```bash\n# Install Jekyll and Bundler\ngem install jekyll bundler\n```\n\n### Platform-Specific Installation\n\n```bash\n# macOS (install Xcode CLI tools first)\nxcode-select --install\ngem install jekyll bundler\n\n# Ubuntu/Debian\nsudo apt-get install ruby-full build-essential zlib1g-dev\ngem install jekyll bundler\n\n# Windows (use RubyInstaller)\n# Download from https://rubyinstaller.org/\ngem install jekyll bundler\n```\n\n## Quick Start\n\n### Create New Site\n\n```bash\n# Create new Jekyll site\njekyll new myblog\n\n# Navigate to site\ncd myblog\n\n# Build and serve\nbundle exec jekyll serve\n\n# Open http://localhost:4000\n```\n\n### Directory Structure\n\n```\nmyblog/\n├── _config.yml      # Site configuration\n├── _posts/          # Blog posts\n│   └── 2025-01-28-welcome.md\n├── _layouts/        # Page templates\n├── _includes/       # Reusable components\n├── _data/           # Data files (YAML, JSON, CSV)\n├── _sass/           # Sass partials\n├── assets/          # CSS, JS, images\n├── index.md         # Home page\n└── Gemfile          # Ruby dependencies\n```\n\n## CLI Commands\n\n| Command | Description |\n|---------|-------------|\n| `jekyll new \u003cname\u003e` | Create new site |\n| `jekyll build` | Build to `_site/` |\n| `jekyll serve` | Build and serve locally |\n| `jekyll clean` | Remove generated files |\n| `jekyll doctor` | Check for issues |\n\n### Build Options\n\n```bash\n# Build site\nbundle exec jekyll build\n\n# Build with production environment\nJEKYLL_ENV=production bundle exec jekyll build\n\n# Build to custom directory\nbundle exec jekyll build --destination ./public\n\n# Build with incremental regeneration\nbundle exec jekyll build --incremental\n```\n\n### Serve Options\n\n```bash\n# Serve with live reload\nbundle exec jekyll serve --livereload\n\n# Include draft posts\nbundle exec jekyll serve --drafts\n\n# Specify port\nbundle exec jekyll serve --port 8080\n\n# Bind to all interfaces\nbundle exec jekyll serve --host 0.0.0.0\n```\n\n## Configuration (_config.yml)\n\n```yaml\n# Site settings\ntitle: My Blog\ndescription: A great blog\nbaseurl: \"\"\nurl: \"https://example.com\"\n\n# Build settings\nmarkdown: kramdown\ntheme: minima\nplugins:\n  - jekyll-feed\n  - jekyll-seo-tag\n\n# Kramdown settings\nkramdown:\n  input: GFM\n  syntax_highlighter: rouge\n  hard_wrap: false\n\n# Collections\ncollections:\n  docs:\n    output: true\n    permalink: /docs/:name/\n\n# Defaults\ndefaults:\n  - scope:\n      path: \"\"\n      type: \"posts\"\n    values:\n      layout: \"post\"\n\n# Exclude from processing\nexclude:\n  - Gemfile\n  - Gemfile.lock\n  - node_modules\n  - vendor\n```\n\n## Front Matter\n\nEvery content file needs YAML front matter:\n\n```markdown\n---\nlayout: post\ntitle: \"My First Post\"\ndate: 2025-01-28 12:00:00 -0500\ncategories: blog tutorial\ntags: [jekyll, markdown]\nauthor: John Doe\nexcerpt: \"A brief introduction...\"\npublished: true\n---\n\nYour content here...\n```\n\n## Markdown Processors\n\n### Kramdown (Default)\n\n```yaml\n# _config.yml\nmarkdown: kramdown\nkramdown:\n  input: GFM                    # GitHub Flavored Markdown\n  syntax_highlighter: rouge\n  syntax_highlighter_opts:\n    block:\n      line_numbers: true\n```\n\n### CommonMark\n\n```ruby\n# Gemfile\ngem 'jekyll-commonmark-ghpages'\n```\n\n```yaml\n# _config.yml\nmarkdown: CommonMarkGhPages\ncommonmark:\n  options: [\"SMART\", \"FOOTNOTES\"]\n  extensions: [\"strikethrough\", \"autolink\", \"table\"]\n```\n\n## Liquid Templating\n\n### Variables\n\n```liquid\n{{ page.title }}\n{{ site.title }}\n{{ content }}\n{{ page.date | date: \"%B %d, %Y\" }}\n```\n\n### Loops\n\n```liquid\n{% for post in site.posts %}\n  \u003carticle\u003e\n    \u003ch2\u003e\u003ca href=\"{{ post.url }}\"\u003e{{ post.title }}\u003c/a\u003e\u003c/h2\u003e\n    \u003cp\u003e{{ post.excerpt }}\u003c/p\u003e\n  \u003c/article\u003e\n{% endfor %}\n```\n\n### Conditionals\n\n```liquid\n{% if page.title %}\n  \u003ch1\u003e{{ page.title }}\u003c/h1\u003e\n{% endif %}\n\n{% unless page.draft %}\n  {{ content }}\n{% endunless %}\n```\n\n### Includes\n\n```liquid\n{% include header.html %}\n{% include footer.html param=\"value\" %}\n```\n\n## Layouts\n\n### Basic Layout (_layouts/default.html)\n\n```html\n\u003c!DOCTYPE html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n  \u003ctitle\u003e{{ page.title }} | {{ site.title }}\u003c/title\u003e\n  \u003clink rel=\"stylesheet\" href=\"{{ '/assets/css/style.css' | relative_url }}\"\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n  {% include header.html %}\n  \u003cmain\u003e\n    {{ content }}\n  \u003c/main\u003e\n  {% include footer.html %}\n\u003c/body\u003e\n\u003c/html\u003e\n```\n\n### Post Layout (_layouts/post.html)\n\n```html\n---\nlayout: default\n---\n\u003carticle\u003e\n  \u003ch1\u003e{{ page.title }}\u003c/h1\u003e\n  \u003ctime\u003e{{ page.date | date: \"%B %d, %Y\" }}\u003c/time\u003e\n  {{ content }}\n\u003c/article\u003e\n```\n\n## Plugins\n\n### Common Plugins\n\n```ruby\n# Gemfile\ngroup :jekyll_plugins do\n  gem 'jekyll-feed'        # RSS feed\n  gem 'jekyll-seo-tag'     # SEO meta tags\n  gem 'jekyll-sitemap'     # XML sitemap\n  gem 'jekyll-paginate'    # Pagination\n  gem 'jekyll-archives'    # Archive pages\nend\n```\n\n### Using Plugins\n\n```yaml\n# _config.yml\nplugins:\n  - jekyll-feed\n  - jekyll-seo-tag\n  - jekyll-sitemap\n```\n\n## Troubleshooting\n\n| Issue | Solution |\n|-------|----------|\n| Ruby 3.0+ webrick error | `bundle add webrick` |\n| Permission denied | Use `--user-install` or rbenv |\n| Slow builds | Use `--incremental` |\n| Liquid errors | Check for unescaped `{` `}` |\n| Encoding issues | Add `encoding: utf-8` to config |\n| Plugin not loading | Add to both Gemfile and _config.yml |\n\n## Resources\n\n- [Jekyll Documentation](https://jekyllrb.com/docs/)\n- [Liquid Template Language](https://shopify.github.io/liquid/)\n- [Kramdown Documentation](https://kramdown.gettalong.org/)\n- [GitHub Repository](https://github.com/jekyll/jekyll)\n- [Jekyll Themes](https://jekyllthemes.io/)\n","references/marked.md":"# Marked\n\n## Quick Conversion Methods\n\nExpanded portions of `SKILL.md` at `### Quick Conversion Methods`.\n\n### Method 1: CLI (Recommended for Single Files)\n\n```bash\n# Convert file to HTML\nmarked -i input.md -o output.html\n\n# Convert string directly\nmarked -s \"# Hello World\"\n\n# Output: \u003ch1\u003eHello World\u003c/h1\u003e\n```\n\n### Method 2: Node.js Script\n\n```javascript\nimport { marked } from 'marked';\nimport { readFileSync, writeFileSync } from 'fs';\n\nconst markdown = readFileSync('input.md', 'utf-8');\nconst html = marked.parse(markdown);\nwriteFileSync('output.html', html);\n```\n\n### Method 3: Browser Usage\n\n```html\n\u003cscript src=\"https://cdn.jsdelivr.net/npm/marked/lib/marked.umd.js\"\u003e\u003c/script\u003e\n\u003cscript\u003e\n  const html = marked.parse('# Markdown Content');\n  document.getElementById('output').innerHTML = html;\n\u003c/script\u003e\n```\n\n---\n\n## Step-by-Step Workflows\n\nExpanded portions of `SKILL.md` at `### Step-by-Step Workflows`.\n\n### Workflow 1: Single File Conversion\n\n1. Ensure marked is installed: `npm install -g marked`\n2. Run conversion: `marked -i README.md -o README.html`\n3. Verify output file was created\n\n### Workflow 2: Batch Conversion (Multiple Files)\n\nCreate a script `convert-all.js`:\n\n```javascript\nimport { marked } from 'marked';\nimport { readFileSync, writeFileSync, readdirSync } from 'fs';\nimport { join, basename } from 'path';\n\nconst inputDir = './docs';\nconst outputDir = './html';\n\nreaddirSync(inputDir)\n  .filter(file =\u003e file.endsWith('.md'))\n  .forEach(file =\u003e {\n    const markdown = readFileSync(join(inputDir, file), 'utf-8');\n    const html = marked.parse(markdown);\n    const outputFile = basename(file, '.md') + '.html';\n    writeFileSync(join(outputDir, outputFile), html);\n    console.log(`Converted: ${file} → ${outputFile}`);\n  });\n```\n\nRun with: `node convert-all.js`\n\n### Workflow 3: Conversion with Custom Options\n\n```javascript\nimport { marked } from 'marked';\n\n// Configure options\nmarked.setOptions({\n  gfm: true,           // GitHub Flavored Markdown\n  breaks: true,        // Convert \\n to \u003cbr\u003e\n  pedantic: false,     // Don't conform to original markdown.pl\n});\n\nconst html = marked.parse(markdownContent);\n```\n\n### Workflow 4: Complete HTML Document\n\nWrap converted content in a full HTML template:\n\n```javascript\nimport { marked } from 'marked';\nimport { readFileSync, writeFileSync } from 'fs';\n\nconst markdown = readFileSync('input.md', 'utf-8');\nconst content = marked.parse(markdown);\n\nconst html = `\u003c!DOCTYPE html\u003e\n\u003chtml lang=\"en\"\u003e\n\u003chead\u003e\n  \u003cmeta charset=\"UTF-8\"\u003e\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u003e\n  \u003ctitle\u003eDocument\u003c/title\u003e\n  \u003cstyle\u003e\n    body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; max-width: 800px; margin: 0 auto; padding: 2rem; }\n    pre { background: #f4f4f4; padding: 1rem; overflow-x: auto; }\n    code { background: #f4f4f4; padding: 0.2rem 0.4rem; border-radius: 3px; }\n  \u003c/style\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n${content}\n\u003c/body\u003e\n\u003c/html\u003e`;\n\nwriteFileSync('output.html', html);\n```\n","references/pandoc.md":"# Pandoc Reference\n\nPandoc is a universal document converter that can convert between numerous markup formats, including Markdown, HTML, LaTeX, Word, and many more.\n\n## Installation\n\n### Windows\n\n```powershell\n# Using Chocolatey\nchoco install pandoc\n\n# Using Scoop\nscoop install pandoc\n\n# Or download installer from https://pandoc.org/installing.html\n```\n\n### macOS\n\n```bash\n# Using Homebrew\nbrew install pandoc\n```\n\n### Linux\n\n```bash\n# Debian/Ubuntu\nsudo apt-get install pandoc\n\n# Fedora\nsudo dnf install pandoc\n\n# Or download from https://pandoc.org/installing.html\n```\n\n## Basic Usage\n\n### Convert Markdown to HTML\n\n```bash\n# Basic conversion\npandoc input.md -o output.html\n\n# Standalone document with headers\npandoc input.md -s -o output.html\n\n# With custom CSS\npandoc input.md -s --css=style.css -o output.html\n```\n\n### Convert to Other Formats\n\n```bash\n# To PDF (requires LaTeX)\npandoc input.md -s -o output.pdf\n\n# To Word\npandoc input.md -s -o output.docx\n\n# To LaTeX\npandoc input.md -s -o output.tex\n\n# To EPUB\npandoc input.md -s -o output.epub\n```\n\n### Convert from Other Formats\n\n```bash\n# HTML to Markdown\npandoc -f html -t markdown input.html -o output.md\n\n# Word to Markdown\npandoc input.docx -o output.md\n\n# LaTeX to HTML\npandoc -f latex -t html input.tex -o output.html\n```\n\n## Common Options\n\n| Option | Description |\n|--------|-------------|\n| `-f, --from \u003cformat\u003e` | Input format |\n| `-t, --to \u003cformat\u003e` | Output format |\n| `-s, --standalone` | Produce standalone document |\n| `-o, --output \u003cfile\u003e` | Output file |\n| `--toc` | Include table of contents |\n| `--toc-depth \u003cn\u003e` | TOC depth (default: 3) |\n| `-N, --number-sections` | Number section headings |\n| `--css \u003curl\u003e` | Link to CSS stylesheet |\n| `--template \u003cfile\u003e` | Use custom template |\n| `--metadata \u003ckey\u003e=\u003cvalue\u003e` | Set metadata |\n| `--mathml` | Use MathML for math |\n| `--mathjax` | Use MathJax for math |\n| `-V, --variable \u003ckey\u003e=\u003cvalue\u003e` | Set template variable |\n\n## Markdown Extensions\n\nPandoc supports many markdown extensions:\n\n```bash\n# Enable specific extensions\npandoc -f markdown+emoji+footnotes input.md -o output.html\n\n# Disable specific extensions\npandoc -f markdown-pipe_tables input.md -o output.html\n\n# Use strict markdown\npandoc -f markdown_strict input.md -o output.html\n```\n\n### Common Extensions\n\n| Extension | Description |\n|-----------|-------------|\n| `pipe_tables` | Pipe tables (default on) |\n| `footnotes` | Footnote support |\n| `emoji` | Emoji shortcodes |\n| `smart` | Smart quotes and dashes |\n| `task_lists` | Task list checkboxes |\n| `strikeout` | Strikethrough text |\n| `superscript` | Superscript text |\n| `subscript` | Subscript text |\n| `raw_html` | Raw HTML passthrough |\n\n## Templates\n\n### Using Built-in Templates\n\n```bash\n# View default template\npandoc -D html\n\n# Use custom template\npandoc --template=mytemplate.html input.md -o output.html\n```\n\n### Template Variables\n\n```html\n\u003c!DOCTYPE html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n  \u003ctitle\u003e$title$\u003c/title\u003e\n  $for(css)$\n  \u003clink rel=\"stylesheet\" href=\"$css$\"\u003e\n  $endfor$\n\u003c/head\u003e\n\u003cbody\u003e\n$body$\n\u003c/body\u003e\n\u003c/html\u003e\n```\n\n## YAML Metadata\n\nInclude metadata in your markdown files:\n\n```markdown\n---\ntitle: My Document\nauthor: John Doe\ndate: 2025-01-28\nabstract: |\n  This is the abstract.\n---\n\n# Introduction\n\nDocument content here...\n```\n\n## Filters\n\n### Using Lua Filters\n\n```bash\npandoc --lua-filter=filter.lua input.md -o output.html\n```\n\nExample Lua filter (`filter.lua`):\n\n```lua\nfunction Header(el)\n  if el.level == 1 then\n    el.classes:insert(\"main-title\")\n  end\n  return el\nend\n```\n\n### Using Pandoc Filters\n\n```bash\npandoc --filter pandoc-citeproc input.md -o output.html\n```\n\n## Batch Conversion\n\n### Bash Script\n\n```bash\n#!/bin/bash\nfor file in *.md; do\n  pandoc \"$file\" -s -o \"${file%.md}.html\"\ndone\n```\n\n### PowerShell Script\n\n```powershell\nGet-ChildItem -Filter *.md | ForEach-Object {\n  $output = $_.BaseName + \".html\"\n  pandoc $_.Name -s -o $output\n}\n```\n\n## Resources\n\n- [Pandoc User's Guide](https://pandoc.org/MANUAL.html)\n- [Pandoc Demos](https://pandoc.org/demos.html)\n- [Pandoc FAQ](https://pandoc.org/faqs.html)\n- [GitHub Repository](https://github.com/jgm/pandoc)\n","references/tables-to-html.md":"# Tables to HTML\n\n## Creating a table\n\n### Markdown\n\n```markdown\n\n| First Header  | Second Header |\n| ------------- | ------------- |\n| Content Cell  | Content Cell  |\n| Content Cell  | Content Cell  |\n```\n\n### Parsed HTML\n\n```html\n\u003ctable\u003e\n \u003cthead\u003e\n  \u003ctr\u003e\n   \u003cth\u003eFirst Header\u003c/th\u003e\n   \u003cth\u003eSecond Header\u003c/th\u003e\n  \u003c/tr\u003e\n \u003c/thead\u003e\n \u003ctbody\u003e\n  \u003ctr\u003e\n   \u003ctd\u003eContent Cell\u003c/td\u003e\n   \u003ctd\u003eContent Cell\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003eContent Cell\u003c/td\u003e\n   \u003ctd\u003eContent Cell\u003c/td\u003e\n  \u003c/tr\u003e\n \u003c/tbody\u003e\n\u003c/table\u003e\n```\n\n### Markdown\n\n```markdown\n| Command | Description |\n| --- | --- |\n| git status | List all new or modified files |\n| git diff | Show file differences that haven't been staged |\n```\n\n### Parsed HTML\n\n```html\n\u003ctable\u003e\n \u003cthead\u003e\n  \u003ctr\u003e\n   \u003cth\u003eCommand\u003c/th\u003e\n   \u003cth\u003eDescription\u003c/th\u003e\n  \u003c/tr\u003e\n \u003c/thead\u003e\n \u003ctbody\u003e\n  \u003ctr\u003e\n   \u003ctd\u003egit status\u003c/td\u003e\n   \u003ctd\u003eList all new or modified files\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003egit diff\u003c/td\u003e\n   \u003ctd\u003eShow file differences that haven't been staged\u003c/td\u003e\n  \u003c/tr\u003e\n \u003c/tbody\u003e\n\u003c/table\u003e\n```\n\n## Formatting Content in Tables\n\n### Markdown\n\n```markdown\n| Command | Description |\n| --- | --- |\n| `git status` | List all *new or modified* files |\n| `git diff` | Show file differences that **haven't been** staged |\n```\n\n### Parsed HTML\n\n```html\n\u003ctable\u003e\n \u003cthead\u003e\n  \u003ctr\u003e\n   \u003cth\u003eCommand\u003c/th\u003e\n   \u003cth\u003eDescription\u003c/th\u003e\n  \u003c/tr\u003e\n \u003c/thead\u003e\n \u003ctbody\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ccode\u003egit status\u003c/code\u003e\u003c/td\u003e\n   \u003ctd\u003eList all \u003cem\u003enew or modified\u003c/em\u003e files\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ccode\u003egit diff\u003c/code\u003e\u003c/td\u003e\n   \u003ctd\u003eShow file differences that \u003cstrong\u003ehaven't been\u003c/strong\u003e staged\u003c/td\u003e\n  \u003c/tr\u003e\n \u003c/tbody\u003e\n\u003c/table\u003e\n```\n\n### Markdown\n\n```markdown\n| Left-aligned | Center-aligned | Right-aligned |\n| :---         |     :---:      |          ---: |\n| git status   | git status     | git status    |\n| git diff     | git diff       | git diff      |\n```\n\n### Parsed HTML\n\n```html\n\u003ctable\u003e\n  \u003cthead\u003e\n   \u003ctr\u003e\n    \u003cth align=\"left\"\u003eLeft-aligned\u003c/th\u003e\n    \u003cth align=\"center\"\u003eCenter-aligned\u003c/th\u003e\n    \u003cth align=\"right\"\u003eRight-aligned\u003c/th\u003e\n   \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n   \u003ctr\u003e\n    \u003ctd align=\"left\"\u003egit status\u003c/td\u003e\n    \u003ctd align=\"center\"\u003egit status\u003c/td\u003e\n    \u003ctd align=\"right\"\u003egit status\u003c/td\u003e\n   \u003c/tr\u003e\n   \u003ctr\u003e\n    \u003ctd align=\"left\"\u003egit diff\u003c/td\u003e\n    \u003ctd align=\"center\"\u003egit diff\u003c/td\u003e\n    \u003ctd align=\"right\"\u003egit diff\u003c/td\u003e\n   \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n```\n\n### Markdown\n\n```markdown\n| Name     | Character |\n| ---      | ---       |\n| Backtick | `         |\n| Pipe     | \\|        |\n```\n\n### Parsed HTML\n\n```html\n\u003ctable\u003e\n \u003cthead\u003e\n  \u003ctr\u003e\n   \u003cth\u003eName\u003c/th\u003e\n   \u003cth\u003eCharacter\u003c/th\u003e\n  \u003c/tr\u003e\n \u003c/thead\u003e\n \u003ctbody\u003e\n  \u003ctr\u003e\n   \u003ctd\u003eBacktick\u003c/td\u003e\n   \u003ctd\u003e`\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003ePipe\u003c/td\u003e\n   \u003ctd\u003e|\u003c/td\u003e\n  \u003c/tr\u003e\n \u003c/tbody\u003e\n\u003c/table\u003e\n```","references/tables.md":"# Organizing information with tables\n\nYou can build tables to organize information in comments, issues, pull requests, and wikis.\n\n## Creating a table\n\nYou can create tables with pipes `|` and hyphens `-`. Hyphens are used to create each column's header, while pipes separate each column. You must include a blank line before your table in order for it to correctly render.\n\n```markdown\n\n| First Header  | Second Header |\n| ------------- | ------------- |\n| Content Cell  | Content Cell  |\n| Content Cell  | Content Cell  |\n```\n\n![Screenshot of a GitHub Markdown table rendered as two equal columns. Headers are shown in boldface, and alternate content rows have gray shading.](https://docs.github.com/assets/images/help/writing/table-basic-rendered.png)\n\nThe pipes on either end of the table are optional.\n\nCells can vary in width and do not need to be perfectly aligned within columns. There must be at least three hyphens in each column of the header row.\n\n```markdown\n| Command | Description |\n| --- | --- |\n| git status | List all new or modified files |\n| git diff | Show file differences that haven't been staged |\n```\n\n![Screenshot of a GitHub Markdown table with two columns of differing width. Rows list the commands \"git status\" and \"git diff\" and their descriptions.](https://docs.github.com/assets/images/help/writing/table-varied-columns-rendered.png)\n\nIf you are frequently editing code snippets and tables, you may benefit from enabling a fixed-width font in all comment fields on GitHub. For more information, see [About writing and formatting on GitHub](https://docs.github.com/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/about-writing-and-formatting-on-github#enabling-fixed-width-fonts-in-the-editor).\n\n## Formatting content within your table\n\nYou can use [formatting](https://docs.github.com/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax) such as links, inline code blocks, and text styling within your table:\n\n```markdown\n| Command | Description |\n| --- | --- |\n| `git status` | List all *new or modified* files |\n| `git diff` | Show file differences that **haven't been** staged |\n```\n\n![Screenshot of a GitHub Markdown table with the commands formatted as code blocks. Bold and italic formatting are used in the descriptions.](https://docs.github.com/assets/images/help/writing/table-inline-formatting-rendered.png)\n\nYou can align text to the left, right, or center of a column by including colons `:` to the left, right, or on both sides of the hyphens within the header row.\n\n```markdown\n| Left-aligned | Center-aligned | Right-aligned |\n| :---         |     :---:      |          ---: |\n| git status   | git status     | git status    |\n| git diff     | git diff       | git diff      |\n```\n\n![Screenshot of a Markdown table with three columns as rendered on GitHub, showing how text within cells can be set to align left, center, or right.](https://docs.github.com/assets/images/help/writing/table-aligned-text-rendered.png)\n\nTo include a pipe `|` as content within your cell, use a `\\` before the pipe:\n\n```markdown\n| Name     | Character |\n| ---      | ---       |\n| Backtick | `         |\n| Pipe     | \\|        |\n```\n\n![Screenshot of a Markdown table as rendered on GitHub showing how pipes, which normally close cells, are shown when prefaced by a backslash.](https://docs.github.com/assets/images/help/writing/table-escaped-character-rendered.png)\n\n## Further reading\n\n* [GitHub Flavored Markdown Spec](https://github.github.com/gfm/)\n* [Basic writing and formatting syntax](https://docs.github.com/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax)","references/writing-mathematical-expressions-to-html.md":"# Writing Mathematical Expressions to HTML\n\n## Writing Inline Expressions\n\n### Markdown\n\n```markdown\nThis sentence uses `$` delimiters to show math inline: $\\sqrt{3x-1}+(1+x)^2$\n```\n\n### Parsed HTML\n\n```html\n\u003cp\u003eThis sentence uses \u003ccode\u003e$\u003c/code\u003e delimiters to show math inline:\n \u003cmath-renderer\u003e\u003cmath xmlns=\"http://www.w3.org/1998/Math/MathML\"\u003e\n  \u003cmsqrt\u003e\n   \u003cmn\u003e3\u003c/mn\u003e\n   \u003cmi\u003ex\u003c/mi\u003e\n   \u003cmo\u003e−\u003c/mo\u003e\n   \u003cmn\u003e1\u003c/mn\u003e\n  \u003c/msqrt\u003e\n  \u003cmo\u003e+\u003c/mo\u003e\n  \u003cmo\u003e(\u003c/mo\u003e\n  \u003cmn\u003e1\u003c/mn\u003e\n  \u003cmo\u003e+\u003c/mo\u003e\n  \u003cmi\u003ex\u003c/mi\u003e\n  \u003cmsup\u003e\n   \u003cmo\u003e)\u003c/mo\u003e\n   \u003cmn\u003e2\u003c/mn\u003e\n  \u003c/msup\u003e\n\u003c/math\u003e\n\u003c/math-renderer\u003e\n\u003c/p\u003e\n```\n\n### Markdown\n\n```markdown\nThis sentence uses $\\` and \\`$ delimiters to show math inline: $`\\sqrt{3x-1}+(1+x)^2`$\n```\n\n### Parsed HTML\n\n```html\n\u003cp\u003eThis sentence uses\n \u003cmath-renderer\u003e\n  \u003cmath xmlns=\"http://www.w3.org/1998/Math/MathML\"\u003e\n   \u003cmo\u003e‘\u003c/mo\u003e\n   \u003cmi\u003ea\u003c/mi\u003e\n   \u003cmi\u003en\u003c/mi\u003e\n   \u003cmi\u003ed\u003c/mi\u003e\n   \u003cmo\u003e‘\u003c/mo\u003e\n  \u003c/math\u003e\n \u003c/math-renderer\u003e delimiters to show math inline:\n \u003cmath-renderer\u003e\n  \u003cmath xmlns=\"http://www.w3.org/1998/Math/MathML\"\u003e\n   \u003cmsqrt\u003e\n    \u003cmn\u003e3\u003c/mn\u003e\n    \u003cmi\u003ex\u003c/mi\u003e\n    \u003cmo\u003e−\u003c/mo\u003e\n    \u003cmn\u003e1\u003c/mn\u003e\n   \u003c/msqrt\u003e\n   \u003cmo\u003e+\u003c/mo\u003e\n   \u003cmo stretchy=\"false\"\u003e(\u003c/mo\u003e\n   \u003cmn\u003e1\u003c/mn\u003e\n   \u003cmo\u003e+\u003c/mo\u003e\n   \u003cmi\u003ex\u003c/mi\u003e\n   \u003cmsup\u003e\n    \u003cmo stretchy=\"false\"\u003e)\u003c/mo\u003e\n    \u003cmn\u003e2\u003c/mn\u003e\n   \u003c/msup\u003e\n  \u003c/math\u003e\n \u003c/math-renderer\u003e\n\u003c/p\u003e\n```\n\n---\n\n## Writing Expressions as Blocks\n\n### Markdown\n\n```markdown\n**The Cauchy-Schwarz Inequality**\\\n$$\\left( \\sum_{k=1}^n a_k b_k \\right)^2 \\leq \\left( \\sum_{k=1}^n a_k^2 \\right) \\left( \\sum_{k=1}^n b_k^2 \\right)$$\n```\n\n### Parsed HTML\n\n```html\n\u003cp\u003e\n  \u003cstrong\u003eThe Cauchy-Schwarz Inequality\u003c/strong\u003e\u003cbr\u003e\n  \u003cmath-renderer\u003e\n    \u003cmath xmlns=\"http://www.w3.org/1998/Math/MathML\"\u003e\n      \u003cmsup\u003e\n        \u003cmrow\u003e\n          \u003cmo\u003e(\u003c/mo\u003e\n          \u003cmunderover\u003e\n            \u003cmo\u003e∑\u003c/mo\u003e\n            \u003cmrow\u003e\n              \u003cmi\u003ek\u003c/mi\u003e\n              \u003cmo\u003e=\u003c/mo\u003e\n              \u003cmn\u003e1\u003c/mn\u003e\n            \u003c/mrow\u003e\n            \u003cmi\u003en\u003c/mi\u003e\n          \u003c/munderover\u003e\n          \u003cmsub\u003e\n            \u003cmi\u003ea\u003c/mi\u003e\n            \u003cmi\u003ek\u003c/mi\u003e\n          \u003c/msub\u003e\n          \u003cmsub\u003e\n            \u003cmi\u003eb\u003c/mi\u003e\n            \u003cmi\u003ek\u003c/mi\u003e\n          \u003c/msub\u003e\n          \u003cmo\u003e)\u003c/mo\u003e\n        \u003c/mrow\u003e\n        \u003cmn\u003e2\u003c/mn\u003e\n      \u003c/msup\u003e\n      \u003cmo\u003e≤\u003c/mo\u003e\n      \u003cmrow\u003e\n        \u003cmo\u003e(\u003c/mo\u003e\n        \u003cmunderover\u003e\n          \u003cmo\u003e∑\u003c/mo\u003e\n          \u003cmrow\u003e\n            \u003cmi\u003ek\u003c/mi\u003e\n            \u003cmo\u003e=\u003c/mo\u003e\n            \u003cmn\u003e1\u003c/mn\u003e\n          \u003c/mrow\u003e\n          \u003cmi\u003en\u003c/mi\u003e\n        \u003c/munderover\u003e\n        \u003cmsubsup\u003e\n          \u003cmi\u003ea\u003c/mi\u003e\n          \u003cmi\u003ek\u003c/mi\u003e\n          \u003cmn\u003e2\u003c/mn\u003e\n        \u003c/msubsup\u003e\n        \u003cmo\u003e)\u003c/mo\u003e\n      \u003c/mrow\u003e\n      \u003cmrow\u003e\n        \u003cmo\u003e(\u003c/mo\u003e\n        \u003cmunderover\u003e\n          \u003cmo\u003e∑\u003c/mo\u003e\n          \u003cmrow\u003e\n            \u003cmi\u003ek\u003c/mi\u003e\n            \u003cmo\u003e=\u003c/mo\u003e\n            \u003cmn\u003e1\u003c/mn\u003e\n          \u003c/mrow\u003e\n          \u003cmi\u003en\u003c/mi\u003e\n        \u003c/munderover\u003e\n        \u003cmsubsup\u003e\n          \u003cmi\u003eb\u003c/mi\u003e\n          \u003cmi\u003ek\u003c/mi\u003e\n          \u003cmn\u003e2\u003c/mn\u003e\n        \u003c/msubsup\u003e\n        \u003cmo\u003e)\u003c/mo\u003e\n      \u003c/mrow\u003e\n    \u003c/math\u003e\n  \u003c/math-renderer\u003e\n\u003c/p\u003e\n```\n\n### Markdown\n\n```markdown\n**The Cauchy-Schwarz Inequality**\n\n    ```math\n    \\left( \\sum_{k=1}^n a_k b_k \\right)^2 \\leq \\left( \\sum_{k=1}^n a_k^2 \\right) \\left( \\sum_{k=1}^n b_k^2 \\right)\n    ```\n```\n\n### Parsed HTML\n\n```html\n\u003cp\u003e\u003cstrong\u003eThe Cauchy-Schwarz Inequality\u003c/strong\u003e\u003c/p\u003e\n\n\u003cmath-renderer\u003e\n  \u003cmath xmlns=\"http://www.w3.org/1998/Math/MathML\"\u003e\n    \u003cmsup\u003e\n      \u003cmrow\u003e\n        \u003cmo\u003e(\u003c/mo\u003e\n        \u003cmunderover\u003e\n          \u003cmo\u003e∑\u003c/mo\u003e\n          \u003cmrow\u003e\n            \u003cmi\u003ek\u003c/mi\u003e\n            \u003cmo\u003e=\u003c/mo\u003e\n            \u003cmn\u003e1\u003c/mn\u003e\n          \u003c/mrow\u003e\n          \u003cmi\u003en\u003c/mi\u003e\n        \u003c/munderover\u003e\n        \u003cmsub\u003e\n          \u003cmi\u003ea\u003c/mi\u003e\n          \u003cmi\u003ek\u003c/mi\u003e\n        \u003c/msub\u003e\n        \u003cmsub\u003e\n          \u003cmi\u003eb\u003c/mi\u003e\n          \u003cmi\u003ek\u003c/mi\u003e\n        \u003c/msub\u003e\n        \u003cmo\u003e)\u003c/mo\u003e\n      \u003c/mrow\u003e\n      \u003cmn\u003e2\u003c/mn\u003e\n    \u003c/msup\u003e\n    \u003cmo\u003e≤\u003c/mo\u003e\n    \u003cmrow\u003e\n      \u003cmo\u003e(\u003c/mo\u003e\n      \u003cmunderover\u003e\n        \u003cmo\u003e∑\u003c/mo\u003e\n        \u003cmrow\u003e\n          \u003cmi\u003ek\u003c/mi\u003e\n          \u003cmo\u003e=\u003c/mo\u003e\n          \u003cmn\u003e1\u003c/mn\u003e\n        \u003c/mrow\u003e\n        \u003cmi\u003en\u003c/mi\u003e\n      \u003c/munderover\u003e\n      \u003cmsubsup\u003e\n        \u003cmi\u003ea\u003c/mi\u003e\n        \u003cmi\u003ek\u003c/mi\u003e\n        \u003cmn\u003e2\u003c/mn\u003e\n      \u003c/msubsup\u003e\n      \u003cmo\u003e)\u003c/mo\u003e\n    \u003c/mrow\u003e\n    \u003cmrow\u003e\n      \u003cmo\u003e(\u003c/mo\u003e\n      \u003cmunderover\u003e\n        \u003cmo\u003e∑\u003c/mo\u003e\n        \u003cmrow\u003e\n          \u003cmi\u003ek\u003c/mi\u003e\n          \u003cmo\u003e=\u003c/mo\u003e\n          \u003cmn\u003e1\u003c/mn\u003e\n        \u003c/mrow\u003e\n        \u003cmi\u003en\u003c/mi\u003e\n      \u003c/munderover\u003e\n      \u003cmsubsup\u003e\n        \u003cmi\u003eb\u003c/mi\u003e\n        \u003cmi\u003ek\u003c/mi\u003e\n        \u003cmn\u003e2\u003c/mn\u003e\n      \u003c/msubsup\u003e\n      \u003cmo\u003e)\u003c/mo\u003e\n    \u003c/mrow\u003e\n  \u003c/math\u003e\n\u003c/math-renderer\u003e\n```\n\n### Markdown\n\n```markdown\nThe equation $a^2 + b^2 = c^2$ is the Pythagorean theorem.\n```\n\n### Parsed HTML\n\n```html\n\u003cp\u003eThe equation\n \u003cmath-renderer\u003e\u003cmath xmlns=\"http://www.w3.org/1998/Math/MathML\"\u003e\n  \u003cmsup\u003e\n    \u003cmi\u003ea\u003c/mi\u003e\n    \u003cmn\u003e2\u003c/mn\u003e\n  \u003c/msup\u003e\n  \u003cmo\u003e+\u003c/mo\u003e\n  \u003cmsup\u003e\n    \u003cmi\u003eb\u003c/mi\u003e\n    \u003cmn\u003e2\u003c/mn\u003e\n  \u003c/msup\u003e\n  \u003cmo\u003e=\u003c/mo\u003e\n  \u003cmsup\u003e\n    \u003cmi\u003ec\u003c/mi\u003e\n    \u003cmn\u003e2\u003c/mn\u003e\n  \u003c/msup\u003e\n \u003c/math\u003e\u003c/math-renderer\u003e is the Pythagorean theorem.\n\u003c/p\u003e\n```\n\n### Markdown\n\n```\n$$\n\\int_0^\\infty e^{-x} dx = 1\n$$\n```\n\n### Parsed HTML\n\n```html\n\u003cp\u003e\u003cmath-renderer\u003e\u003cmath xmlns=\"http://www.w3.org/1998/Math/MathML\"\u003e\n  \u003cmsubsup\u003e\n    \u003cmo\u003e∫\u003c/mo\u003e\n    \u003cmn\u003e0\u003c/mn\u003e\n    \u003cmi\u003e∞\u003c/mi\u003e\n  \u003c/msubsup\u003e\n  \u003cmsup\u003e\n    \u003cmi\u003ee\u003c/mi\u003e\n    \u003cmrow\u003e\n      \u003cmo\u003e−\u003c/mo\u003e\n      \u003cmi\u003ex\u003c/mi\u003e\n    \u003c/mrow\u003e\n  \u003c/msup\u003e\n  \u003cmi\u003ed\u003c/mi\u003e\n  \u003cmi\u003ex\u003c/mi\u003e\n  \u003cmo\u003e=\u003c/mo\u003e\n  \u003cmn\u003e1\u003c/mn\u003e\n\u003c/math\u003e\u003c/math-renderer\u003e\u003c/p\u003e\n```\n\n---\n\n## Dollar Sign Inline with Mathematical Expression\n\n### Markdown\n\n```markdown\nThis expression uses `\\$` to display a dollar sign: $`\\sqrt{\\$4}`$\n```\n\n### Parsed HTML\n\n```html\n\u003cp\u003eThis expression uses\n \u003ccode\u003e\\$\u003c/code\u003e to display a dollar sign:\n \u003cmath-renderer\u003e\n  \u003cmath xmlns=\"http://www.w3.org/1998/Math/MathML\"\u003e\n   \u003cmsqrt\u003e\n    \u003cmi\u003e$\u003c/mi\u003e\n    \u003cmn\u003e4\u003c/mn\u003e\n   \u003c/msqrt\u003e\n  \u003c/math\u003e\n \u003c/math-renderer\u003e\n\u003c/p\u003e\n```\n\n### Markdown\n\n```markdown\nTo split \u003cspan\u003e$\u003c/span\u003e100 in half, we calculate $100/2$\n```\n\n### Parsed HTML\n\n```html\n\u003cp\u003eTo split\n \u003cspan\u003e$\u003c/span\u003e100 in half, we calculate\n \u003cmath-renderer\u003e\n  \u003cmath xmlns=\"http://www.w3.org/1998/Math/MathML\"\u003e\n   \u003cmn\u003e100\u003c/mn\u003e\n   \u003cmrow data-mjx-texclass=\"ORD\"\u003e\n    \u003cmo\u003e/\u003c/mo\u003e\n   \u003c/mrow\u003e\n   \u003cmn\u003e2\u003c/mn\u003e\n  \u003c/math\u003e\n \u003c/math-renderer\u003e\n\u003c/p\u003e\n```\n","references/writing-mathematical-expressions.md":"# Writing mathematical expressions\n\nUse Markdown to display mathematical expressions on GitHub.\n\n## About writing mathematical expressions\n\nTo enable clear communication of mathematical expressions, GitHub supports LaTeX formatted math within Markdown. For more information, see [LaTeX/Mathematics](http://en.wikibooks.org/wiki/LaTeX/Mathematics) in Wikibooks.\n\nGitHub's math rendering capability uses MathJax; an open source, JavaScript-based display engine. MathJax supports a wide range of LaTeX macros, and several useful accessibility extensions. For more information, see [the MathJax documentation](http://docs.mathjax.org/en/latest/input/tex/index.html#tex-and-latex-support) and [the MathJax Accessibility Extensions Documentation](https://mathjax.github.io/MathJax-a11y/docs/#reader-guide).\n\nMathematical expressions rendering is available in GitHub Issues, GitHub Discussions, pull requests, wikis, and Markdown files.\n\n## Writing inline expressions\n\nThere are two options for delimiting a math expression inline with your text. You can either surround the expression with dollar symbols (`$`), or start the expression with \u003ccode\u003e$\\`\u003c/code\u003e and end it with \u003ccode\u003e\\`$\u003c/code\u003e. The latter syntax is useful when the expression you are writing contains characters that overlap with markdown syntax. For more information, see [Basic writing and formatting syntax](https://docs.github.com/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax).\n\n```text\nThis sentence uses `$` delimiters to show math inline: $\\sqrt{3x-1}+(1+x)^2$\n```\n\n![Screenshot of rendered Markdown showing an inline mathematical expression: the square root of 3x minus 1 plus (1 plus x) squared.](https://docs.github.com/assets/images/help/writing/inline-math-markdown-rendering.png)\n\n```text\nThis sentence uses $\\` and \\`$ delimiters to show math inline: $`\\sqrt{3x-1}+(1+x)^2`$\n```\n\n![Screenshot of rendered Markdown showing an inline mathematical expression with backtick syntax: the square root of 3x minus 1 plus (1 plus x) squared.](https://docs.github.com/assets/images/help/writing/inline-backtick-math-markdown-rendering.png)\n\n## Writing expressions as blocks\n\nTo add a math expression as a block, start a new line and delimit the expression with two dollar symbols `$$`.\n\n\u003e  [!TIP] If you're writing in an .md file, you will need to use specific formatting to create a line break, such as ending the line with a backslash as shown in the example below. For more information on line breaks in Markdown, see [Basic writing and formatting syntax](https://docs.github.com/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#line-breaks).\n\n```text\n**The Cauchy-Schwarz Inequality**\\\n$$\\left( \\sum_{k=1}^n a_k b_k \\right)^2 \\leq \\left( \\sum_{k=1}^n a_k^2 \\right) \\left( \\sum_{k=1}^n b_k^2 \\right)$$\n```\n\n![Screenshot of rendered Markdown showing a complex equation. Bold text reads \"The Cauchy-Schwarz Inequality\" above the formula for the inequality.](https://docs.github.com/assets/images/help/writing/math-expression-as-a-block-rendering.png)\n\nAlternatively, you can use the \u003ccode\u003e\\`\\`\\`math\u003c/code\u003e code block syntax to display a math expression as a block. With this syntax, you don't need to use `$$` delimiters. The following will render the same as above:\n\n````text\n**The Cauchy-Schwarz Inequality**\n\n```math\n\\left( \\sum_{k=1}^n a_k b_k \\right)^2 \\leq \\left( \\sum_{k=1}^n a_k^2 \\right) \\left( \\sum_{k=1}^n b_k^2 \\right)\n```\n````\n\n## Writing dollar signs in line with and within mathematical expressions\n\nTo display a dollar sign as a character in the same line as a mathematical expression, you need to escape the non-delimiter `$` to ensure the line renders correctly.\n\n* Within a math expression, add a `\\` symbol before the explicit `$`.\n\n  ```text\n  This expression uses `\\$` to display a dollar sign: $`\\sqrt{\\$4}`$\n  ```\n\n  ![Screenshot of rendered Markdown showing how a backslash before a dollar sign displays the sign as part of a mathematical expression.](https://docs.github.com/assets/images/help/writing/dollar-sign-within-math-expression.png)\n\n* Outside a math expression, but on the same line, use span tags around the explicit `$`.\n\n  ```text\n  To split \u003cspan\u003e$\u003c/span\u003e100 in half, we calculate $100/2$\n  ```\n\n  ![Screenshot of rendered Markdown showing how span tags around a dollar sign display the sign as inline text not as part of a mathematical equation.](https://docs.github.com/assets/images/help/writing/dollar-sign-inline-math-expression.png)\n\n## Further reading\n\n* [The MathJax website](http://mathjax.org)\n* [Getting started with writing and formatting on GitHub](https://docs.github.com/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github)\n* [GitHub Flavored Markdown Spec](https://github.github.com/gfm/)"},"import":{"commit_sha":"541b7819d8c3545c6df122491af4fa1eae415779","imported_at":"2026-05-18T20:05:35Z","license_text":"MIT License\n\nCopyright GitHub, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","owner":"github","repo":"github/awesome-copilot","source_url":"https://github.com/github/awesome-copilot/tree/541b7819d8c3545c6df122491af4fa1eae415779/plugins/cms-development/skills/markdown-to-html"}},"content_hash":[197,134,49,145,43,187,152,45,180,81,97,83,28,118,150,2,162,181,222,12,97,73,146,138,255,22,248,201,84,112,167,161],"trust_level":"unsigned","yanked":false}
