Markdown course · Advanced

Maintain technical Markdown across tools

Write reviewable source, document code and mathematics, and check what survives in another renderer.

Maintained by VeloWrite · Reviewed

Use this lesson for documents that will be revised or read in more than one tool. It assumes you can already write headings, lists, and tables. The examples show how to keep source changes reviewable and catch problems when another renderer handles the same file.

Make revisions easy to inspect

For prose reviewed in version control, try putting each sentence on its own source line. Many Markdown renderers join those lines into one paragraph, while a diff can isolate the sentence that changed. Check your destination's line-break behavior before applying the convention to an existing collection.

The source document lives in the project folder.
Keep the assets beside it when moving the project.
Review the exported copy before delivery.

Use blank lines to separate paragraphs as usual. The point is to make the changes easier to read, so avoid rewrapping an entire file during an unrelated correction. If a team already has a source convention, follow it consistently or discuss a separate formatting change.

Keep punctuation literal when the subject is Markdown syntax. Backticks suit a filename or short expression. Backslash escapes help when an asterisk or hash should appear as an ordinary character. A fenced block is easier to read when several lines must remain exact.

Use \*literal asterisks\* in an explanation of emphasis.

The source is `docs/release-notes.md`.

Reuse links without hiding their meaning

Reference links can make a source paragraph easier to edit when the same destination appears repeatedly. Keep the definitions near the relevant section or in a predictable place at the end. Use labels that explain the destination without requiring the author to remember a numbering scheme.

Read the [release checklist][checklist] before delivery.
Return to the same [checklist][] when reviewing a correction.

[checklist]: https://example.com/release-checklist

Check that the destination renderer supports the form you use. A reference that renders correctly in one tool still needs testing in the publishing system or converted output that readers will see.

Headings also become link destinations in many tools. Give them names that describe a durable subject. If another document already links to a heading, renaming it can break that route. Anchor-generation rules vary between renderers, so copy and test the actual section link when it matters.

Write code examples readers can use

A fenced code block preserves spacing and separates the example from the surrounding explanation. Add a language label after the opening fence when it is useful for highlighting. Introduce the example with what it does and explain the expected result nearby.

```python
print("Document ready for review")
```

Keep commands separate from their output. A reader should not copy a shell prompt or a success message as part of a command. If an example changes files or requires a particular working directory, explain that before the block. Use harmless sample values in documentation and keep credentials out of examples.

When teaching more than one language, label each version and make clear whether the blocks are alternatives or a sequence. Earlier VeloWrite material described automatic tabbed examples in a previous product edition. Do not rely on that presentation when preparing a portable document; each example should still make sense when rendered as an ordinary block.

Inspect long lines in the preview and output. A clipped argument can make an otherwise correct command unusable. If you split a command, use the continuation syntax for the stated shell rather than inserting a visual line break that changes what gets executed.

Put the explanation beside the formula

Math syntax is an extension whose rendering depends on the tool. In a compatible renderer, single dollar signs commonly mark inline expressions and double dollar signs mark a display equation. Use inline math when the expression belongs naturally in a sentence. Give a longer equation its own block.

The mean is written as $\bar{x}$.

$$
\bar{x} = \frac{1}{n}\sum_{i=1}^{n} x_i
$$

Here, n is the number of observations and x_i is one observation.

The expression uses a fraction, a sum, and subscripts. Explain each symbol near its first use. A reader should not need to search an earlier page to find out whether a variable represents a count, a distance, or a price.

When an equation does not render, check the opening and closing delimiters, braces, and command spelling first. Reduce the expression to the smallest part that fails, then add the surrounding terms again. Avoid assuming that a TeX command accepted by one renderer is available everywhere.

Compare both the preview and the intended output with the source. Some export paths simplify advanced notation. If a required expression remains literal or loses information, revise the delivery plan rather than sending a mathematically misleading result. The same portability check applies to diagrams and custom callouts.

Give recurring documents a useful structure

A small template helps readers compare documents written at different times. For a decision record, include the context, the decision, its consequences, and an owner. Record the constraint that led to the choice so someone can later judge whether it still applies.

# Decision: Keep the editable source as Markdown

## Context

The document must remain readable in a plain text editor.

## Decision

Keep the source in the project folder with its assets.

## Consequences

Review each delivery format separately.

## Owner

Name the person maintaining this decision.

A runbook needs a different structure. Put the preconditions before the procedure, state what a successful check looks like, and describe what to do if it fails. Keep long background explanations outside the urgent sequence. Commands without expected outcomes leave the reader guessing whether it is safe to continue.

Release notes should describe behavior a user can recognize. Separate completed changes from planned work, and mention migration steps when they are needed. Avoid copying an internal commit list without explaining its effect on the reader. Keep the note with the source so a later correction can be reviewed.

Test the form the reader will receive

Headings, paragraphs, links, and lists are a useful portable base. Tables, math, diagrams, task lists, and custom syntax need closer attention because renderers handle extensions differently. A polished local preview is only one rendering of the source.

Choose a representative section containing the features your document relies on. Convert it or prepare it for the actual destination, then compare its meaning with the source. Check whether code remains copyable, links reach the right section, and formulas retain their variables and operators.

Keep the Markdown source understandable when an extension is unavailable. Explain a diagram's conclusion in text and name the variables around an equation. This helps readers and gives you something usable to deliver when the destination cannot reproduce the original presentation.

For the next step, use the conversion article to plan a reviewed output, or the automation article to connect an established publishing workflow. Return to the intermediate guide for asset paths and document-level review.