Bedste muligheder for anvendelse af Markdown i WordPress i 2022

Opdateringer siden første udgivelse:

  • 21/06/2022: Tilføjede uddybende informationer i afsnittet vurdering efter feedback fra Søren Jensen. Den oprindelige tekst var lidt misvisende. Yderligere er nogle formuleringer i indlægget blevet præciseret. Der er også tilføjet en mere afrundende tekst.

Indledning

Dette indlæg er af lidt teknisk karakter. Det er skrevet på baggrund af at jeg i meget lang tid ledte efter en god Markdown-løsning til WordPress 5 og senere. Hvis du allerede nu synes, at det du læser er helt sort snak, så vil jeg meget kort opridse situationen for dig herunder. Jeg vil på et senere tidspunkt fortælle meget mere om min begejstring for Markdown, og forklare meget mere om hvad det er, og hvilke muligheder Markdown giver. Men alt det vil fylde for meget til dette blogindlæg.

Min problemstilling

Før WordPress 5.0 brugte jeg et plugin kaldet WP-Markdown. Dette plugin er desværre ikke længere brugbart, da udvikleren ikke har opdateret det siden 2017, og da WordPress 5 udkom ophørte kompatibiliteten med WordPress. Ingen har så vidt jeg ved overtaget dette projekt.

Det smarte ved dette plugin var, at alt kunne bruges med Markdown. Markdown blev automatisk genereret, og en HTML-udgave var altid gemt i databasen. På mindre nørdet dansk betyder det: Alt indhold blev konverteret fra HTML til Markdown, men altid gemt som HTML, hvilket betød, at hvis pluginnet blev deaktiveret så ville HTML blive vist i stedet for Markdown.

Nogle kritikere har nævnt, at ulempen ved dette plugin var, at man ikke kunne fravælge Markdown på nogen måde. Det kan der være en pointe i, men for langt størstedelen af mit arbejde fungerede det fremragende.

Da WordPress 5 og den helt nye visuelle editor kaldet Gutenberg blev udgivet var der store tilgængelighedsproblemer. Disse er gradvist blevet løst med tiden. Gutenberg editoren kan nu bruges, hvis man ønsker det og vænner sig til at bruge den. Jeg vil måske på et senere tidspunkt skrive meget mere om mine erfaringer med Gutenberg-editoren.

Man kan også bruge den klassiske editor hvis man installerer et plugin kaldet Klassisk editor dette plugin fungerer stadig med WordPress 6.0, men det vil muligvis blive udfaset med tiden, da Gutenberg-editoren forventes at erstatte alt det som den klassiske editor kan.

Mit problem var altså, at jeg lige pludselig havde mistet et af mine foretrukne værktøjer i WordPress, og det gjorde meget af mit arbejde temmelig langsommeligt. Derfor gik jeg i gang med at undersøge muligheden for at finde alternative plugins, som kunne give mig en mulighed for at arbejde med Markdown.

Jeg fandt flere plugins, som jeg har skrevet om nedenfor. Jeg har frasorteret nogle få i dette indlæg. Grunden hertil er, at flere af disse plugins udelukkende virkede med den klassiske editor, og flere af dem er desværre ikke blevet opdateret i et år eller mere, derfor antager jeg, at de indenfor kort tid vil give lignende problemer, som jeg beskrev med WP-Markdown. Jeg har dog efterladt en enkelt undtagelse.

Min vej mod en løsning

Jeg har herunder samlet mine notater omhandlende de plugins jeg har testet. Alle plugins virker med Gutenberg-editoren. Hvis et plugin fanger din opmærksomhed, så kan du trykke på linket for at læse mere.

