Markdown Syntax Formatter
Format and repair Markdown documents following CommonMark and GitHub Flavored Markdown specifications. Ensure proper syntax, consistent structure, and correct rendering across standard parsers.
Capabilities
- •Analyze document structure to identify intended hierarchy and formatting elements
- •Convert visual formatting cues (ALL CAPS, bullet characters, emphasis indicators) into proper Markdown syntax
- •Fix heading hierarchies ensuring logical progression without skipped levels
- •Format lists with consistent markers and proper indentation
- •Handle code blocks and inline code with appropriate language identifiers
- •Apply Swiss German orthography rules to German-language content
- •Respect context-specific linter exceptions (e.g., duplicate headings in training materials)
Workflow
- •Analyze the input text to identify headings, lists, code sections, emphasis, and structural elements
- •Transform visual cues into correct Markdown syntax
- •Ensure heading hierarchy follows logical progression with proper spacing
- •Convert numbered sequences to ordered lists and bullet points to consistent unordered lists
- •Apply proper code block formatting with language identifiers where recognizable
- •Use correct emphasis markers (double asterisks for bold, single for italic)
- •Apply language-specific conventions when the document is in German (see Swiss German Conventions)
- •Verify that all syntax renders correctly and follows Markdown best practices
Output Standards
- •Clean, well-formatted Markdown that renders correctly in standard parsers
- •Proper document structure with preserved logical flow
- •Consistent formatting for lists, headings, code blocks, and emphasis
- •Correct spacing and line breaks following Markdown conventions
- •Quality-checked output without broken formatting or parsing errors
- •Context-aware formatting decisions for ambiguous cases based on common conventions
Heading Rules
- •Never skip heading levels (e.g., do not jump from
##to####) - •Ensure a single
#top-level heading per document - •Add a blank line before and after each heading
- •Use ATX-style headings (
#) consistently, not Setext-style (underlines)
List Rules
- •Use
-for unordered lists (consistent marker) - •Use
1.for all ordered list items (let the renderer handle numbering) - •Indent nested lists by 2 or 4 spaces consistently within a document
- •Add a blank line before and after list blocks
Code Block Rules
- •Use fenced code blocks (triple backticks) with a language identifier
- •Use inline code (single backticks) for short code references in prose
- •Never nest code blocks
- •Ensure closing fence matches opening fence
Emphasis Rules
- •Use
**bold**for strong emphasis - •Use
*italic*for regular emphasis - •Do not use underscores for emphasis in filenames or mixed contexts
- •Avoid combining bold and italic unless semantically justified
Language-Specific Handling
When the document contains German text, apply Swiss German orthography rules automatically. See Swiss German Conventions for the complete ruleset including:
- •Replacing ß with
ssin all German text - •Preserving proper umlauts (no digraph substitutions)
- •Exceptions for code blocks, URLs, and external quotations
Linter Exceptions
Certain Markdown linting rules have legitimate exceptions depending on document context. See Linter Exceptions for detailed guidance on:
- •MD024 (duplicate headings) in training materials, API docs, and templates
- •Respecting project-level
.markdownlint.jsonconfiguration - •When to suggest alternatives vs. when to accept exceptions
Examples
Fixing Heading Hierarchy
Before:
# Title ### Subsection (skipped h2) ##### Detail (skipped h3, h4)
After:
# Title ## Subsection ### Detail
Converting Visual Formatting
Before:
INTRODUCTION This is the main text. The IMPORTANT POINTS are: * first item * second item - sub item a - sub item b * third item NOTE: Pay attention to this.
After:
## Introduction This is the main text. The **important points** are: - First item - Second item - Sub item a - Sub item b - Third item > **Note:** Pay attention to this.
Code Block Formatting
Before:
Here is some code:
function hello() {
console.log("hello");
}
After:
Here is some code:
```javascript
function hello() {
console.log("hello");
}
```
Troubleshooting
Mixed-Language Documents
Documents containing both German and English text require careful handling:
- •Apply Swiss German orthography only to German-language sections
- •Leave English sections unchanged
- •When language boundaries are unclear, ask the user which sections are German
- •Code blocks and technical terms remain unchanged regardless of surrounding language
Conflicting Linter Configuration
When a project's .markdownlint.json conflicts with this skill's formatting rules:
- •Project configuration takes precedence over skill defaults
- •Read the configuration file before applying formatting changes
- •If a rule is disabled in project config, do not "fix" what the linter allows
- •Document any deviation from standard formatting in a comment to the user
Large Documents with Many Issues
When a document has extensive formatting problems:
- •Fix structural issues first (heading hierarchy, document outline)
- •Then address list formatting and consistency
- •Apply code block formatting next
- •Handle emphasis and inline formatting last
- •Apply language conventions (Swiss German) as a final pass
- •Present a summary of changes made to the user