UDVIKLER · MARKDOWN

Byg en HTML til
markdown-konverter

At konvertere HTML til markdown lyder som et regexp-job — indtil du møder indlejrede lister, tabeller hvis indhold selv indeholder pipes, og blokcitater i flere niveauer. Her er reglerne din konverter skal følge, og faldgruberne den skal overleve.

Opdateret august 2026 · 6 minutters læsning

De tre regler din konverter skal følge

  1. Lister: gå rekursivt gennem <ol>/<ul>. Indryk hvert niveau med to mellemrum pr. dybde, og bevar nummerering ved ordnede lister (start-attributten tælles med).
  2. Tabeller med pipes: escape alle | i celletekst som \|, før cellerne samles med nye pipes. Uden det ødelægger én pipe i én celle hele tabellen.
  3. Blokcitater: præfiks hver linje i citatet med > — inklusive tomme linjer og indhold af under-elementer. Niveauer adskilles med ekstra >.
<td>pris | moms</td>
→ | pris \| moms |     # rigtigt
→ | pris | moms |     # forkert: tabellen knækker

Faldgruber udover de tre

Vil du se resultatet i praksis? Clean Copy bruger samme regler i sin HTML-til-markdown-kerne — prøv den på din egen tekst:

Test konverteren nu →

Læs videre

Læs også: den komplette HTML-til-markdown-guide, CLI-versionen til terminalen og kolonnejustering i tabeller.

Ofte stillede spørgsmål

Skal jeg skrive min egen konverter?

Hvis du bare skal konvertere indhold lejlighedsvis: nej, brug en færdig løsning (Clean Copy, turndown.js eller pandoc). Byg selv kun hvis du har specielle krav — fx en bestemt frontend i CI eller egne markdown-dialekter.

Hvorfor fejler regex-baserede konvertere på tabeller?

Fordi markdown-tabeller bruger | som kolonneafgrænser. En tabelcelle der indeholder teksten "pris | moms" ødelægger tabellen, medmindre pipen escapes som \|. Naive konvertere glemmer det.

Hvad med indlejrede lister?

HTML tillader vilkårlig dybde; markdown bruger indrykning. Hvert niveau skal indrykkes konsistent (typisk 2 eller 4 mellemrum), og blandede ordnede/uordnede lister kræver at man holder styr på nummereringen.

Hvor svært er blokcitater?

Enkelte niveauer er lette (> foran linjen). Flere niveauer kræver >>, og citater der indeholder lister eller overskrifter skal have præfikset på hver eneste linje — også tomme.

Prøv konverteren uden at bygge selv →

Relateret: HTML til markdown · HTML til markdown i CLI · Kolonnejustering