Det tekniske grunnlaget for gjengivelse av Markdown-lister
Markdown er blitt standardmarkeringsspråket for moderne programvaredokumentasjon, tekniske spesifikasjoner, personlige kunnskapsbaser og utviklerkommunikasjon. Punktlister på ett nivå (- item) og nummererte lister (1. item) ser enkle ut, men dypt nestede dokumentdisposisjoner i flere lag gir betydelig formateringskompleksitet. Ulike Markdown-tolkere — som CommonMark, GitHub Flavored Markdown (GFM), Python-Markdown og Pandoc — håndhever strenge og finmaskede regler for valg av listemarkør, forhold mellom tabulator og mellomrom, og innrykk av underblokker.
Når lister limes inn mellom ulike tekstredigerere (som VS Code, Sublime Text, Xcode, Apple Notes eller Microsoft Word), oppstår stille innrykksfeil. Ett manglende mellomrom på et underelement får Markdown-kompilatoren til å tolke en nestet undernode som et punkt på toppnivå eller som et frittstående avsnitt. Formatereren for nestede lister og innrykk i Utiliome fjerner disse tolkingsavvikene ved å lese inndatastrukturen som AST (Abstract Syntax Tree) og gjenskape standardisert Markdown som følger spesifikasjonen.
Innrykksregler: 2 mellomrom mot 4 mellomrom
En av de vanligste diskusjonene i teknisk dokumentasjon er om underlister skal rykkes inn med 2 eller 4 mellomrom per nivå. Valget avhenger av spesifikasjonen til Markdown-tolkeren du sikter mot:
Innrykksregelen med 2 mellomrom (standard GFM og Prettier): I moderne nettdokumentasjon som GitHub, Docusaurus, Nextra og Obsidian er 2 mellomrom per innrykksnivå den anerkjente standarden. Konvensjonen med 2 mellomrom legger underinnholdet under starten av teksten i foreldrepunktet:
- Top-level item 1 - Nested child item 1.1 - Nested child item 1.2 - Deeply nested grandchild item 1.2.1 - Top-level item 2Innrykksregelen med 4 mellomrom (streng CommonMark og Python-Markdown): Strenge CommonMark-implementasjoner krever at underblokker, kodeutdrag og nestede lister inne i nummererte lister rykkes inn med 4 mellomrom (eller ett helt tabulatorstopp) for å sikre at de hører til foreldreblokken:
1. First ordered step in workflow - Associated sub-bullet A - Associated sub-bullet B 2. Second ordered step in workflowFeller med tabulator mot mellomrom: Å blande fysiske tabulatortegn (
\t) med ASCII-mellomrom (\x20) er den vanligste årsaken til ødelagt Markdown-gjengivelse. Nettmotorer oversetter tabulatorer ulikt (ofte som 4 eller 8 visningskolonner), slik at nestede punkter hopper visuelt ut av justeringen. Utiliome gjør automatisk alle tabulatortegn om til jevne mellomromstrenger etter den innstillingen du har valgt.
Normalisering av punkttegn og retting av nummererte sekvenser
Markdown støtter tre ulike punkttegn for usorterte lister: bindestrek (-), asterisk (*) og plusstegn (+). Alle tre gir gyldige HTML-elementer for usorterte lister (<ul>), men å blande markørtyper i samme dokument gir visuell rot og feiler automatiske lintersjekker (som regelen MD004 i markdownlint).
I tillegg ryker nummereringen i sorterte lister ofte under gjentatt redigering. Forfattere limer inn punkter midt i nummererte sekvenser, eller støtter seg på autoøkende 1.-syntaks:
<!-- Unformatted / Broken Input -->
* Feature A
- Feature B
+ Feature C
1. Initial step
1. Second step (copied from draft)
4. Out-of-order step
Formatereren i Utiliome normaliserer alle markører i usorterte lister til det samlede tegnet du har valgt (for eksempel at hvert punkt blir -) og nummererer sorterte sekvenser på nytt i rekkefølge (1., 2., 3.) eller standardiserer dem til ensifrede trinn (1., 1., 1.) etter teamets retningslinjer for kodegjennomgang.