summaryrefslogtreecommitdiffstats
path: root/output
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-03-05 18:23:00 +0100
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-03-27 15:43:56 +0200
commitd3d2c63dd98ea2339ae31501f04346cfb93be6c6 (patch)
treefbb689f5b8f11095fa5fdc5a017538527b5d2dc5 /output
parentc4989c39f1b29b82475fd350d91af7b5c2c19bf5 (diff)
output: Add output type
Diffstat (limited to 'output')
-rw-r--r--output/outputType.go46
-rw-r--r--output/outputType_test.go33
2 files changed, 79 insertions, 0 deletions
diff --git a/output/outputType.go b/output/outputType.go
new file mode 100644
index 000000000..d79ab0590
--- /dev/null
+++ b/output/outputType.go
@@ -0,0 +1,46 @@
+// 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 output
+
+import (
+ "github.com/spf13/hugo/media"
+)
+
+var (
+ HTMLType = Type{
+ Name: "HTML",
+ MediaType: media.HTMLType,
+ }
+
+ RSSType = Type{
+ Name: "RSS",
+ MediaType: media.RSSType,
+ }
+)
+
+// Type represents an output represenation, usually to a file on disk.
+type Type struct {
+ // The Name is used as an identifier. Internal output types (i.e. HTML and RSS)
+ // can be overridden by providing a new definition for those types.
+ Name string
+
+ MediaType media.Type
+
+ // Must be set to a value when there are two or more conflicting mediatype for the same resource.
+ Path string
+
+ // IsPlainText decides whether to use text/template or html/template
+ // as template parser.
+ IsPlainText bool
+}
diff --git a/output/outputType_test.go b/output/outputType_test.go
new file mode 100644
index 000000000..6f84c93d3
--- /dev/null
+++ b/output/outputType_test.go
@@ -0,0 +1,33 @@
+// 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 output
+
+import (
+ "testing"
+
+ "github.com/spf13/hugo/media"
+ "github.com/stretchr/testify/require"
+)
+
+func TestDefaultTypes(t *testing.T) {
+ require.Equal(t, "HTML", HTMLType.Name)
+ require.Equal(t, media.HTMLType, HTMLType.MediaType)
+ require.Empty(t, HTMLType.Path)
+ require.False(t, HTMLType.IsPlainText)
+
+ require.Equal(t, "RSS", RSSType.Name)
+ require.Equal(t, media.RSSType, RSSType.MediaType)
+ require.Empty(t, RSSType.Path)
+ require.False(t, RSSType.IsPlainText)
+}