From 98af3c6b4ef2958eb631a769ad56e0b807f2db41 Mon Sep 17 00:00:00 2001
From: Jason Streifling <jason@streifling.com>
Date: Sat, 1 Mar 2025 09:37:30 +0100
Subject: [PATCH] Change markdown dialect to gfm

---
 cmd/backend/docx.go     | 2 +-
 cmd/backend/markdown.go | 9 ++++++++-
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/cmd/backend/docx.go b/cmd/backend/docx.go
index e197ca4..241d3e5 100644
--- a/cmd/backend/docx.go
+++ b/cmd/backend/docx.go
@@ -21,7 +21,7 @@ func ConvertToMarkdown(c *Config, filename string) ([]byte, error) {
 	defer os.RemoveAll(tmpDir)
 
 	articleFileName := filepath.Join(os.TempDir(), fmt.Sprint(uuid.New(), ".md"))
-	cmd := exec.Command("pandoc", "-s", "-L", filepath.Join("scripts", "create_toc.lua"), "-f", "docx", "-t", "commonmark_x", "-o", articleFileName, "--extract-media", tmpDir, filename) // TODO: Is writing to a file necessary?
+	cmd := exec.Command("pandoc", "-s", "-L", filepath.Join("scripts", "create_toc.lua"), "-f", "docx", "-t", "gfm", "-o", articleFileName, "--extract-media", tmpDir, filename) // TODO: Is writing to a file necessary?
 	cmd.Stderr = &stderr
 	if err = cmd.Run(); err != nil {
 		return nil, fmt.Errorf("error converting docx to markdown: %v: %v", err, stderr.String())
diff --git a/cmd/backend/markdown.go b/cmd/backend/markdown.go
index 59346c4..f81e5e1 100644
--- a/cmd/backend/markdown.go
+++ b/cmd/backend/markdown.go
@@ -6,12 +6,19 @@ import (
 
 	"github.com/microcosm-cc/bluemonday"
 	"github.com/yuin/goldmark"
+	"github.com/yuin/goldmark/extension"
 )
 
 func ConvertToHTML(md string) (string, error) {
 	var buf bytes.Buffer
 
-	if err := goldmark.Convert([]byte(md), &buf); err != nil {
+	gm := goldmark.New(
+		goldmark.WithExtensions(
+			extension.GFM,
+		),
+	)
+
+	if err := gm.Convert([]byte(md), &buf); err != nil {
 		return "", fmt.Errorf("error converting markdown to html: %v", err)
 	}