---
id: M04-L01
title: "Write Markdown that renders correctly"
module: M04
chapters: "8"
checkpoint: CP02
---

# M04-L01 — Write Markdown that renders correctly

Produce a Markdown page whose source, preview, and copied command agree. Open a preserved CP02 Sensor Monitor folder. You need the editor, the project files, and the Markdown preview; compiler setup is needed only for the optional execution check.

Markdown is ordinary text with a small amount of structural punctuation. Source inspection checks exact text; preview inspection checks the reading experience. Neither proves the command is valid. Start with one title, second-level headings for purpose and checks, and a paragraph explaining that the core project uses synthetic input.

Use numbered steps for ordered actions and bullets for parallel information. Leave blank lines around headings, lists, code blocks, and tables. Put filenames such as `README.md` in inline backticks. A copyable command belongs in a fenced block with its shell named. The language label improves presentation; it does not execute the command.

From the Sensor Monitor root, the supplied replay command is:

```powershell
.\scripts\replay.cmd
```

Use the supplied reviewable script and approved setup. Do not copy a terminal prompt or trailing sentence punctuation. State the working directory before the command. Keep expected output separate from an actual observation.

Open the Command Palette and choose **Markdown: Open Preview to the Side**. Compare a heading, the command block, a relative link, and a small table in both views. Use `[hardware reference](docs/hardware.md)` from the root README. The same path in a nested document may need a different destination because relative links start from the containing file.

Make a table with Action, Establishes, and Limitation columns. One row can explain that a firmware cross-build establishes a build result for the selected inputs while leaving physical operation unverified. The table helps compare categories; long troubleshooting prose belongs under its own heading.

Seed a formatting fault in the exercise copy by removing the command's opening fence. Preview the page, identify how the reader's experience changed, then restore the fence and copy the command again. This checks the document's function, not just its appearance. Save your source and preview observations with the exercise.

CP02 prints the fixed expected line `{"type":"sample","synthetic":true,"temperature_c":25.00}`. This is expected output, not a claimed result of your run. The fixture parser and shared normal/fault policy arrive at CP05; host assertions arrive at CP07.

## Resources and completion

Use the Sensor Monitor `CP02` download and its `README.md`; project paths in this lesson are relative to that root. Read Chapter 8 for the full lab and explanatory review answers. Figure IDs: SS08-01, SS08-02. Primary references: [Adafruit product 5477](https://www.adafruit.com/product/5477) and [GitHub Markdown tables](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables). Complete the [exercise](exercise.md), preserve actual evidence, and use the separate instructor answer key for self-check after attempting the task. Narration scripts are production sources; final transcripts must match the actual narrated edit.
