Skip to content

Commit

Permalink
hugolib: Remove the now superflous Source struct
Browse files Browse the repository at this point in the history
  • Loading branch information
bep committed Oct 22, 2018
1 parent eb038cf commit 7930d21
Show file tree
Hide file tree
Showing 7 changed files with 35 additions and 85 deletions.
21 changes: 10 additions & 11 deletions hugolib/hugo_sites_build_errors_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -98,17 +98,16 @@ func TestSiteBuildErrors(t *testing.T) {
a.assertLineNumber(2, err)
},
},
// TODO(bep) 2errors
/* {
name: "Shortode execute failed",
fileType: shortcode,
fileFixer: func(content string) string {
return strings.Replace(content, ".Title", ".Titles", 1)
},
assertBuildError: func(a testSiteBuildErrorAsserter, err error) {
a.assertLineNumber(2, err)
},
},*/
{
name: "Shortode execute failed",
fileType: shortcode,
fileFixer: func(content string) string {
return strings.Replace(content, ".Title", ".Titles", 1)
},
assertBuildError: func(a testSiteBuildErrorAsserter, err error) {
a.assertLineNumber(25, err)
},
},

{
name: "Panic in template Execute",
Expand Down
80 changes: 14 additions & 66 deletions hugolib/page.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ import (
"time"
"unicode/utf8"

bp "github.com/gohugoio/hugo/bufferpool"
"github.com/gohugoio/hugo/compare"
"github.com/gohugoio/hugo/source"
"github.com/spf13/cast"
Expand Down Expand Up @@ -185,7 +184,7 @@ type Page struct {
// menus
pageMenus PageMenus

Source
source.File

Position `json:"-"`

Expand Down Expand Up @@ -467,7 +466,7 @@ func (p *Page) BundleType() string {
return "branch"
}

var source interface{} = p.Source.File
var source interface{} = p.File
if fi, ok := source.(*fileInfo); ok {
switch fi.bundleTp {
case bundleBranch:
Expand All @@ -484,12 +483,6 @@ func (p *Page) MediaType() media.Type {
return media.OctetType
}

// TODO(bep) 2errors remove
type Source struct {
Frontmatter []byte
Content []byte
source.File
}
type PageMeta struct {
wordCount int
fuzzyWordCount int
Expand All @@ -512,7 +505,7 @@ func (ps Pages) String() string {

func (ps Pages) findPagePosByFilename(filename string) int {
for i, x := range ps {
if x.Source.Filename() == filename {
if x.Filename() == filename {
return i
}
}
Expand Down Expand Up @@ -545,8 +538,8 @@ func (ps Pages) findPagePosByFilnamePrefix(prefix string) int {

// Find the closest match
for i, x := range ps {
if strings.HasPrefix(x.Source.Filename(), prefix) {
diff := len(x.Source.Filename()) - prefixLen
if strings.HasPrefix(x.Filename(), prefix) {
diff := len(x.Filename()) - prefixLen
if lenDiff == -1 || diff < lenDiff {
lenDiff = diff
currPos = i
Expand All @@ -560,7 +553,7 @@ func (ps Pages) findPagePosByFilnamePrefix(prefix string) int {
// will return -1 if not found
func (ps Pages) findPagePos(page *Page) int {
for i, x := range ps {
if x.Source.Filename() == page.Source.Filename() {
if x.Filename() == page.Filename() {
return i
}
}
Expand Down Expand Up @@ -701,7 +694,7 @@ func (p *Page) Authors() AuthorList {
}

func (p *Page) UniqueID() string {
return p.Source.UniqueID()
return p.File.UniqueID()
}

// for logging
Expand Down Expand Up @@ -881,7 +874,7 @@ func (s *Site) newPageFromFile(fi *fileInfo) *Page {
pageContentInit: &pageContentInit{},
Kind: kindFromFileInfo(fi),
contentType: "",
Source: Source{File: fi},
File: fi,
Keywords: []string{}, Sitemap: Sitemap{Priority: -1},
params: make(map[string]interface{}),
translations: make(Pages, 0),
Expand Down Expand Up @@ -914,7 +907,7 @@ func (p *Page) Section() string {
if p.Kind == KindSection || p.Kind == KindTaxonomy || p.Kind == KindTaxonomyTerm {
return p.sections[0]
}
return p.Source.Section()
return p.File.Section()
}

func (s *Site) newPageFrom(buf io.Reader, name string) (*Page, error) {
Expand Down Expand Up @@ -1273,8 +1266,8 @@ func (p *Page) updateMetaData(frontmatter map[string]interface{}) error {
maps.ToLower(frontmatter)

var mtime time.Time
if p.Source.FileInfo() != nil {
mtime = p.Source.FileInfo().ModTime()
if p.FileInfo() != nil {
mtime = p.FileInfo().ModTime()
}

var gitAuthorDate time.Time
Expand Down Expand Up @@ -1476,7 +1469,7 @@ func (p *Page) updateMetaData(frontmatter map[string]interface{}) error {
p.Markup = helpers.GuessType(p.Markup)
if p.Markup == "unknown" {
// Fall back to file extension (might also return "unknown")
p.Markup = helpers.GuessType(p.Source.Ext())
p.Markup = helpers.GuessType(p.Ext())
}

if draft != nil && published != nil {
Expand Down Expand Up @@ -1721,51 +1714,6 @@ func (p *Page) RawContent() string {
return string(p.rawContent)
}

func (p *Page) SetSourceContent(content []byte) {
p.Source.Content = content
}

func (p *Page) SafeSaveSourceAs(path string) error {
return p.saveSourceAs(path, true)
}

func (p *Page) SaveSourceAs(path string) error {
return p.saveSourceAs(path, false)
}

func (p *Page) saveSourceAs(path string, safe bool) error {
b := bp.GetBuffer()
defer bp.PutBuffer(b)

b.Write(p.Source.Frontmatter)
b.Write(p.Source.Content)

bc := make([]byte, b.Len(), b.Len())
copy(bc, b.Bytes())

return p.saveSource(bc, path, safe)
}

func (p *Page) saveSource(by []byte, inpath string, safe bool) (err error) {
if !filepath.IsAbs(inpath) {
inpath = p.s.PathSpec.AbsPathify(inpath)
}
p.s.Log.INFO.Println("creating", inpath)
if safe {
err = helpers.SafeWriteToDisk(inpath, bytes.NewReader(by), p.s.Fs.Source)
} else {
err = helpers.WriteToDisk(inpath, bytes.NewReader(by), p.s.Fs.Source)
}
if err != nil {
return
}
return nil
}

func (p *Page) SaveSource() error {
return p.SaveSourceAs(p.FullFilePath())
}

func (p *Page) FullFilePath() string {
return filepath.Join(p.Dir(), p.LogicalName())
}
Expand All @@ -1779,8 +1727,8 @@ func (p *Page) FullFilePath() string {
// 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 *Page) absoluteSourceRef() string {
if p.Source.File != nil {
sourcePath := p.Source.Path()
if p.File != nil {
sourcePath := p.Path()
if sourcePath != "" {
return "/" + filepath.ToSlash(sourcePath)
}
Expand Down
4 changes: 2 additions & 2 deletions hugolib/page_collections.go
Original file line number Diff line number Diff line change
Expand Up @@ -101,9 +101,9 @@ func (c *PageCollections) refreshPageCaches() {
}

// Ref/Relref supports this potentially ambiguous lookup.
add(p.Source.LogicalName(), p)
add(p.LogicalName(), p)

translationBaseName := p.Source.TranslationBaseName()
translationBaseName := p.TranslationBaseName()

dir, _ := path.Split(sourceRef)
dir = strings.TrimSuffix(dir, "/")
Expand Down
2 changes: 1 addition & 1 deletion hugolib/page_content.go
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ func (p *Page) parse(reader io.Reader) error {
}

// TODO(bep) 2errors
p.lang = p.Source.File.Lang()
p.lang = p.File.Lang()

if p.s != nil && p.s.owner != nil {
gi, enabled := p.s.owner.gitInfo.forPage(p)
Expand Down
2 changes: 1 addition & 1 deletion hugolib/page_paths.go
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ func (p *Page) initTargetPathDescriptor() error {
Kind: p.Kind,
Sections: p.sections,
UglyURLs: p.s.Info.uglyURLs(p),
Dir: filepath.ToSlash(p.Source.Dir()),
Dir: filepath.ToSlash(p.Dir()),
URL: p.frontMatterURL,
IsMultihost: p.s.owner.IsMultihost(),
}
Expand Down
4 changes: 2 additions & 2 deletions hugolib/site.go
Original file line number Diff line number Diff line change
Expand Up @@ -1467,7 +1467,7 @@ func (s *Site) assembleTaxonomies() {
w := p.getParamToLower(plural + "_weight")
weight, err := cast.ToIntE(w)
if err != nil {
s.Log.ERROR.Printf("Unable to convert taxonomy weight %#v to int for %s", w, p.Source.File.Path())
s.Log.ERROR.Printf("Unable to convert taxonomy weight %#v to int for %s", w, p.File.Path())
// weight will equal zero, so let the flow continue
}

Expand Down Expand Up @@ -1799,7 +1799,7 @@ func (s *Site) newNodePage(typ string, sections ...string) *Page {
pageInit: &pageInit{},
pageContentInit: &pageContentInit{},
Kind: typ,
Source: Source{File: &source.FileInfo{}},
File: &source.FileInfo{},
data: make(map[string]interface{}),
Site: &s.Info,
sections: sections,
Expand Down
7 changes: 5 additions & 2 deletions parser/metadecoders/decoder.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ func unmarshal(data []byte, f Format, v interface{}) error {
case ORG:
vv, err := goorgeous.OrgHeaders(data)
if err != nil {
return err
return errors.Wrap(err, "failed to unmarshal ORG headers")
}
switch v.(type) {
case *map[string]interface{}:
Expand All @@ -73,6 +73,9 @@ func unmarshal(data []byte, f Format, v interface{}) error {
err = toml.Unmarshal(data, v)
case YAML:
err = yaml.Unmarshal(data, v)
if err != nil {
return errors.Wrap(err, "failed to unmarshal YAML")
}

// To support boolean keys, the YAML package unmarshals maps to
// map[interface{}]interface{}. Here we recurse through the result
Expand Down Expand Up @@ -100,7 +103,7 @@ func unmarshal(data []byte, f Format, v interface{}) error {
return errors.Errorf("unmarshal of format %q is not supported", f)
}

return err
return errors.Wrap(err, "unmarshal failed")

}

Expand Down

0 comments on commit 7930d21

Please sign in to comment.