all repos — searchix @ v0.4.4

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

internal/nixdocs/nixdocs.go (view raw)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package nixdocs

import (
	"io"

	"github.com/Southclaws/fault"
	fences "github.com/stefanfritsch/goldmark-fences"
	"github.com/yuin/goldmark"
	"github.com/yuin/goldmark/extension"

	"alin.ovh/searchix/internal/nixdocs/command"
	"alin.ovh/searchix/internal/nixdocs/envvar"
	"alin.ovh/searchix/internal/nixdocs/filepath"
	"alin.ovh/searchix/internal/nixdocs/manpage"
	"alin.ovh/searchix/internal/nixdocs/option"
	"alin.ovh/searchix/internal/nixdocs/optlink"
	"alin.ovh/searchix/internal/nixdocs/variable"
)

type Markdown string

var md = goldmark.New(
	goldmark.WithExtensions(
		extension.NewLinkify(),
		&fences.Extender{},
		optlink.New(),
		option.New(),
		command.New(),
		envvar.New(),
		variable.New(),
		filepath.New(),
		manpage.New(),
	),
)

// implements gomponent.Node
func (text Markdown) Render(w io.Writer) error {
	return fault.Wrap(md.Convert([]byte(text), w))
}