Markdown-forhåndsvisning og HTML-konvertering

Se Markdown-en din gjengitt side om side og kopier HTML-en – forhåndsvisningen kjører i sandkasse i nettleseren din.

Slik bruker du verktøyet

  1. Skriv eller lim inn Markdown til venstre – forhåndsvisningen til høyre oppdateres mens du skriver.
  2. Kryss av for «Behandle enkle linjeskift som
    » hvis du skriver for et chattefelt eller et kommentarfelt, der hver Enter starter en ny linje.
  3. Klikk «Konverter til HTML» for å vise HTML-kildekoden, og kopier den eller last ned en ferdig .html-fil du kan åpne.

Om dette verktøyet

Markdown er ren tekst med noen få tegnkonvensjoner – en firkant for en overskrift, stjerner for utheving, en bindestrek for et listepunkt – som en konverterer gjør om til HTML. Dette verktøyet gjengir den med marked i GitHub Flavored Markdown-modus, så det folk faktisk skriver overlever: tabeller, kodeblokker med språkmerkelapp, oppgavelister, gjennomstreking og bare URL-er som blir lenker. Forhåndsvisningen står ved siden av redigeringsfeltet og tegnes på nytt mens du skriver, så du fanger den ødelagte tabellen eller den uavsluttede kodeblokken mens du skriver, ikke etter at du har pushet README-en.

En Markdown-konverterer må ta én sikkerhetsavgjørelse, og denne siden sier den rett ut i stedet for å pynte på den: marked renser ingenting. Markdown tillater rå HTML med vilje, så en script-tagg, et bilde med en onerror-handler eller en lenke som peker på en javascript:-URL kommer ut av parseren nøyaktig slik den gikk inn. Å gjengi det inne i denne siden ville vært et hull for cross-site scripting. I stedet for å skrive en renser tegnes forhåndsvisningen inne i en iframe med tomt sandbox-attributt – alle restriksjoner slått på. Uten allow-scripts kjører ingenting og ingen hendelseshåndterer utløses; uten allow-same-origin ligger rammen i et ugjennomsiktig opphav og kan ikke lese denne siden, informasjonskapslene eller lagringen dens. En Content-Security-Policy med default-src 'none' inne i rammen er et andre, uavhengig lag. En renser ville vist deg noe annet enn HTML-en du er i ferd med å kopiere, og i en forhåndsvisning er det nettopp feil bytte.

Det som med vilje ikke renses er selve HTML-en, for det er produktet: kopiering og nedlasting gir deg nøyaktig det marked produserte. Så når Markdown-en din inneholder noe som kan kjøre kode, navngir verktøyet det – script, iframe, form, en on-handler, en javascript:-URL – og minner deg på at isolasjonen stopper ved forhåndsvisningen. Publiserer du den HTML-en et sted, og Markdown-en kom fra noen andre, følger risikoen med. Alt kjører i JavaScript på din egen enhet, og ingenting du skriver lastes opp. Den eneste forespørselen forhåndsvisningen sender er en du selv har skrevet, når et bilde peker på en ekstern URL. Lenker i forhåndsvisningen kan ikke klikkes: det er prisen for sandkassen, og for en forhåndsvisning er den lav.

Ofte stilte spørsmål

Forlater Markdown-en min nettleseren?

Nei. Teksten tolkes og gjengis av JavaScript på enheten din: ingenting sendes til noen server, lagres eller logges. Koble fra internett etter at siden er lastet, og verktøyet virker fortsatt.

Renser dette verktøyet HTML-en?

Nei, og det later ikke som om det gjør det. Forhåndsvisningen er isolert i en iframe med sandkasse, så ingenting kjører der, men HTML-en du kopierer er nøyaktig det parseren produserte. Kom Markdown-en fra noen andre, må du rense den før du publiserer.

Hvorfor kan ikke lenkene i forhåndsvisningen klikkes?

Fordi forhåndsvisningsrammen har alle sandkasserestriksjoner på, og navigasjon er én av dem – den samme bryteren som hindrer en javascript:-lenke i å utløses. Kopier HTML-en hvis du trenger lenkene aktive.

Hvilken Markdown-variant støttes?

GitHub Flavored Markdown: CommonMark pluss tabeller, kodeblokker med språkmerkelapp, oppgavelister, gjennomstreking og automatiske lenker. Overskrifter får ingen id-attributter, så ankrene GitHub lager for en innholdsfortegnelse mangler.

Hva er forskjellen på den kopierte HTML-en og den nedlastede filen?

Kopier gir deg HTML-fragmentet, til å lime inn i en side du allerede har. Nedlastingen pakker det inn i et komplett dokument med UTF-8-tegnsett og lesbar styling, så det åpnes riktig på egen hånd, med aksentene i behold.

De enkle linjeskiftene mine forsvant. Hvorfor?

Fordi et enkelt linjeskift i vanlig Markdown bare er et mellomrom – avsnitt skilles med en blank linje. Chattefelt og kommentarfelt bryter linjen ved hver Enter, så kryss av for «Behandle enkle linjeskift som
» når du skriver for et slikt felt.

Relaterte verktøy

Lange lenker? Forkort dem gratis

Vai.la gjør enhver URL om til en kortlenke med klikkstatistikk, QR Code og din egen biolink.

Vai.la er ikke ansvarlig for hvordan verktøyene brukes, eller for beslutninger tatt på grunnlag av resultatene.