diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2019-01-02 14:33:26 +0300 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2019-03-23 20:51:22 +0300 |
commit | 597e418cb02883418f2cebb41400e8e61413f651 (patch) | |
tree | 177ad9c540b2583b6dab138c9f0490d28989c7f7 /resources/page/page_marshaljson.autogen.go | |
parent | 44f5c1c14cb1f42cc5f01739c289e9cfc83602af (diff) |
Make Page an interface
The main motivation of this commit is to add a `page.Page` interface to replace the very file-oriented `hugolib.Page` struct.
This is all a preparation step for issue #5074, "pages from other data sources".
But this also fixes a set of annoying limitations, especially related to custom output formats, and shortcodes.
Most notable changes:
* The inner content of shortcodes using the `{{%` as the outer-most delimiter will now be sent to the content renderer, e.g. Blackfriday.
This means that any markdown will partake in the global ToC and footnote context etc.
* The Custom Output formats are now "fully virtualized". This removes many of the current limitations.
* The taxonomy list type now has a reference to the `Page` object.
This improves the taxonomy template `.Title` situation and make common template constructs much simpler.
See #5074
Fixes #5763
Fixes #5758
Fixes #5090
Fixes #5204
Fixes #4695
Fixes #5607
Fixes #5707
Fixes #5719
Fixes #3113
Fixes #5706
Fixes #5767
Fixes #5723
Fixes #5769
Fixes #5770
Fixes #5771
Fixes #5759
Fixes #5776
Fixes #5777
Fixes #5778
Diffstat (limited to 'resources/page/page_marshaljson.autogen.go')
-rw-r--r-- | resources/page/page_marshaljson.autogen.go | 198 |
1 files changed, 198 insertions, 0 deletions
diff --git a/resources/page/page_marshaljson.autogen.go b/resources/page/page_marshaljson.autogen.go new file mode 100644 index 000000000..5f4c9d32f --- /dev/null +++ b/resources/page/page_marshaljson.autogen.go @@ -0,0 +1,198 @@ +// Copyright 2019 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. + +// This file is autogenerated. + +package page + +import ( + "encoding/json" + "github.com/gohugoio/hugo/config" + "github.com/gohugoio/hugo/langs" + "github.com/gohugoio/hugo/media" + "github.com/gohugoio/hugo/navigation" + "github.com/gohugoio/hugo/source" + "html/template" + "time" +) + +func MarshalPageToJSON(p Page) ([]byte, error) { + content, err := p.Content() + if err != nil { + return nil, err + } + plain := p.Plain() + plainWords := p.PlainWords() + summary := p.Summary() + truncated := p.Truncated() + fuzzyWordCount := p.FuzzyWordCount() + wordCount := p.WordCount() + readingTime := p.ReadingTime() + length := p.Len() + tableOfContents := p.TableOfContents() + rawContent := p.RawContent() + mediaType := p.MediaType() + resourceType := p.ResourceType() + permalink := p.Permalink() + relPermalink := p.RelPermalink() + name := p.Name() + title := p.Title() + params := p.Params() + data := p.Data() + date := p.Date() + lastmod := p.Lastmod() + publishDate := p.PublishDate() + expiryDate := p.ExpiryDate() + aliases := p.Aliases() + bundleType := p.BundleType() + description := p.Description() + draft := p.Draft() + isHome := p.IsHome() + keywords := p.Keywords() + kind := p.Kind() + layout := p.Layout() + linkTitle := p.LinkTitle() + isNode := p.IsNode() + isPage := p.IsPage() + path := p.Path() + slug := p.Slug() + lang := p.Lang() + isSection := p.IsSection() + section := p.Section() + sectionsEntries := p.SectionsEntries() + sectionsPath := p.SectionsPath() + sitemap := p.Sitemap() + typ := p.Type() + weight := p.Weight() + language := p.Language() + file := p.File() + outputFormats := p.OutputFormats() + alternativeOutputFormats := p.AlternativeOutputFormats() + menus := p.Menus() + translationKey := p.TranslationKey() + isTranslated := p.IsTranslated() + allTranslations := p.AllTranslations() + translations := p.Translations() + + s := struct { + Content interface{} + Plain string + PlainWords []string + Summary template.HTML + Truncated bool + FuzzyWordCount int + WordCount int + ReadingTime int + Len int + TableOfContents template.HTML + RawContent string + MediaType media.Type + ResourceType string + Permalink string + RelPermalink string + Name string + Title string + Params map[string]interface{} + Data interface{} + Date time.Time + Lastmod time.Time + PublishDate time.Time + ExpiryDate time.Time + Aliases []string + BundleType string + Description string + Draft bool + IsHome bool + Keywords []string + Kind string + Layout string + LinkTitle string + IsNode bool + IsPage bool + Path string + Slug string + Lang string + IsSection bool + Section string + SectionsEntries []string + SectionsPath string + Sitemap config.Sitemap + Type string + Weight int + Language *langs.Language + File source.File + OutputFormats OutputFormats + AlternativeOutputFormats OutputFormats + Menus navigation.PageMenus + TranslationKey string + IsTranslated bool + AllTranslations Pages + Translations Pages + }{ + Content: content, + Plain: plain, + PlainWords: plainWords, + Summary: summary, + Truncated: truncated, + FuzzyWordCount: fuzzyWordCount, + WordCount: wordCount, + ReadingTime: readingTime, + Len: length, + TableOfContents: tableOfContents, + RawContent: rawContent, + MediaType: mediaType, + ResourceType: resourceType, + Permalink: permalink, + RelPermalink: relPermalink, + Name: name, + Title: title, + Params: params, + Data: data, + Date: date, + Lastmod: lastmod, + PublishDate: publishDate, + ExpiryDate: expiryDate, + Aliases: aliases, + BundleType: bundleType, + Description: description, + Draft: draft, + IsHome: isHome, + Keywords: keywords, + Kind: kind, + Layout: layout, + LinkTitle: linkTitle, + IsNode: isNode, + IsPage: isPage, + Path: path, + Slug: slug, + Lang: lang, + IsSection: isSection, + Section: section, + SectionsEntries: sectionsEntries, + SectionsPath: sectionsPath, + Sitemap: sitemap, + Type: typ, + Weight: weight, + Language: language, + File: file, + OutputFormats: outputFormats, + AlternativeOutputFormats: alternativeOutputFormats, + Menus: menus, + TranslationKey: translationKey, + IsTranslated: isTranslated, + AllTranslations: allTranslations, + Translations: translations, + } + + return json.Marshal(&s) +} |