MD Feature showcase
Complete Markdown Syntax Showcase
A Comprehensive Reference for Par Markdown Parser Features
This document serves as a complete reference guide demonstrating all syntax features supported by the Par markdown parser, organized by content type and interaction patterns.
1. Text Formatting & Inline Styling
Text formatting provides the foundation for semantic emphasis and visual hierarchy within prose.
1.1 Basic Formatting
Bold text is created with **double asterisks** or __double underscores__.
Italic text uses *single asterisks* or _single underscores_ for emphasis.
Combined bold and italic mixing *** markers creates strong emphasis.
1.2 Advanced Inline Formatting
Code fragments appear like this within backticks for inline code.
Strikethrough text indicates deleted or deprecated content using tildes.
Superscript notation appears in expressions like E=mc2 or xn using ^caret^ delimiters.
Subscript text for chemical formulas: H2O or CO2 uses comma delimiters.
1.3 Escape Sequences & Special Characters
Escaped characters like *asterisk*, _underscore_, and [brackets] use backslash prefix.
Long dashes appear automatically when using -- (converted to proper em-dash style).
Star ratings: ★★★★★ 4/5 or using emoji rating systems.
HTML entities blend naturally: © 2026, —, , €, etc.
2. Headings & Document Structure
2.1 ATX-Style Headings (Hash Marks)
Level 4 Heading
Level 5 Heading
Level 6 Heading
Multiple heading levels create semantic document structure for rendering and navigation.
2.2 Setext-Style Headings (Underlines)
These are also Headings
Less prominent using hyphens
Both ATX and setext styles coexist, providing flexibility in authorship.
3. Attributes & Metadata
Headings and blocks accept attributes using {attribute syntax}:
Attributed Heading
Blocks can have:
- Identity:
{#unique-id}for targeting and references - Classes:
{.class1 .class2}for styling hooks - Key-Value Pairs:
{data-type=special attr=value}
Attributes enable styling, identification, and semantic markup without breaking markdown readability.
4. Lists: Structure & Nesting
4.1 Unordered Lists (Bullets)
- First item
- Second item
- Third item
- Nested bullet level 1
- Nested bullet level 2
- Triple-nested item
- Back to level 2
- Back to level 1
Lists support multiple nesting depths with indentation consistency.
4.2 Ordered Lists (Numbered)
- First step
- Second step
- Third step
- Substep A
- Substep B
- Final step
Ordered lists maintain semantic meaning through numeric progression.
4.3 Task Lists (Checkboxes)
- Completed task
- Incomplete task
- In-progress or partial
- Future work
Task lists blend checklist semantics with list structure for project planning.
4.4 Definition Lists
- Term One The first concept needing explanation
Definition paragraph explaining the term comprehensively.
Multiple definitions can follow a single term.
- Term Two Another important concept
Its definition comes next.
Additional context can be provided here.
Definition lists create structured glossaries and explanations naturally.
5. Database and Tabular Content
5.1 Standard Tables
| Header 1 | Header 2 | Header 3 |
|---|---|---|
| Cell A1 | Cell A2 | Cell A3 |
| Cell B1 | Cell B2 | Cell B3 |
| Cell C1 | Cell C2 | Cell C3 |
Tables organize structured data with proper semantic HTML output.
5.2 Aligned Columns
| Left | Center | Right |
|---|---|---|
| Alpha | Beta | Gamma |
| First | Middle | Last |
Column alignment (left :--, center :--:, right --:) controls presentation.
6. Code & Preformatted Content
6.1 Indented Code Blocks
def hello_world():
"""A simple function"""
print("Hello, World!")
return 42
Indentation (4 spaces or tab) creates code blocks for monospace display.
6.2 Fenced Code Blocks with Language
class DataProcessor:
def __init__(self, data):
self.data = data
def process(self):
return [x * 2 for x in self.data]
const message = "Fenced code blocks support language specification";
console.log(message);
Generic code block without language specification
appears in monospace formatting
Fenced blocks with triple backticks or tildes offer explicit language hints.
6.3 Inline Code
Use var_name or function() for inline code references without block formatting.
7. Links & URLs
7.1 Inline Links
7.2 Reference Links
Reference links define URLs separately, useful for repeated references.
7.3 Shortcut References
7.4 Automatic URL Detection
Raw URLs like https://example.com/page display as links automatically.
Email addresses auto-link: contact@example.com becomes a mailto: link.
7.5 Wiki-Style Links
Wiki links enable internal knowledge base navigation patterns.
8. Images & Media
8.1 Inline Images


8.2 Reference Images

8.3 Clickable Images
Images wrapped in links become clickable navigation elements.
8.4 Wiki-Style Images
Wiki images support alignment and dimension specifications.
9. Blockquotes & Attribution
9.1 Simple Blockquotes
This is a quoted passage that appears with special formatting to distinguish it from surrounding prose.
Blockquotes can span
multiple lines when each line
starts with the
>marker.
9.2 Blockquotes with Attribution
The best way to predict the future is to implement it.
— Alan Kay (1971)
Blockquote attribution follows blank lines and em-dashes for proper semantic quoting.
9.3 Nested Content in Quotes
Simple quote with a list:
- First item
- Second item
And then a code example:
code inside quote
Blockquotes can contain complex nested content including lists and code blocks.
10. Horizontal Rules & Visual Breaks
Three or more hyphens, asterisks, or underscores create visual breaks:
---
***
___
These provide visual rhythm and section delineation in document flow. Here's for for example:
11. Footnotes & Annotations
11.1 Footnote References
This text contains a footnote reference1 , and another one2 .
Here's a note with multiple paragraphs3 .
- 4 :
This footnote contains multiple paragraphs and can include:
- Structured lists
- Code blocks
- Other complex content
- Structured lists
Footnotes separate supplementary information from main flow while maintaining reference integrity.
12. Interactive Elements: Forms & Inputs
12.1 Input Fields
Input field markers: > for input, modifiers like @ (email), tel (telephone), # (number), ! (file).