Paper Markdown LabPlain text / inspection desk
Read the structure before trusting the handoff

Check a Paper’s Markdown Structure Before Adding It to Your Research Notes

After converting a paper to Markdown, check whether its resources traveled with it. A parser’s readable text is useful, but a missing figure can remove the evidence a paragraph points to. This exercise uses synthetic material rather than a customer document.

Install and run the sample

git clone https://github.com/kolmo2026/paper-markdown-check.git
cd paper-markdown-check
npm ci
node src/cli.js examples/broken-paper.md

Use Node 24 or newer. Installing dependencies requires a network connection; checking a local file afterward does not. The sample includes these lines:

# Paper
### Methods

Text.

![Pipeline](figures/pipeline.png)

[Dataset][data]

Read the report

WARNING line 2 [heading-jump] Heading level jumps from 1 to 3: Methods
ERROR line 6 [missing-file] Missing local file: figures/pipeline.png
ERROR line 8 [undefined-reference] Undefined explicit reference: data
2 errors, 1 warnings

The warning is a navigation concern, not proof of a failed conversion. The missing local path and undefined reference are mechanical errors. The command returns exit code 1 because errors exist. It does not alter the file or invent a substitute figure.

Repair only what you can justify

  1. Change Methods to a level-two heading if that reflects the intended hierarchy.
  2. Restore the real figure at the referenced relative path, or correct the path to an existing file. Do not add a blank image merely to get a clean report.
  3. Add a reference definition such as [data]: https://data.invalid/example. This reserved example address is synthetic; the checker does not fetch it or certify the dataset.
  4. Run node src/cli.js examples/clean-paper.md --json for the bundled clean example. It reports zero errors and warnings.

If you need to generate the Markdown first, KolmoPDF’s cloud PDF-to-Markdown service is a related product from the same maintenance ecosystem. That service uploads the PDF; this separate checker examines local output and contains no PDF parser.