Writing guide

Markdown Syntax Dictionary: a Beginner's Guide

Markdown turns a few ordinary keyboard characters into document structure. This is a practical reference: read a rule, copy its small example, then use it in your own file.

MarkIOY Team · August 12, 2026 · 24 min read

Start editing in the MarkIOY Web editor. MarkIOY Web is local-first and keeps the readable document and Markdown source together. You do not have to memorize this page: write a little, preview it, and return here when a character is unfamiliar.

What is Markdown?

Markdown is a lightweight markup language: plain text plus a small number of characters that describe meaning. A renderer reads # Heading as a heading, - Item as a list item, and [label](URL) as a link. Without a renderer, the source is still readable.

Think of it as a contract. You provide a predictable pattern; the editor or website supplies the visual design. Markdown is excellent for notes, READMEs, product requirements, documentation, blog drafts, and prompts. It is not intended for pixel-perfect brochures, page-positioned contracts, or arbitrary visual layout.

The beginner rule: Markdown markers usually work only at the start of a line or when they touch the text they modify. In ## Heading, the two # characters mean “level-two heading” and the following space separates the marker from its title.

Common syntax and symbols

Every row below is a tiny pattern, not magic. Copy it exactly the first time: keep the shown spaces, punctuation, and line breaks. Support for extensions such as tables and task lists varies, while headings, paragraphs, emphasis, links, lists, quotes, and code are the most portable core.

CharactersWhat each character doesWrite exactlyResult
# + spaceOne to six # characters at a line start set a heading level; the space ends the marker.## InstallationA level-two heading. Use one # only for the document title.
* or _One matching marker on each side makes emphasis. Do not leave a space inside the pair.*light emphasis*Italic text.
** or __Two matching markers on each side make strong emphasis.**important**Bold text.
~~Two tildes on each side mark deleted text in renderers with strikethrough support.~~old name~~Struck-through text.
[ ]( )Square brackets contain visible link text; parentheses contain the destination. Keep both pairs.[MarkIOY](/)A clickable, descriptive link.
! + [ ]( )The exclamation mark changes a link into an image. The bracket text is alternative text, not a caption.![A note](/note.png)An image with accessible description.
-, *, or + + spaceAt the line start, one marker and one space create an unordered list item.- First itemA bullet list.
1. + spaceA number, period, and space create an ordered list item. You may write every item as 1.; most renderers number it automatically.1. First stepA numbered list.
> + spaceThe greater-than sign begins a quotation or callout line; the space separates it from text.> Important noteIndented quoted text.
`One backtick on each side protects a short literal command or name from formatting.`npm run build`Inline code.
```Three backticks open and close a multi-line code fence. Add a language immediately after the opening backticks when known.```jsA code block with optional highlighting.
---Three or more hyphens on an otherwise empty line make a thematic break.---A horizontal divider.
\A backslash escapes the next punctuation character, asking the renderer to show it literally.\*not italic\*Visible asterisks.

Paragraphs, spaces, and line breaks

Type normal sentences as normal text. One newline usually becomes a space in the rendered paragraph; a blank line starts a new paragraph. For a deliberate line break without a new paragraph, end the previous line with two spaces or a backslash, then press Return. Avoid using repeated spaces or empty lines to position text: another renderer may collapse them.

Lists, nesting, tasks, and tables

Indent a child list by two to four spaces under its parent. A task item is an extension built from a bullet, a space, then [ ] for incomplete or [x] for complete: - [ ] Review. A table uses pipes | to separate columns and a row of hyphens below the header; use it only for true row-and-column comparisons, not for page layout.

Links, images, and literal characters

Use link text that says where the reader will go, such as [Read the installation guide](...), never a bare URL or “click here.” Put a title in optional quotation marks after a URL only when the target renderer supports it. If Markdown punctuation must appear as text, prefix it with \; for example, write \# to show a hash at the beginning of a line rather than make a heading.

Markdown sourceTry in Web editor
# Document title

One sentence explaining the document's purpose.

## Steps

1. Prepare the environment.
2. Run `npm run build`.

> Tip: label fenced code blocks, for example ```ts.
Rendered result

Preparing rendered result…

Tables, footnotes, mathematics, HTML, and Mermaid diagrams are useful extensions, but support differs between renderers. Prefer the core patterns above for shared documents, then preview in the actual destination. For formulas, see the Markdown math formula guide.

Best practices for durable documents

Design the hierarchy first

Use one # heading, then descend through ## and ### without skipping levels. A heading must describe the section that follows. This gives people, screen readers, search tools, and AI a dependable map; changing text size instead of using headings does not.

Use meaningful link labels

“Read the deployment checklist” carries context that “click here” loses. It also makes a link understandable when copied, searched, or read aloud. Check that the destination works and use a relative link only when the files will stay together.

Fence commands, data, and prompts

Code fences preserve exact text. Add a language such as bash, json, swift, mermaid, or latex after the opening fence. Do not put the closing three backticks on the same line as code. If your code itself contains three backticks, use four backticks for the outer fence.

Separate facts, decisions, and tasks

Record facts with sources, decisions with their trade-offs and date, and actions as checkboxes. Use a quote for cited words, not merely to make a paragraph look important. Structure reduces collaboration mistakes more effectively than longer prose.

Read the source once

Before publishing, read the plain text: do headings make sense in order; do links say where they go; do images have useful alternative text; can a table fit a narrow screen; are code fences closed; and are quotes identifiable? If source is hard to read, migration, diffs, accessibility, and AI use will be fragile too.

Why Markdown matters more in the AI era

AI increases the value of a shared intermediate format. Markdown is human-readable, machine-parseable, version-control friendly, and easy to render. A well-structured file can be reviewed by a person, summarized by a model, chunked for retrieval, and published by a website.

Treat Markdown as the working paper for AI collaboration. Use headings for tasks, lists for constraints, code fences for inputs and outputs, and quotes for evidence. The model receives clearer context, and people can inspect omissions or inventions faster.

Markdown is not a truth guarantee. Verify AI-generated numbers, links, quotations, and code; preview complex tables, formulas, and diagrams in the actual target renderer. A strong workflow is: generate a structured draft, add sources and human decisions, verify facts, then render before publishing.

Finally, plain files keep knowledge portable. They can live locally, in Git, in another editor, or as clean input to a knowledge base without being locked into one vendor. That is why MarkIOY Web lets you edit the readable visual document or the Markdown source while keeping both in sync.

Start writing in Markdown

Open a local Markdown file in the MarkIOY Web editor, edit in visual and source views, then download your own file.

Open MarkIOY Web →