Markdown Quiz and Survey

Markdown Quiz and Survey WordPress Plugin

A WordPress plugin for easily creating quizzes/surveys through markdown or CSV.


Main Features

Import from markdown/CSV

Through create a quiz/survey from a markdown file, you can even get a what-you-see-is-what-you-get quiz/survey.

Radio, checbox, fill-blank

Support single-choice, multiple-choice and fill in the blank questions.

Images, formulas, code...

A question can include images, formulas, code, tables and any other HTML content you want.

Anyone can respond

Allow setting unlogged-in users to take quizzes/surveys.

Satisfication surveys

Support specifying an value to indicate satisfication level for each option.


A quiz/survey can be insterted in any page/post with a shortcode.

How it works

Create a quiz/survey

Creating a quiz is very simple. Choose a markdown/CSV file and import, then a quiz will be created which you can see in the quiz list. Creating a survey is similiar.

1. Create a markdown(or CSV) file:

Quiz CSV

2. Create a quiz by importing the markdown(or CSV) file:

New Quiz

Quiz list

Quiz list shows front pages, taken count and operations of all the quizzes.

Quiz List

Take a quiz/survey

Click a quiz title in the quiz list, it is redirect to the taking quiz page.

Take Quiz


Quiz Report

Click a quiz's "View Reports" button in the quiz list to see the detailed results.

Quiz Report

How to use

To create a quiz or survey, you just need to create a markdown or CSV file.

Quiz markdown file

To write a markdown for a quiz is super easy. You can optionly include a YAML(information between --- and ---) part to specifiy some meta information.

A markdown file example for a quiz

A rendered markdown file:

Quiz markdown file

A markdown source file:

post_title: Math quiz
quiz_type: quiz

## mc

When I am as old as my older brother is today, my brother will be twice as old as I am today.

Which ages are the possible cases?

- [ ] I am 9, my brother is 13
- [x] I am 8, my brother is 12
- [x] I am 22, my brother is 33
- [x] I am 16, my brother is 24

## fb

Evaluate the following expression for x = -5:

$\frac {3(x+3^2)}{2}$ = ___

- [x] 6


A YAML part is optional, you can set the quiz/survey name here with post_titile.

A question contains three parts:

  1. Question type

    Use headline of level 2 ## to start a new question and put the question type here. A question type can be:

    • SC (Single choice question)
    • MC (Multiple choice quesiton)
    • FB (Fill in the blank question)

  2. Question title

    Write question title whatever you want

  3. Question options(and/or answers)

    Use a task list to present options. If an option is an answer, check the option.
    For FB question, there will be only one checked item with content to present the answer.


First you need to install an extra plugin to enable Latex. WP QuickLaTex is a good one (Note: Jetpack's Latex feature may lead to messy display).

Suppose you are using WP QuickLaTex to enable Latex, just put a [latexpage] tag at the first question's title beginning to make the remaining latex easy to write as demonstrated in the above example. Then you can write a Latex formula wrapped in $...$ anywhere you want. And this is a format of latex that is supported by a markdown editor, such as Typora, it is a super good markdown editor.

Almost every latex plugin supports a more comlicated syntax, surronding a formula with [latex] ... [/latex], yor can pick this format as well if you like.

Survey markdown file

A survey markdown file is similar. If you want to set a vaure for an option, like you want a satification survey, just put the value inside [] like below:

## sc

How do you think about its ease of use?

- [5] Very good
- [4] Good
- [3] OK
- [2] Bad
- [1] Very Bad

Quiz CSV file

You may create an Excel file and save it as a CSV file. A CSV file for a quiz contains one or more questions, one question is defined in one line, except the first line is used as column titles. Its structure is as below:

SC, MC or FBtitleoption11 or 0option21 or 0

Each line contains three fixed columns for defining the question part, the following columns are used to define its options, one option takes two column: optionTitle and isAnswer.


The count of options of each question does not need to be the same. Just leave the extra columns empty.


No.Question number, can be leaved as empty
TypeQuestion type, value can be SC (Single-choice), MS(Multiple-choice) or FB(Fill in the blank)
TitleQuestion title
OptionOption title
IsAnswerSpecifies whether the option is correct
1 indicates yes
0 indicates no
...More options

For titles, no matter it is question title or option title, it can include any content such as images, audios, videos with HTML tags or formulas (needs to install extra plugin to support Latex syntax)

  • To add a new paragraph, use <br> to break a line or use <p></p> tag.
  • To add an image, first upload it to the server and then use <img src=""> tag.
  • To add a formula, you need to enable Latex feature by installing a plugin like WP QuickLaTex (Jetpack's Latex feature may lead to messy display). The below CSV example shows how to write formulas. Most Latex plugins support such a formula format.


"Math quiz.csv" file for a quiz with the file name as its quiz title:

FB"Evaluate the following expression for x = -5:
[latex]\frac {3(x+3^2)}{2}[/latex]
SC"Calculate the area of the following triangle.
<img src='/wp-content/uploads/quiz-demo/area-triangle.jpg'>
The units may be mixed."
MC"When I am as old as my older brother is today, my brother will be twice as old as I am today.
Which ages are the possible cases?"
"I am 9, my brother is 13"dor0"I am 8, my brother is 12"1"I am 22, my brother is 33"1


You don't need to fill all the titles in the first line, they are just used to make it easy to read.

Survey CSV file

A CSV file for a survey is similar to that for a quiz. The difference is an option is defined by "Option" and "Value" columns instead of "Option" and "IsAnswer".

OptionOption title
ValueSpecifies an integer value for the option
- For normal surveys, just set it as 1
- For satisfaction surveys, set a number indicating a satisfaction level for the option


MCWhich social platforms do you use?Facebook1Twitter1Youtube1Other1


Import failed for "The csv file is not UTF-8 encoded"

The imported CSV files needs to be UTF-8 encoded. You may use Notepad++ to convert the CSV to UTF-8 encod:

Notepad++ > Encoding > Convert to UTF-8.

Import failed for "Please check the columns count"

Make sure that each line has 3 fixed columns and even columns for options.

Backslashes in the file are missing.

Use double backslashes \\ instead of \.

4 Replies to “Quiz And Survey WordPress Plugin”

  1. Hi GloomyCorner this is a great plugin, I have a question how to put a survey or qwiz on a selected page. Can it be done with shortcode or some code?

  2. Why is there an error: “Failed to move the imported file”, while uploading the demo markdown or csv file?

    1. The error message means that the file has been uploaded to the site server, however the plugin is failed to move it to the wp-content/uploads directory.
      Please make sure the site user has write access to the upload directory(wp-content/uploads). You can check whether other plugins can upload a file successfully or not.
      If there are still problems, please let we know.

Leave a Reply