Mahope tools: EUComply Clean Copy DeskUptime Transmute BugBottle All tools
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

Stil et spørgsmål om EU-compliance — EAA, NIS2 eller GDPR — og få et praktisk svar på få sekunder: Spørg Compliance-AI’en →

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

  • 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: &amp;, &lt;, &nbsp; 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:

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.

Skal din hjemmeside holde sig online? DeskUptime er et gratis desktopprogram til uptime- og SSL-certifikatovervågning for macOS, Linux og Windows.