diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2017-04-05 16:18:53 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2017-04-07 10:52:16 +0200 |
commit | 3c405f5172a6081483c9e5f4264a4d60e60bc8ac (patch) | |
tree | dbf2651314bfba7d6b8a8eaeb9f4acdd7814de5f /commands/gendocshelper.go | |
parent | 95808724595ab97042c204f3d92ea5c2929a8241 (diff) |
all: Document the Output Formats feature
This commit also adds a new command, docshelper, with some utility funcs that adds a JSON datafiles to /docs/data that would be a pain to create and maintain by hand.
Fixes #3242
Diffstat (limited to 'commands/gendocshelper.go')
-rw-r--r-- | commands/gendocshelper.go | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/commands/gendocshelper.go b/commands/gendocshelper.go new file mode 100644 index 000000000..245c5f221 --- /dev/null +++ b/commands/gendocshelper.go @@ -0,0 +1,70 @@ +// Copyright 2017-present The Hugo Authors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package commands + +import ( + "encoding/json" + "fmt" + "os" + "path/filepath" + + "github.com/spf13/cobra" + "github.com/spf13/hugo/docshelper" +) + +type genDocsHelper struct { + target string + cmd *cobra.Command +} + +func createGenDocsHelper() *genDocsHelper { + g := &genDocsHelper{ + cmd: &cobra.Command{ + Use: "docshelper", + Short: "Generate some data files for the Hugo docs.", + Hidden: true, + }, + } + + g.cmd.RunE = func(cmd *cobra.Command, args []string) error { + return g.generate() + } + + g.cmd.PersistentFlags().StringVarP(&g.target, "dir", "", "docs/data", "Data dir") + + return g +} + +func (g *genDocsHelper) generate() error { + fmt.Println("Generate docs data to", g.target) + + targetFile := filepath.Join(g.target, "docs.json") + + f, err := os.Create(targetFile) + if err != nil { + return err + } + defer f.Close() + + enc := json.NewEncoder(f) + enc.SetIndent("", " ") + + if err := enc.Encode(docshelper.DocProviders); err != nil { + return err + } + + fmt.Println("Done!") + return nil + +} |