Editors Kit][

Editors kit er et plugin, som rummer adskillige funktioner. Her fokuserer jeg kun på delen som handler om Markdown.

Editors Kit har begrænset support for Markdown til brug ved layout. Der kan kun laves tekstformatering såsom overskrifter, fed- eller kursiv tekst, indskrivning af ren kode og lignende. Links og mere avancerede funktioner ser ikke ud til at være understøttet.

Så snart formateringen er genkendt som Markdown bliver den efterfølgende tekst konverteret til blokke, som svarer til Markdown-syntaks.

En ret smart funktion, men for mig, som gerne vil læse og redigere i Markdown giver det lidt udfordringer.

Jeg fravalgte ret hurtigt Editors Kit. Både fordi mulighederne med Markdown var meget begrænsede, og fordi jeg ikke kunne genlæse min Markdown-syntaks igen, når først jeg havde skrevet den.

Import Markdown og Ultimate Markdown

Forgængeren til Ultimate Markdown er Import Markdown som er blevet brugt i den klassiske editor.

I Import Markdown er det kun muligt at importere Markdown-dokumenter som allerede er gemt som filer på computeren. Når der vælges import, bliver dokumentet uploadet og oprettet som indlæg uden mulighed for tilpasning af nogen art.

Dokumentet konverteres til HTML, og dette kan man efterfølgende redigere. Men det er ikke muligt at genskabe Markdown-syntaksen igen, når først et dokument er blevet importeret.

Dette plugin virker IKKE med Gutenberg editoren, men kun med den klassiske editor.

Tanken bag Ultimate Markdown er at man skriver sine dokumenter, importerer dem som dokumenter i WordPress og derefter tilknytter dokumentet til et indlæg. Når dette er sket, vil al den Markdown, som er skrevet blive konverteret til blokke, som man kan arbejde med direkte i editoren.

Ideen er faktisk ret god, men i praksis er der nogle udfordringer i forhold til min måde at arbejde på.

Jeg kan ikke med dette plugin skrive Markdown direkte i Gutenberg-editoren og derefter udgive det. Jeg skal først uploade dokumentet, derefter skal jeg importere det i indlægget, som jeg er ved at skrive. For at gøre det, må jeg først navigere til knappen: "Indlæg" og her vælge: "Import" eller "Load Markdown". Import kan bruges hvis dokumentet ikke allerede er uploadet. Hvis jeg vælger "Load" kan jeg fra en liste af gemte dokumenter tilknytte det dokument, som jeg tidligere uploadede. Hvis jeg har valgt "Import" så vil filens indhold automatisk blive vist i Gutenberg-editoren som blokke. hvis jeg har valgt "Load Markdown" skal jeg trykke på "Submit" og afslutningsvist vælge "Udgiv." Alternativt kan dokumenter oprettes fra menupunktet "Documents" fra kontrolpanelets forside. Dette beskrives senere, så upload fra computeren er ikke eneste udvej. Dog undgår man ikke at skulle tilknytte det oprettede dokument uanset hvilken metode man vælger.

Dokumenter kan oprettes og redigeres fra en dokument oversigt. Det smarte er her, at man kan se resultatet under det edit-felt som man skriver sin Markdown-syntax i. Hvis man redigerer eller opretter et dokument, kan man således hurtigt rette syntaksen til.

Hvis man importerer et dokument, så vil filnavnet blive anvendt som titel. Eksempel: Importerer man filen: Hej verden.md får man et dokument med titlen: Hej verden

ønsker man at ændringerne skal vises i det tilknyttede indlæg, skal man åbne indlægget, vælge "Indlæg" og her igen vælge "Load Markdown". Så skal man trykke "Submit" før end indlæg og dokument viser samme indhold.

Der findes en Pro version som tilbyder få funktioner, so måske for nogle vil være interessante. Eksempelvis er der mulighed for at eksportere indlæg til Markdown-filer, hvilket for nogle kunne være en ret genial måde at have en sikkerhedskopi af indlæg på samtidigt med at formateringen i Markdown bevares.

Ultimate Markdown kan for nogle være en god løsning i situationer, hvor man gerne vil arbejde i Markdown, men stadig have adgang til sin rå Markdown-syntax samtidigt med at al formatering bliver konverteret til de korrekte blokke i Gutenberg-editoren.

Jeg kan se muligheder her, hvis man arbejder med avancerede WordPress-opsætninger, hvor man har specielle indlægstyper (WordPress kalder dette Custom Posttypes).

For mit eget behov er der lidt for mange trin, før end mit arbejde er kommet fra min computer og ud til den, som skal læse det. Jeg vil dog gerne følge udviklingen af dette plugin. Hvis det var muligt at ændringer i dokumenterne automatisk blev opdateret i de tilknyttede indlæg, så så jeg nok et større potentiale for mig som en fast bruger af Ultimate Markdown.

Jetpack

Jetpack er et meget kendt plugin i WordPress-miljøet.

Jetpack har et væld af forskellige funktioner, men også her fokuserer jeg kun på delen omkring Markdown.

Bemærk: For at bruge Jetpack, skal du oprette en konto på [Wordpress.com](https://wordpress.com] under oprettelsen skal du sørge for, at du ikke opretter en WordPress.com-blog. Denne er ikke nødvendig for at Jetpack vil fungere. Når du har oprettet din konto kan du aktivere Markdown for skrivning samt for kommentarer.

Slå Markdown til ved at aktivere det under Jetpack, Settings, Writing og marker checkboksen som hedder: "Write posts or pages in plain-text Markdown syntax"

Ønsker du at kommentarer fra besøgende også må indeholde Markdown skal du finde punktet: Discussion og her markere checkboksen: "Enable Markdown use for comments."

Markdown kan skrives ved hjælp. af blokken /Markdown. Blokken kan skrives som første blok efter titlen i Gutenberg editoren. Du kan skrive så megen Markdown du lyster. Gem dit arbejde og al Markdown konverteres til HTML. Skulle du deaktivere Markdown i Jetpack senere vil du kunne konvertere blokkens indhold til HTML.

hvis du opretter nye indlæg, sider eller andet i den klassiske editor, vil Markdown også fungere her. Vær dog opmærksom på, at det er en god idé at skifte til kodevisningen i editoren, da man ellers kan få uventede resultater ved at skrive Markdown direkte i den visuelle del af den klassiske editor.

hvis du skifter til kodevisningen i Gutenberg-editoren vil Markdown også virke, hvis du indskriver det direkte i editoren. Der sker ingen formateringsændringer, og dit arbejde bliver gemt som en klassisk blok. Du kan dog ikke kombinere andre blokke på denne måde.

Således kan du ikke starter med at lave en klassisk blok i Markdown via kodedelen af Gutenberg-editoren, for derefter at skifte til den visuelle blokeditor og oprette en Markdown-blok. Men holder du dig til den ene eller anden metode, så vil det gå godt.

Du kan sagtens have flere Markdown-blokke i samme indlæg i editoren. Det er smart, hvis du har brug for at indsætte andet indhold såsom kontaktformularer eller anden funktionalitet, som bryder med Markdown-skrivningen.

Mytory Markdown

Mytory Markdown er det eneste plugin, som jeg har medtaget her til trods for, at dette plugin stadig ikke understøtter Gutenberg-editoren. Men jeg har medtaget det, fordi jeg har brugt det i længere tid i den klassiske editor.

Vil du bruge Mytory Markdown skal du forinden installere Klassisk editor og sørge for, at du altid opretter indlæg osv. i den klassiske editor. Ellers vil Mytory Markdown ikke fungere.

Mytory Markdown har to funktioner. Den ene giver mulighed for, at indlæg automatisk udgives, hvis en URL til Github matcher. Ligeledes findes et andet plugin [Mytory Markdown for Dropbox][] som kan forbindes til din Dropbox-konto og herefter kan filer gemmes og opdateres automatisk som indlæg på din webside.

Mytory Markdown kan dog også arbejde med Markdown, som kan skrives direkte ind i et særskilt edit-felt i editoren. For at gøre brug af denne funktion skal man finde overskriften: "Markdown File Path" og herunder vælge radioknappen: Text.

Når man har skrevet sin Markdown-syntaks, skal man altid huske at vælge "Update editor content"

Herved konverteres den anvendte Markdown-syntaks til HTML, som vises i det almindelige edit-felt

Det geniale er dog, at al Markdown forbliver i sit eget felt, som før nævnt, og det gemmes med indlægget. Det betyder, at det er ganske let at redigere i den Markdown-syntaks man arbejder med. Eneste udfordring man kan have er, at man altid skal trykke på "Update editor content" og at man kun må skrive i feltet, hvor Markdown-syntaksen er. Hvis man forsøger at redigere i den konverterede tekst, så er der ingen muligheder for at sammenflette de to tekster igen, så her skal man vælge, om man skriver i Markdown eller HTML.

Vurdering

Efter således at have skitseret flere af de plugins som jeg har testet og fundet siden 2018, hvor WordPress 5.0 udkom, og jeg derefter gik på jagt efter nye veje til at arbejde med Markdown er det tid til at samle op.

  • Editors Kit blev ret hurtigt fravalgt, da dette plugin slet ikke kunne stå mål med al den Markdown-formatering som jeg benytter. Så der brugte jeg ikke megen tid. Specielt fordi jeg heller ikke kunne redigere i Markdown, når først formateringen var sket i Gutenberg-editoren. Dette er måske ikke et stort problem for nogle, men for en "Markdown-nørd" som mig duede denne løsning ikke.

  • Mytory Markdown er et plugin, som jeg fandt i 2019, og brugte i lang tid. Helt frem til 2021. Jeg var glad for dette plugin, fordi det var ret tæt på, hvad jeg kendte fra tidligere. Desværre gik der lang tid, før der kom opdateringer til dette plugin, og jeg blev lidt anspændt, fordi der ikke skete noget i forhold til understøttelse af Gutenberg-editoren. Særligt fordi man tidligere fra WordPress-udviklernes side nævnte, at den klassiske editor ville blive udfaset i 2021. Dette er dog ikke sket endnu, og siden denne udmelding er der kommet adskillige nyere til, som afviser at den klassiske editor udgår helt og aldeles som plugin og mulighed i WordPress.

  • Ultimate Markdown er også en meget spændende mulighed. Dog blev jeg frustreret over at skulle igennem så mange omveje blot for at skrive og udgive indhold. Dog kan jeg stadig se et stort potentiale i dette plugin. Jeg kan godt lide tanken om, at man kan få konverteret Markdown til blokke i Gutenberg-editoren. hvis man køber Pro-versionen [Ultimate Markdown Pro][] så ville man måske blive glad for at kunne eksportere allerede udgivne indlæg som Markdown-dokumenter.

    For mig var denne mulighed ret tiltrækkende, men ikke nok til at jeg ville kaste penge efter projektet på nuværende tidspunkt. Det ville jeg måske gøre, hvis processen kunne blive gjort lettere, og at dokumenterne kunne opdatere indlæg, hvis de i forvejen var tilknyttede. Så ville jeg overveje at købe en pro-version. Prisen er omkring 19 Amerikanske dollars, og ved at købe et plugin kan man være med til at sikre dets overlevelse.

  • Jetpack er et plugin, som jeg har haft et lidt anstrengt forhold til. Jeg testede det allerede i 2015, hvor jeg måtte fravælge det, fordi der opstod nogle problemer på en WordPress-side, som gjorde, at Markdown ikke blev konverteret til HTML, når Jetpacks Markdown var deaktiveret. Det betød, at jeg på daværende tidspunkt ikke var sikker på, at jeg kunne fravælge Jetpack som en mulig Markdown-løsning, hvis min Markdown-formatering ikke blev konverteret tilbage til ren HTML igen.

    Det var dog helt tilbage i version 4 af Jetpack, og meget er sket siden har jeg erfaret. Jeg har forsøgt at genskabe fejlen, men det har ikke været muligt med version 11 af Jetpack og WordPress 6.0. Derfor tror jeg ikke, at dette problem findes længere.

Vi er naturligvis alle forskellige, og kan have forskellige måder at arbejde på. Men her er mit valg i forhold til en fremtidig Markdown-arbejdsgang i WordPress.

Jeg vælger at bruge Jetpack og at have Mytory Markdown aktiveret. Disse to plugins konflikter ikke med hinanden. Jetpack har rykket sig med tigerspring siden jeg sidst eksperimenterede med den Markdown-understøttelse som dette plugin giver, og da Jetpack tilbyder mange funktioner som mange WordPress-brugere anvender, så vil dette plugin næppe blive lagt i graven de næste mange år frem i tiden.

Jetpack understøtter desuden både Gutenberg-editoren og den klassiske editor. Det betyder, at jeg kan skifte imellem de to editorer afhængigt af, hvad jeg behøver. Det er faktisk virkelig smart. Hvis man har Klassisk editor installeret, så har man mulighed for at indskrive Markdown direkte i editoren. Ligeså kan man skifte visningen i Gutenberg-editoren til kode-visning, og her kan man skrive sin Markdown-syntaks, ligesom hvis den klassiske editor var anvendt. Her må jeg fremhæve, at jeg har haft Klassisk editor installeret og aktivt på alle de websider, som jeg har testet med, så jeg ved ikke om der nødvendigvis er en sammenhæng her.

Mytory Markdown kan jeg stadig bruge, hvis jeg vil anvende den klassiske editor, og ikke ønsker at anvende Jetpacks mulighed for Markdown direkte i kode-editoren, som beskrevet i forrige afsnit. Jeg kan her vælge at indskrive Markdown og konvertere resultatet til HTML, hvilket betyder, at så længe dette plugin fungerer, så har jeg en god mulighed for en robust Markdown-løsning, hvor jeg både kan arbejde i Markdown eller i HTML. Men jeg kan sagtens deaktivere og fjerne det, hvis der ikke kommer flere opdateringer, og hvis den klassiske editor sendes til de evige plugin-jagtmarker en dag. Her skal det præciseres, at Mytory Markdown og Jetpack kan køre uafhængigt af hinanden. Det er altså udelukkende et temperamentsspørgsmål hos dig, som arbejder, hvad der fungerer bedst for dig. Jetpack kan, som nævnt i forrige afsnit, let erstatte Mytory Markdown, men jeg har valgt at beholde muligheden i dette plugin, hvis jeg skulle opleve problemer med Jetpack i mit arbejde. Dette tror jeg nu er meget usandsynligt, men jeg kan godt lide at gå med livrem og seler.

Afslutningsvis skal det nævnes, at der findes mange andre plugins, som kan fungere som deciderede Markdown editorer. Flere af disse vil erstatte Gutenberg-editoren med en egen Markdown-editor.

Disse plugins ser meget tiltalende ud, men tilgængeligheden er meget svingende, hvis man anvender en skærmlæser. En skærmlæser er et værktøj, som kan give forskellige informationer til blinde eller stærkt svagsynede om elementer på websider. Skærmlæsere findes både til computere, mobiltelefoner, tablets m.m.

Jeg har kontaktet flere af udviklerne og beskrevet problematikkerne. Disse falder i forskellige kategorier:

Efter min opfattelse er det værste, at mange af dem anvender en ældre version af et framework kaldet Codemirror som først i version 6 har fået implementeret tilgængelighed på en optimal facon. I tidligere versioner var edit-felter usynlige for flere skærmlæsere, hvilket bevirkede at man måtte klippe sin tekst fra et program som Notesblok eller lignende. Det var ikke muligt at redigere indsat tekst, når først indholdet var indsat i dette felt.

En anden udfordrende ting var, at flere udviklere er begyndt at anvende CSS og alternativ styling af skærmbillederne til deres plugins. Det betyder i praksis, at jeg flere gange fandt indstillingsmuligheder, som jeg ikke kunne se en status på. Eksempelvis kunne jeg i et plugin vælge at aktivere eller deaktivere forskellige funktioner. Men ved hver funktion stod der "enable" og "disable". Jeg kunne aktivere disse muligheder, men ikke selv se, hvilken mulighed som var valgt som standard.

Det betød, at jeg måtte lave mange små notater for at være sikker på, at jeg ændrede de korrekte indstillinger, og hvis noget ikke fungerede som håbet, så måtte jeg noterne igennem for at rette det tilbage igen.

Derfor har denne problematik taget mig over fire år at løse på en nogenlunde tilfredsstillende måde. Jeg har personligt været tæt på at opgive WordPress som platform, fordi jeg i lang tid oplevede, at jeg løb panden mod en mur i min søgen efter en god Markdown-løsning.

Jeg bliver dog ved WordPress. Grundene hertil er, at andre systemer kan være utroligt besværlige at opsætte og at jeg ikke kunne være sikker på at en overførsel fra et system til et andet kunne garantere mig samme funktionalitet som jeg har fundet i WordPress. En anden grund er også, at flere af systemerne, som andre kunne anbefale krævede meget stor viden om webservere og den slags. Det er der måske nogle, som finder stor glæde ved at arbejde med. Men det er for mig ikke så vigtigt, hvordan en webserver fungerer. Derimod synes jeg det er spændende at arbejde med CMS-systemer, som er forholdsvis lette at installere, opsætte og tilpasse. Her har WordPress nogle klare fordele.

WordPress kan let installeres hos næsten alle udbydere af webhoteller. Desuden er WordPress et meget kendt CMS-system, så chancen for at få hjælp til problemer er virkelig stor.

Du undrer dig måske over, hvorfor jeg ikke opgav og valgte at skrive i HTML. Det forsøgte jeg faktisk også i en periode, men jeg blev ved med at savne at kunne arbejde i Markdown, og derfor blev jeg ved med at søge med lys og lygte efter en løsning, som jeg kunne se mig selv bruge. Ikke bare de næste få indlæg frem, men gerne i mange år fremover.

Jeg har skrevet dette indlæg, da jeg ikke kunne finde noget lignende på dansk eller engelsk, og jeg håber at andre kan bruge de erfaringer, som jeg har brugt flere timer på at grave frem til noget.

Dette indlæg blev udgivet i Diverse og tagget , , . Bogmærk permalinket.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.