LessonRender 0.10 · Reference

LessonRender Reference

Every feature and exactly how to write it. Start with the most used; look up the rest when you need it.

Most used copy, paste, change the words

These six cover most lessons. Each one is complete: paste it into data.md and it works.

The header

The first lines of the file, between two --- lines. Only title is required.

---
title: Make This Lesson Your Own
level: B1
intro: A short demo lesson.
style: classic
---

An exercise

## starts a numbered exercise. The line after it, starting with >, tells students what to do.

## Watch | Individual · 4 minutes
> Watch the video. Are the sentences true or false?

True or false

The letter at the end is the answer: [t] true, [f] false.

[tf] You can use your own audio files. [t]
[tf] YouTube plays from your computer. [f]

A clip

File or YouTube link, start time, end time, name. Times are minutes:seconds.

[play audio.mp3 00:10 00:40 "Part 1"]
[play https://youtu.be/p2hnrfN58H4 01:26 03:24 "Clip B"]

Gaps

Curly brackets make a gap. Use | for other accepted answers.

Go to the {folder} and paste your own {audio file|audio} there.

Multiple choice and discussion

* marks the right option. Discussion questions have no answer.

[m] What can you replace?
- Only the video
* The audio and the video
- Only the exercises
[/m]

[discuss] What would you change first? Why?

General rules

  1. Tags go at the start of a line, in lowercase: [tf], [m], [play …].
  2. Block tags open and close on their own lines: [m] … [/m].
  3. One-line tags keep the whole item on one line and have no closing tag: [tf], [short], [odd], [discuss], [play], [img], [timer], [link].
  4. Inside a tag, titles, captions and names go in straight quotes: "Clip A". Curly quotes break the tag.
  5. Curly brackets always make a gap. To show the symbols themselves, write \{ \}.
  6. * marks the correct option · = introduces an answer · | separates accepted alternatives.
  7. Numbers, letters and the answer key are added by the page. Leave them out of the file.
  8. Times: mm:ss or hh:mm:ss, digits only.

The full rules for AI assistants are in the LessonRender specification.

Setup files and loading

The folder

  • index.html: the page. It stays the same for every lesson.
  • data.md: the lesson, in plain text (UTF-8).
  • Any media the lesson uses, in the same folder: audio.mp3, video.mp4, image01.png…
  • To put a lesson online, upload the whole folder.

How a lesson opens

  • The page looks for data.md next to it, then data.txt.
  • Another file: index.html?lesson=venice.md
  • If it finds nothing, it shows Open a lesson: drag a file in, choose one, or paste the lesson text.
  • LessonRender online always starts on that screen. It's the place for YouTube lessons.
  • Open in the top bar loads another lesson at any time.

Pasting from an AI

  • Paste the AI's whole answer if that's easier. The page keeps the lesson and drops the chat text around it.
  • Ctrl+Enter (Cmd+Enter on a Mac) shows the lesson.
  • A pasted lesson lives in that browser tab. To keep it, save it as data.md.

Opened from your computer

  • Chrome and Edge ask once for the lesson's folder and then remember it.
  • Other browsers ask you to choose the file each time.
  • Audio, video and images work. YouTube clips need the page online.

Structure and text

ElementWhat it doesNotation
PartSection divider with a label and a thin rule. Unnumbered.
# Part 1 – Listening
ExerciseNumbered, with a big number, and listed in the top menu. After | : who works together and for how long (Individual, Pairs, Groups, Whole class).
## Warm-up | Pairs · 8 minutes
InstructionsBlue box for students. One per exercise, right after the ## line.
> Listen and complete the notes.
SubheadingSmall heading inside an exercise.
### Before you listen
ParagraphLines that follow each other join into one paragraph. A blank line starts a new one.
Venice is built on 118 islands.
FormattingBold, italics, inline code, links.
**bold**  *italics*  `code`
[text](https://example.com)
ListsBulleted or numbered.
- item
1. item
TableGaps work in the cells below the header row.
| Date | Event |
|------|-------|
| 1591 | The {stone} bridge opens |

Presentation blocks unnumbered and unmarked; they can go anywhere

BlockWhat it doesNotation
Reading textTitle, source line and a drop cap on the first letter. numbered adds paragraph numbers. Gaps work inside.
[read numbered] Title | Source
First paragraph…

Second paragraph…
[/read]
ImageAlways square. Full width by default, cropped from the centre; left or right puts it beside the text. The caption also describes the image for screen readers.
[img plan.png "Caption"]
[img plan.png right "Caption"]
Transparent imageBlends with the page and keeps its whole shape. PNG and WebP are detected online; SVG always. Add transparent when the page is opened from your computer.
[img piles.png right transparent "Caption"]
Image gridTwo or three [img] lines with no blank line between them sit side by side.
[img a.png "Above"]
[img b.png "Below"]
[img c.png "Plan"]
TranscriptFolded box. Straight after a [play] line, it folds inside that player. Name: lines show the speaker in bold; lines in square brackets show as sound cues.
[transcript "Transcript (after listening)"]
Masha: In the 50s, Toronto…
[Music]
[/transcript]
Fact boxShaded box with an optional title. Formatting works inside.
[note "Did you know?"]
Text.
[/note]
VocabularyTwo-column glossary for reference. Title optional.
[vocab "Key words"]
pile = a post driven into the ground
[/vocab]
Useful languagePhrase box in two columns. Title optional.
[phrases "For the debate"]
It could be argued that…
[/phrases]
Role cardsGrid of cards; the part before the colon is the role.
[roles]
Budget officer: Worried about costs.
[/roles]
TimelineVertical timeline; any text works as the date.
[timeline]
c. 697 = The Republic is declared
[/timeline]
Pull quoteLarge quotation with the speaker underneath. Up to 15 words.
[quote "Viljo Revell"]
Text.
[/quote]
TimerCountdown with Start, Pause, Reset and a progress bar. Hidden when printing.
[timer 3:00 "Retell the story"]
Link cardBox that opens a page in a new tab. Title optional.
[link https://… "Read more"]
Teacher's notesGathered into a folded “Teacher's notes” box at the end of the page. One block, at the end of the file.
[teacher]
Notes for me.
[/teacher]

Media clips one tag for audio, video and YouTube

SourceWhat it doesNotation
Audio filePlayer with play/pause, progress bar, time, Restart and speed (0.75×, 0.9×, 1×). Stops at the end time. Clips from the same file share one player, so starting one stops the other. .mp3, .m4a, .wav, .ogg.
[play audio.mp3 01:53 02:37 "Extract 1"]
Video fileVideo player limited to the clip, plus a “Play clip” button. .mp4, .webm, .mov.
[play video.mp4 01:58 03:09 "Clip B"]
YouTubeEmbedded clip with Restart and “Open on YouTube”. Any YouTube link works. Needs the page online.
[play https://youtu.be/uBwkMc1llmM 03:09 04:37 "Clip C"]

Leave out the end time to play to the end, and both times to play the whole recording. The same clip can appear in several exercises: copy the line. A missing file shows a red message in the player.

Activities numbered, checked and added to the answer key

ActivityWhat students doNotationHelp bank
Gap fillType the missing word. Works in paragraphs, lists, tables and reading texts.
The {piles} were made of {oak|larch}.
Yes
Word bankGap fill with a box of answers above it, plus extra words after +, shuffled. The answers go into the box by themselves.
[bank + timber, glass]
Text with {gaps}.
[/bank]
Built in
DropdownChoose from a menu inside the sentence.
It {*was|were|has been} built in 1591.
—
Word formationType a word made from the base word after the gap.
The {construction}(CONSTRUCT) took years.
Yes
True / falsePick True or False.
[tf] The bridge never fell down. [f]
—
Multiple choicePick one option (lettered a, b, c…). One question per block.
[m] Question?
- wrong
* right
- wrong
[/m]
—
Short answerType one to three words.
[short] When did it open? = 1591|in 1591
Yes
Long answerWrite freely, then open a suggested answer to compare. Unmarked.
[long] Question?
= Suggested answer.
[/long]
—
MatchingChoose the letter of the matching definition. Definitions are shuffled.
[match]
term = definition
[/match]
—
OrderingMove shuffled lines with ▲ ▼. Write them in the right order.
[order]
First event.
Second event.
[/order]
—
Error correctionRewrite a sentence that has one mistake. The wrong sentence is already in the box.
[fix]
The bridge were built.
= The bridge was built.
[/fix]
—
Key word transformationComplete the second sentence with the key word. The two = signs surround the answer.
[transform]
They rebuilt the bridge. (BEEN)
The bridge = has been rebuilt = by them.
[/transform]
—
Odd one outPick the word that doesn't belong.
[odd] piles, beams, *gondolas, slabs
—
CategorisingChoose a group for each shuffled word.
[sort]
Materials: concrete, steel
Elements: beam, column
[/sort]
—
DiscussionNumbered speaking prompt, with no buttons.
[discuss] Should Venice limit tourists?
—

What happens automatically

Numbering and navigation

  • Every ## exercise gets a number and a place in the sticky top menu.
  • Items and gaps are numbered inside each exercise.
  • Matching, ordering and categorising are shuffled, and never start in the right order.

Checking

  • Check answers marks each answer green or red and shows a score.
  • Show answers fills in every answer in blue. Clear starts again.
  • Checking ignores capitals, accents, curly or straight apostrophes, extra spaces and final punctuation.

Help and answer key

  • Need help? Word bank: a folded list of the answers under exercises with typed gaps or short answers.
  • Answer key: folded at the end of the page, grouped by exercise.

Safety nets

  • Mistakes in the lesson file appear in a red box with their line numbers.
  • A missing image shows “Cannot find … in this folder”. A missing recording shows a red message in its player.

Page controls top bar

ControlWhat it does
Exercise menuJumps to any exercise.
OpenLoads another lesson file. Dragging a file onto the page does the same.
PrintA clean printout: buttons, players, timers and help banks are left out; folded boxes print only if open.
AaThe Appearance menu: Light, Dark or Auto (follows the device), and the six styles below. The choice is remembered on that device.
Moon / sunQuick switch between light and dark.

The six styles

AaClassicNewspaper serif. The default.
AaModernClean sans, blue-grey and violet.
AaEditorialMagazine type on warm paper.
AaBlueprintDrawing grid, technical type.
AaConcreteBold capitals and heavy rules.
AaNotebookRuled paper and handwriting.

Troubleshooting

ProblemFix
The “Open a lesson” screenOn LessonRender online, that's where you start. Anywhere else, the page found no data.md or data.txt next to it. Check the name (capitals count), or choose the file.
A red box at the topIt lists mistakes with their line numbers. Fix them by hand, or paste the lines back to the AI that wrote the lesson.
Red box: “not closed”A block tag is missing its [/tag] line.
YouTube won't playThe page is opened from your computer. Use LessonRender online, or “Open on YouTube” for now.
A gap appears where it shouldn'tCurly brackets in normal text. Write \{ and \}.
Pasted lesson shows chat textCopy only the lesson box from the AI, starting at the first ---.
Online, data.md can't be found on GitHub PagesAdd an empty file called .nojekyll at the top of the site, so .md files are published as they are.
A transparent PNG shows a boxThe page is opened from your computer. Add transparent to the [img] line.
A black drawing disappears in dark modeUse mid-tone colours in transparent images.