mirror of
https://github.com/gohugoio/hugo.git
synced 2025-09-02 22:52:51 +02:00
@@ -577,7 +577,7 @@ func (cfg *BuildCfg) shouldRender(p *pageState) bool {
|
||||
return true
|
||||
}
|
||||
|
||||
if cfg.whatChanged != nil && p.File() != nil {
|
||||
if cfg.whatChanged != nil && !p.File().IsZero() {
|
||||
return cfg.whatChanged.files[p.File().Filename()]
|
||||
}
|
||||
|
||||
|
@@ -236,7 +236,7 @@ func (p *pageState) TranslationKey() string {
|
||||
p.translationKeyInit.Do(func() {
|
||||
if p.m.translationKey != "" {
|
||||
p.translationKey = p.Kind() + "/" + p.m.translationKey
|
||||
} else if p.IsPage() && p.File() != nil {
|
||||
} else if p.IsPage() && !p.File().IsZero() {
|
||||
p.translationKey = path.Join(p.Kind(), filepath.ToSlash(p.File().Dir()), p.File().TranslationBaseName())
|
||||
} else if p.IsNode() {
|
||||
p.translationKey = path.Join(p.Kind(), p.SectionsPath())
|
||||
@@ -462,7 +462,7 @@ func (p *pageState) Render(layout ...string) template.HTML {
|
||||
func (p *pageState) wrapError(err error) error {
|
||||
|
||||
var filename string
|
||||
if p.File() != nil {
|
||||
if !p.File().IsZero() {
|
||||
filename = p.File().Filename()
|
||||
}
|
||||
|
||||
@@ -665,7 +665,7 @@ func (p *pageState) parseError(err error, input []byte, offset int) error {
|
||||
}
|
||||
|
||||
func (p *pageState) pathOrTitle() string {
|
||||
if p.File() != nil {
|
||||
if !p.File().IsZero() {
|
||||
return p.File().Filename()
|
||||
}
|
||||
|
||||
@@ -763,7 +763,7 @@ func (p *pageState) sortParentSections() {
|
||||
// For pages that do not (sections witout content page etc.), it returns the
|
||||
// virtual path, consistent with where you would add a source file.
|
||||
func (p *pageState) sourceRef() string {
|
||||
if p.File() != nil {
|
||||
if !p.File().IsZero() {
|
||||
sourcePath := p.File().Path()
|
||||
if sourcePath != "" {
|
||||
return "/" + filepath.ToSlash(sourcePath)
|
||||
|
@@ -222,7 +222,7 @@ func (p *pageMeta) Params() map[string]interface{} {
|
||||
}
|
||||
|
||||
func (p *pageMeta) Path() string {
|
||||
if p.File() != nil {
|
||||
if !p.File().IsZero() {
|
||||
return p.File().Path()
|
||||
}
|
||||
return p.SectionsPath()
|
||||
@@ -256,7 +256,7 @@ func (p *pageMeta) Section() string {
|
||||
return p.sections[0]
|
||||
}
|
||||
|
||||
if p.File() != nil {
|
||||
if !p.File().IsZero() {
|
||||
return p.File().Section()
|
||||
}
|
||||
|
||||
@@ -536,8 +536,8 @@ func (pm *pageMeta) setMetadata(p *pageState, frontmatter map[string]interface{}
|
||||
|
||||
func (p *pageMeta) applyDefaultValues() error {
|
||||
if p.markup == "" {
|
||||
if p.File() != nil {
|
||||
// Fall back to {file extension
|
||||
if !p.File().IsZero() {
|
||||
// Fall back to file extension
|
||||
p.markup = helpers.GuessType(p.File().Ext())
|
||||
}
|
||||
if p.markup == "" {
|
||||
|
@@ -95,6 +95,10 @@ func newPageBase(metaProvider *pageMeta) (*pageState, error) {
|
||||
}
|
||||
|
||||
func newPageFromMeta(metaProvider *pageMeta) (*pageState, error) {
|
||||
if metaProvider.f == nil {
|
||||
metaProvider.f = page.NewZeroFile(metaProvider.s.DistinctWarningLog)
|
||||
}
|
||||
|
||||
ps, err := newPageBase(metaProvider)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
@@ -99,7 +99,7 @@ func createTargetPathDescriptor(s *Site, p page.Page, pm *pageMeta) (page.Target
|
||||
|
||||
d := s.Deps
|
||||
|
||||
if p.File() != nil {
|
||||
if !p.File().IsZero() {
|
||||
dir = p.File().Dir()
|
||||
baseName = p.File().TranslationBaseName()
|
||||
}
|
||||
|
@@ -18,6 +18,8 @@ import (
|
||||
"html/template"
|
||||
"os"
|
||||
|
||||
"github.com/gohugoio/hugo/common/loggers"
|
||||
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"testing"
|
||||
@@ -1166,6 +1168,12 @@ Content:{{ .Content }}
|
||||
|
||||
}
|
||||
|
||||
// https://github.com/gohugoio/hugo/issues/5781
|
||||
func TestPageWithZeroFile(t *testing.T) {
|
||||
newTestSitesBuilder(t).WithLogger(loggers.NewWarningLogger()).WithSimpleConfigFile().
|
||||
WithTemplatesAdded("index.html", "{{ .File.Filename }}{{ with .File }}{{ .Dir }}{{ end }}").Build(BuildCfg{})
|
||||
}
|
||||
|
||||
func TestShouldBuild(t *testing.T) {
|
||||
t.Parallel()
|
||||
var past = time.Date(2009, 11, 17, 20, 34, 58, 651387237, time.UTC)
|
||||
|
@@ -789,11 +789,11 @@ func (s *siteRefLinker) refLink(ref string, source interface{}, relative bool, o
|
||||
if refURL.Fragment != "" {
|
||||
_ = target
|
||||
link = link + "#" + refURL.Fragment
|
||||
if pctx, ok := target.(pageContext); ok && target.File() != nil && !pctx.getRenderingConfig().PlainIDAnchors {
|
||||
if pctx, ok := target.(pageContext); ok && !target.File().IsZero() && !pctx.getRenderingConfig().PlainIDAnchors {
|
||||
if refURL.Path != "" {
|
||||
link = link + ":" + target.File().UniqueID()
|
||||
}
|
||||
} else if pctx, ok := p.(pageContext); ok && p.File() != nil && !pctx.getRenderingConfig().PlainIDAnchors {
|
||||
} else if pctx, ok := p.(pageContext); ok && !p.File().IsZero() && !pctx.getRenderingConfig().PlainIDAnchors {
|
||||
link = link + ":" + p.File().UniqueID()
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user