all repos — searchix @ a1dfc548198a1326e71f1dd70303a5d3441f7a39

Search engine for NixOS, nix-darwin, home-manager and NUR users

refactor: switch to templ for HTML templates

Alan Pearce
commit

a1dfc548198a1326e71f1dd70303a5d3441f7a39

parent

cac323d9ae70f55a43fd99b73e60cf614be11797

1 file changed, 35 insertions(+), 0 deletions(-)

changed files
A internal/components/markdown.templ
@@ -0,0 +1,35 @@
+package components + +import ( + "regexp" + + "searchix/internal/nix" + + "github.com/yuin/goldmark" + "github.com/yuin/goldmark/extension" + "context" + "io" +) + +var ( + md = goldmark.New( + goldmark.WithExtensions(extension.NewLinkify()), + ) + firstSentenceRegexp = regexp.MustCompile(`^.*?\.[[:space:]]`) +) + +func firstSentence[T ~string](text T) T { + if fs := firstSentenceRegexp.FindString(string(text)); fs != "" { + return T(fs) + } + + return text +} + +func markdown(text nix.Markdown) templ.Component { + return templ.ComponentFunc(func(ctx context.Context, w io.Writer) error { + err := md.Convert([]byte(text), w) + + return err + }) +}