De tre regler din konverter skal følge
- 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).
- 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. - 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
- Tomme elementer: <p></p> må ikke blive til en løs stjerne eller hash.
- Inline-formattering: fed/kursiv/kode skal mappes hver for sig,
og indlejret kode må ikke parses videre (ingen fed inde i
kode). - Entiteter: &, <, skal afkodes — men kun ét niveau.
- Hvide mellemrum: HTML kollapser dem, markdown gør ikke. Trim og normalisér inden output.
Vil du se resultatet i praksis? Clean Copy bruger samme regler i sin HTML-til-markdown-kerne — prøv den på din egen tekst:
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.
Relateret: HTML til markdown · HTML til markdown i CLI · Kolonnejustering · HTML til Markdown-API
Skal din hjemmeside holde sig online? DeskUptime er et gratis desktopprogram til uptime- og SSL-certifikatovervågning for macOS, Linux og Windows.