all repos — searchix @ c0fbf11f843af84e8891a708c4d217dd6c523473

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

feat: render markdown examples

Alan Pearce
commit

c0fbf11f843af84e8891a708c4d217dd6c523473

parent

7d08b696e9ab6de61c53a5dc9153595a5a8a6d98

1 file changed, 11 insertions(+), 51 deletions(-)

changed files
M internal/options/option.gointernal/options/option.go
@@ -1,67 +1,27 @@
package options -import ( - "encoding/json" - "strings" - - "github.com/pkg/errors" - "github.com/yuin/goldmark" - "github.com/yuin/goldmark/extension" -) +type Markdown string type NixValue struct { - Type string `json:"_type" mapstructure:"_type"` - Text string `json:"text"` -} - -type HTML struct { - HTML string -} - -var md = goldmark.New( - goldmark.WithExtensions(extension.NewLinkify()), -) - -func (html *HTML) UnmarshalText(text []byte) error { - var out strings.Builder - err := md.Convert(text, &out) - if err != nil { - return errors.WithMessage(err, "failed to convert markdown to HTML") - } - - html.HTML = out.String() - - return nil -} - -func (html *HTML) UnmarshalJSON(raw []byte) error { - var v struct { - HTML string - } - err := json.Unmarshal(raw, &v) - if err != nil { - return errors.WithMessage(err, "error unmarshaling json") - } - html.HTML = v.HTML - - return nil + Text string `json:",omitempty"` + Markdown Markdown `json:",omitempty"` } type Link struct { Name string - URL string `json:"url"` + URL string } type NixOption struct { - Option string + Option string + Declarations []Link - Default NixValue - Description HTML - Example NixValue - ReadOnly bool + Default *NixValue `json:",omitempty"` + Description Markdown + Example *NixValue `json:",omitempty"` + Loc []string + RelatedPackages Markdown `json:",omitempty"` Type string - Loc []string - RelatedPackages HTML } type NixOptions []NixOption