all repos — searchix @ c4d3d6813a2ec8ba79a7923507db9df7f3406582

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

refactor: extract nix-flavoured markdown code to module

Alan Pearce
commit

c4d3d6813a2ec8ba79a7923507db9df7f3406582

parent

1d8d6da7e1ad76b65b3f4f634da3d28f00d55a01

M internal/importer/options.gointernal/importer/options.go
@@ -12,6 +12,7 @@
"alin.ovh/searchix/internal/config" "alin.ovh/searchix/internal/index" "alin.ovh/searchix/internal/nix" + "alin.ovh/searchix/internal/nixdocs" "github.com/Southclaws/fault" "github.com/Southclaws/fault/fmsg"
@@ -40,7 +41,7 @@ Plain: text,
} case "literalMD": return &nix.Docs{ - Markdown: nix.Markdown(text), + Markdown: nixdocs.Markdown(text), } default: i.log.Warn("got unexpected docs type", "type", docType, "text", text)
@@ -170,9 +171,9 @@ Name: kv.Key,
Source: i.source.Key, Declarations: decls, Default: defaultDocs, - Description: nix.Markdown(description), + Description: nixdocs.Markdown(description), Example: exampleDocs, - RelatedPackages: nix.Markdown(relatedPackages), + RelatedPackages: nixdocs.Markdown(relatedPackages), Loc: loc, Parents: parents, Type: optType,
M internal/importer/package.gointernal/importer/package.go
@@ -14,6 +14,7 @@
"alin.ovh/searchix/internal/config" "alin.ovh/searchix/internal/index" "alin.ovh/searchix/internal/nix" + "alin.ovh/searchix/internal/nixdocs" "alin.ovh/searchix/internal/programs" "github.com/Southclaws/fault"
@@ -334,7 +335,7 @@ PackageSet: pkgSet,
Version: version, Broken: broken, Description: description, - LongDescription: nix.Markdown(longDescription), + LongDescription: nixdocs.Markdown(longDescription), Homepages: homepages, MainProgram: mainProgram, Platforms: platforms,
M internal/nix/option.gointernal/nix/option.go
@@ -1,21 +1,15 @@
package nix import ( - "io" "time" - "github.com/Southclaws/fault" - "github.com/yuin/goldmark" - "alin.ovh/searchix/internal/config" "alin.ovh/searchix/internal/nixdocs" ) - -type Markdown string type Docs struct { - Plain string `json:",omitempty"` - Markdown Markdown `json:",omitempty"` + Plain string `json:",omitempty"` + Markdown nixdocs.Markdown `json:",omitempty"` } type Link struct {
@@ -28,11 +22,11 @@ Name string
Source string Declarations []Link Default *Docs `json:",omitempty"` - Description Markdown + Description nixdocs.Markdown Example *Docs `json:",omitempty"` Loc []string Parents string - RelatedPackages Markdown `json:",omitempty"` + RelatedPackages nixdocs.Markdown `json:",omitempty"` Type string ImportedAt time.Time }
@@ -52,12 +46,3 @@
func (p Option) GetSource() string { return p.Source } - -var md = goldmark.New( - nixdocs.WithNixDocsExtensions(), -) - -// implements gomponent.Node -func (text Markdown) Render(w io.Writer) error { - return fault.Wrap(md.Convert([]byte(text), w)) -}
M internal/nix/package.gointernal/nix/package.go
@@ -4,6 +4,7 @@ import (
"time" "alin.ovh/searchix/internal/config" + "alin.ovh/searchix/internal/nixdocs" ) type Package struct {
@@ -15,7 +16,7 @@ Definition string
Description string Homepages []string Licenses []License - LongDescription Markdown + LongDescription nixdocs.Markdown MainProgram string Programs []string Maintainers []Maintainer
M internal/nixdocs/nixdocs.gointernal/nixdocs/nixdocs.go
@@ -1,6 +1,9 @@
package nixdocs import ( + "io" + + "github.com/Southclaws/fault" fences "github.com/stefanfritsch/goldmark-fences" "github.com/yuin/goldmark" "github.com/yuin/goldmark/extension"
@@ -14,8 +17,10 @@ "alin.ovh/searchix/internal/nixdocs/optlink"
"alin.ovh/searchix/internal/nixdocs/variable" ) -func WithNixDocsExtensions() goldmark.Option { - return goldmark.WithExtensions( +type Markdown string + +var md = goldmark.New( + goldmark.WithExtensions( extension.NewLinkify(), &fences.Extender{}, optlink.New(),
@@ -25,5 +30,10 @@ 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)) }