3 files changed,
25 insertions(+),
6 deletions(-)
Author:
Oleksandr Smirnov
olexsmir@gmail.com
Committed at:
2025-04-30 00:12:16 +0300
Parent:
496483f
M
go.sum
··· 1 +github.com/gomarkdown/markdown v0.0.0-20250311123330-531bef5e742b h1:EY/KpStFl60qA17CptGXhwfZ+k1sFNJIUNR8DdbcuUk= 2 +github.com/gomarkdown/markdown v0.0.0-20250311123330-531bef5e742b/go.mod h1:JDGcbDT52eL4fju3sZ4TeHGsQwhG9nbDV21aMyhwPoA= 1 3 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= 2 4 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 3 5 gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
M
main.go
··· 5 5 "log/slog" 6 6 "os" 7 7 8 + "github.com/gomarkdown/markdown" 9 + "github.com/gomarkdown/markdown/html" 10 + mdParser "github.com/gomarkdown/markdown/parser" 11 + 8 12 "github.com/olexsmir/anpi/anki" 9 13 "github.com/olexsmir/anpi/parser" 10 14 ) ··· 30 34 if err != nil { 31 35 return err 32 36 } 33 - 34 - slog.Info("data", "data", data) 35 37 36 38 for _, deck := range data { 37 39 for _, note := range deck.Notes { 38 40 fields := make(map[string]string) 39 41 for k, v := range note.Fields { 40 - slog.Info("chicken jokey", "k", k, "v", v, "yep", deck.FieldLookUp(k)) 41 - fields[deck.FieldLookUp(k)] = v 42 + fields[deck.FieldLookUp(k)] = fromMarkdown(v) 42 43 } 43 44 44 - slog.Info("got fields", "fields", fields) 45 + slog.Info("gotten fields", "fields", fields) 45 46 46 47 tags := mergeTags(deck.Tags, note.Tags) 47 48 if _, err := anki.AddNote(deck.Deck, deck.Type, fields, tags); err != nil { ··· 70 71 71 72 return result 72 73 } 74 + 75 +func fromMarkdown(inp string) string { 76 + extensions := mdParser.CommonExtensions | mdParser.AutoHeadingIDs | mdParser.NoEmptyLineBeforeBlock 77 + 78 + htmlFlags := html.CommonFlags | html.HrefTargetBlank 79 + opts := html.RendererOptions{Flags: htmlFlags} 80 + 81 + p := mdParser.NewWithExtensions(extensions) 82 + doc := p.Parse([]byte(inp)) 83 + 84 + renderer := html.NewRenderer(opts) 85 + return string(markdown.Render(doc, renderer)) 86 +}