summaryrefslogtreecommitdiffstats
path: root/commands
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-04-05 16:18:53 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-04-07 10:52:16 +0200
commit3c405f5172a6081483c9e5f4264a4d60e60bc8ac (patch)
treedbf2651314bfba7d6b8a8eaeb9f4acdd7814de5f /commands
parent95808724595ab97042c204f3d92ea5c2929a8241 (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')
-rw-r--r--commands/gendocshelper.go70
-rw-r--r--commands/hugo.go1
2 files changed, 71 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
+
+}
diff --git a/commands/hugo.go b/commands/hugo.go
index 7a7344c4c..6f56ea3db 100644
--- a/commands/hugo.go
+++ b/commands/hugo.go
@@ -197,6 +197,7 @@ func AddCommands() {
genCmd.AddCommand(genautocompleteCmd)
genCmd.AddCommand(gendocCmd)
genCmd.AddCommand(genmanCmd)
+ genCmd.AddCommand(createGenDocsHelper().cmd)
}
// initHugoBuilderFlags initializes all common flags, typically used by the