Formatting Markdown with markdown-syntax-formatter¶
Learn how to produce clean, consistent Markdown documents using the education plugin's Markdown formatting skill.
Level: Beginner Plugin: education
What You'll Learn¶
- How to invoke the Markdown syntax formatter skill
- Fixing common Markdown structure issues (headings, lists, code blocks)
- Applying Swiss German orthography to German-language documents
- Handling linter exceptions in training materials and templates
- Best practices for professional Markdown documentation
Prerequisites¶
- Education plugin installed and enabled
- A Markdown file (
.md) in your project or working directory
Why Markdown Quality Matters¶
As a BSc student, you write Markdown constantly: README files, lab reports, project documentation, pull request descriptions, and wiki pages. Poorly formatted Markdown leads to:
- Broken rendering on GitHub, GitLab, or MkDocs
- Inconsistent heading hierarchies that confuse readers
- Mixed list styles that look unprofessional
- Code blocks without syntax highlighting
The markdown-syntax-formatter skill helps you catch and fix these issues automatically.
Step 1: Invoke the Skill¶
The skill activates in two ways:
Simply ask Claude to format or review a Markdown file:
| Text Only | |
|---|---|
| Text Only | |
|---|---|
Claude recognizes the intent and loads the skill automatically.
Invoke the skill explicitly:
| Text Only | |
|---|---|
Then provide the file or text you want formatted.
Step 2: Understanding What Gets Fixed¶
The skill checks and repairs several categories of issues.
Heading Hierarchy¶
One of the most common mistakes in student documentation: skipping heading levels.
Before (broken hierarchy):
After (correct hierarchy):
Why this matters
Screen readers, table-of-contents generators, and documentation tools rely on heading levels to build navigation. Skipping levels breaks accessibility and structure.
List Formatting¶
Mixed list markers and inconsistent indentation are common in collaborative documents.
Before (inconsistent):
| Markdown | |
|---|---|
After (consistent):
| Markdown | |
|---|---|
Ordered list numbering
Using 1. for all ordered list items is intentional. Markdown renderers auto-number them, and this avoids manual renumbering when you insert items.
Code Blocks¶
Indented code blocks and missing language identifiers reduce readability.
Before (no language identifier):
| Text Only | |
|---|---|
After (with language identifier):
| Text Only | |
|---|---|
The language identifier (java, python, bash, etc.) enables syntax highlighting, which significantly improves readability for code reviewers and fellow students.
Emphasis and Formatting¶
Before (mixed styles):
| Markdown | |
|---|---|
After (consistent):
| Markdown | |
|---|---|
The skill uses asterisks consistently: **bold** and *italic*. This avoids ambiguity with filenames containing underscores (e.g., my_module).
Step 3: German-Language Documents¶
If your document is in German, the skill automatically applies Swiss German orthography.
Eszett Replacement¶
The Eszett (ß) is not used in Swiss German. The skill replaces it with "ss":
| Input | Output |
|---|---|
| Straße | Strasse |
| großes Projekt | grosses Projekt |
| schließlich | schliesslich |
| Fußnote | Fussnote |
Umlaut Correction¶
Digraph substitutions (ae, oe, ue) are corrected to proper umlauts:
| Input | Output |
|---|---|
| Aenderung | Änderung |
| Uebersicht | Übersicht |
| oeffnen | öffnen |
Code is never modified
Swiss German rules apply only to prose text. Code blocks, inline code, URLs, and technical identifiers remain unchanged.
Step 4: Handling Linter Exceptions¶
Not every linter warning needs fixing. The skill recognizes legitimate exceptions.
Duplicate Headings in Training Materials¶
In a lab exercise document, repeating headings like "Exercise" and "Solution" per chapter is expected:
| Markdown | |
|---|---|
The skill recognizes this as training material and does not rename the headings.
For regular documents, it suggests more specific headings instead:
Practical Examples¶
Example 1: Cleaning Up a Project README¶
A typical BSc project README with common issues:
Before:
| Markdown | |
|---|---|
After:
| Markdown | |
|---|---|
What changed:
- Title capitalized properly
- Heading hierarchy fixed (h3 → h2, h5 → h2)
- Blank lines added around code blocks
- Language identifiers added (
bash) - Punctuation added to final sentence
Example 2: Formatting a Lab Report¶
Before:
After:
What changed:
- ALL CAPS headings converted to proper Markdown headings
- Heading hierarchy established (h1 for title, h2 for sections)
- Mixed list markers (
*,-) unified to- - "FASTEST" converted to
**fastest**(bold emphasis) - Code wrapped in fenced block with
javalanguage identifier
Common Mistakes to Avoid¶
| Mistake | Problem | Fix |
|---|---|---|
| No blank line before heading | Heading may not render | Always add a blank line before ## |
| Indented code without fence | Fragile, no syntax highlighting | Use triple backticks with language |
| Skipping heading levels | Breaks document outline | Follow h1 → h2 → h3 sequence |
Mixing * and - in lists | Inconsistent rendering | Pick one marker and use it throughout |
Using _emphasis_ in code docs | Conflicts with snake_case | Use *emphasis* instead |
| German text with ß | Incorrect for Swiss German | Skill auto-converts to "ss" |
What's Next?¶
- Your First Commit -- Commit your formatted documentation professionally
- Create Your First PR -- Submit your documentation in a pull request
- Skill Format Reference -- Learn how the skill is built (for plugin developers)
Summary¶
The markdown-syntax-formatter skill helps you write professional Markdown by:
- Fixing structural issues (headings, lists, code blocks, emphasis)
- Applying Swiss German orthography to German documents
- Respecting legitimate linter exceptions in training materials
- Providing consistent formatting across all your documentation
Use it whenever you write or review Markdown files -- it activates automatically when you ask Claude to format or check a document.