Home › Markdown to Google Form

Markdown to Google Form: Turn a .md Question List Into a Quiz

Updated November 8, 2026 · ~8 min read

Plenty of question drafts live in Markdown — a notes file, a README quiz, a shared doc written in .md. Google Forms cannot read Markdown directly. What you need is a fixed-column spreadsheet built by parsing the Markdown structure (headings, numbered items, bullet choices) into named columns, then converted into Form fields — with the question text, options, and answer key carried over exactly as written and no AI inventing questions. This guide covers the deterministic path from Markdown to a Google Form.

vs. an AI quiz maker: AI quiz makers take a prompt and generate questions, often changing the answer key. Here the source is your own .md file. Its structure is mapped to columns, so a graded test stays accurate. No AI is used to create content.

Why Markdown is not directly importable

Markdown is plain text with markup, not a spreadsheet. Google Forms consumes a structured spreadsheet with named columns. So the bridge is: Markdown → structure parsing → fixed columns (CSV/XLSX) → Form columns → import. Parsing is what turns your headings and lists into the columns Forms reliably recognizes.

The fixed-column layout Forms understand

One row is one question. This layout reshapes each parsed item into the fields Forms import.

ColumnWhat goes in it
questionThe question text from your Markdown
option 1 … option 6Answer choices (leave unused blank)
correct answerThe correct option number (1–6)
pointsPoints for that question (optional)
imageOne public image URL for the question (optional)

Once your Markdown is shaped into this sheet and converted into Form columns, every row becomes a question with its original options and answer key intact.

Markdown to Google Form in 5 steps

1

Open the .md

Open your Markdown question list — a notes file, a README quiz, or a shared doc. Keep the headings and bullet choices as they are.

2

Parse the structure

Headings and numbered items become questions; bullet lines become choices; a marked option becomes the answer key. The text is taken as-is.

3

Arrange into fixed columns

One row per question: question text, options (option 1–6), correct answer, and points.

4

Convert to Form columns

The sheet is turned into the columns Forms reads — question, options, answer key, and points.

5

Import and grade

Load the file into the Form, then enable Settings > Quizzes with the answer key filled. Submissions grade themselves.

Unmarked answers stay blank, not invented

If a question in your Markdown has no marked correct option, that column is left empty rather than filled with a guess. The conversion is deterministic — only the text already in your file travels into the Form.

Frequently asked questions

Can I really turn a Markdown file into a Google Form?

Yes. A Markdown file of questions is parsed by its structure — headings, numbered lists, and bullet choices — into a fixed-column spreadsheet (question, options, answer key, points), which is then converted into Form fields. The text in your .md is carried over exactly — nothing is invented.

Does the parser rewrite or guess the questions?

No. The conversion is deterministic: the Markdown structure is mapped to columns. If a question has no marked answer in your file, that column is left blank rather than fabricated. No AI generates new questions or changes the answer key.

What Markdown layouts work?

Most question lists work: a heading or numbered item as the question, bullet lines as choices, and a marker for the correct option. The parser reads that structure into the fixed columns.

How is this different from an AI quiz maker?

AI quiz makers take a prompt and generate questions. Here the source is your own .md file, and only the text in it is converted. No AI is used to create content.

Put your notes online

Stop hand-retyping a notes file, and stop letting an AI rewrite your exam. If the questions are already in your Markdown, send them as-is — from Markdown to Google Form, with the answer key intact.

Try ExamParser →