page_kinds.go (1510B)
1 // Copyright 2019 The Hugo Authors. All rights reserved.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 // http://www.apache.org/licenses/LICENSE-2.0
7 //
8 // Unless required by applicable law or agreed to in writing, software
9 // distributed under the License is distributed on an "AS IS" BASIS,
10 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 // See the License for the specific language governing permissions and
12 // limitations under the License.
13
14 package hugolib
15
16 import (
17 "strings"
18
19 "github.com/gohugoio/hugo/resources/page"
20 )
21
22 // This is all the kinds we can expect to find in .Site.Pages.
23 var allKindsInPages = []string{page.KindPage, page.KindHome, page.KindSection, page.KindTerm, page.KindTaxonomy}
24
25 const (
26
27 // Temporary state.
28 kindUnknown = "unknown"
29
30 // The following are (currently) temporary nodes,
31 // i.e. nodes we create just to render in isolation.
32 kindRSS = "RSS"
33 kindSitemap = "sitemap"
34 kindRobotsTXT = "robotsTXT"
35 kind404 = "404"
36
37 pageResourceType = "page"
38 )
39
40 var kindMap = map[string]string{
41 strings.ToLower(kindRSS): kindRSS,
42 strings.ToLower(kindSitemap): kindSitemap,
43 strings.ToLower(kindRobotsTXT): kindRobotsTXT,
44 strings.ToLower(kind404): kind404,
45 }
46
47 func getKind(s string) string {
48 if pkind := page.GetKind(s); pkind != "" {
49 return pkind
50 }
51 return kindMap[strings.ToLower(s)]
52 }