URI: 
       Misc depreation updates - hugo - [fork] hugo port for 9front
  HTML git clone git@git.drkhsh.at/hugo.git
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
   DIR README
   DIR LICENSE
       ---
   DIR commit 2b6063c3e388056597af88709ff017d15f53c962
   DIR parent 56ab83a59712725e1ce0dd3fd516cc7c190c8478
  HTML Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
       Date:   Tue,  4 Jan 2022 13:07:10 +0100
       
       Misc depreation updates
       
       * Deprecate .Page.Path when backed by a file
       * site.Permalinks
       * --ignoreVendor (use --ignoreVendorPaths)
       
       Closes #9348
       Closes #9349
       
       Diffstat:
         M commands/commands.go                |       4 +---
         M commands/commands_test.go           |      10 ----------
         M commands/convert.go                 |       6 +++---
         M commands/hugo.go                    |       4 ----
         M commands/mod.go                     |       2 +-
         M hugofs/files/classifier.go          |       1 -
         M hugolib/config.go                   |       8 --------
         M hugolib/content_map_page.go         |       5 ++---
         M hugolib/page.go                     |       6 +++---
         M hugolib/page__meta.go               |      20 +++++++++++++++++++-
         M hugolib/site.go                     |       9 +--------
         M hugolib/site_test.go                |       2 +-
         M hugolib/testhelpers_test.go         |       7 +++----
         M modules/client.go                   |       2 +-
         M resources/page/page.go              |       6 ++++--
         M resources/page/page_marshaljson.au… |       7 ++++---
         M resources/page/page_matcher.go      |       3 +--
         M resources/page/page_nop.go          |       4 ++++
         M resources/page/testhelpers_test.go  |       4 ++++
       
       19 files changed, 52 insertions(+), 58 deletions(-)
       ---
   DIR diff --git a/commands/commands.go b/commands/commands.go
       @@ -131,8 +131,7 @@ type hugoCmd struct {
        
        var _ cmder = (*nilCommand)(nil)
        
       -type nilCommand struct {
       -}
       +type nilCommand struct{}
        
        func (c *nilCommand) getCommand() *cobra.Command {
                return nil
       @@ -281,7 +280,6 @@ func (cc *hugoBuilderCommon) handleCommonBuilderFlags(cmd *cobra.Command) {
                cmd.PersistentFlags().SetAnnotation("source", cobra.BashCompSubdirsInDir, []string{})
                cmd.PersistentFlags().StringVarP(&cc.environment, "environment", "e", "", "build environment")
                cmd.PersistentFlags().StringP("themesDir", "", "", "filesystem path to themes directory")
       -        cmd.PersistentFlags().BoolP("ignoreVendor", "", false, "ignores any _vendor directory")
                cmd.PersistentFlags().StringP("ignoreVendorPaths", "", "", "ignores any _vendor for module paths matching the given Glob pattern")
        }
        
   DIR diff --git a/commands/commands_test.go b/commands/commands_test.go
       @@ -164,16 +164,6 @@ func TestFlags(t *testing.T) {
                }{
                        {
                                // https://github.com/gohugoio/hugo/issues/7642
       -                        name: "ignoreVendor as bool",
       -                        args: []string{"server", "--ignoreVendor"},
       -                        check: func(c *qt.C, cmd *serverCmd) {
       -                                cfg := config.New()
       -                                cmd.flagsToConfig(cfg)
       -                                c.Assert(cfg.Get("ignoreVendor"), qt.Equals, true)
       -                        },
       -                },
       -                {
       -                        // https://github.com/gohugoio/hugo/issues/7642
                                name: "ignoreVendorPaths",
                                args: []string{"server", "--ignoreVendorPaths=github.com/**"},
                                check: func(c *qt.C, cmd *serverCmd) {
   DIR diff --git a/commands/convert.go b/commands/convert.go
       @@ -142,7 +142,7 @@ func (cc *convertCmd) convertAndSavePage(p page.Page, site *hugolib.Site, target
                        return nil
                }
        
       -        errMsg := fmt.Errorf("Error processing file %q", p.Path())
       +        errMsg := fmt.Errorf("Error processing file %q", p.File().Path())
        
                site.Log.Infoln("Attempting to convert", p.File().Filename())
        
       @@ -185,10 +185,10 @@ func (cc *convertCmd) convertAndSavePage(p page.Page, site *hugolib.Site, target
                newFilename := p.File().Filename()
        
                if cc.outputDir != "" {
       -                contentDir := strings.TrimSuffix(newFilename, p.Path())
       +                contentDir := strings.TrimSuffix(newFilename, p.File().Path())
                        contentDir = filepath.Base(contentDir)
        
       -                newFilename = filepath.Join(cc.outputDir, contentDir, p.Path())
       +                newFilename = filepath.Join(cc.outputDir, contentDir, p.File().Path())
                }
        
                fs := hugofs.Os
   DIR diff --git a/commands/hugo.go b/commands/hugo.go
       @@ -199,7 +199,6 @@ func initializeFlags(cmd *cobra.Command, cfg config.Provider) {
                        "forceSyncStatic",
                        "noTimes",
                        "noChmod",
       -                "ignoreVendor",
                        "ignoreVendorPaths",
                        "templateMetrics",
                        "templateMetricsHints",
       @@ -281,7 +280,6 @@ func isTerminal() bool {
        }
        
        func (c *commandeer) fullBuild(noBuildLock bool) error {
       -
                var (
                        g         errgroup.Group
                        langCount map[string]uint64
       @@ -542,7 +540,6 @@ func (c *commandeer) build() error {
        }
        
        func (c *commandeer) serverBuild() error {
       -
                stopProfiling, err := c.initProfiling()
                if err != nil {
                        return err
       @@ -739,7 +736,6 @@ func (c *commandeer) handleBuildErr(err error, msg string) {
        }
        
        func (c *commandeer) rebuildSites(events []fsnotify.Event) error {
       -
                c.buildErr = nil
                visited := c.visitedURLs.PeekAllSet()
                if c.fastRenderMode {
   DIR diff --git a/commands/mod.go b/commands/mod.go
       @@ -96,7 +96,7 @@ func (b *commandsBuilder) newModCmd() *modCmd {
        
                const commonUsage = `
        Note that Hugo will always start out by resolving the components defined in the site
       -configuration, provided by a _vendor directory (if no --ignoreVendor flag provided),
       +configuration, provided by a _vendor directory (if no --ignoreVendorPaths flag provided),
        Go Modules, or a folder inside the themes directory, in that order.
        
        See https://gohugo.io/hugo-modules/ for more information.
   DIR diff --git a/hugofs/files/classifier.go b/hugofs/files/classifier.go
       @@ -40,7 +40,6 @@ var (
                        "mdown", "markdown", "md",
                        "asciidoc", "adoc", "ad",
                        "rest", "rst",
       -                "mmark",
                        "org",
                        "pandoc", "pdc",
                }
   DIR diff --git a/hugolib/config.go b/hugolib/config.go
       @@ -53,7 +53,6 @@ var ErrNoConfigFile = errors.New("Unable to locate config file or config directo
        // LoadConfig loads Hugo configuration into a new Viper and then adds
        // a set of defaults.
        func LoadConfig(d ConfigSourceDescriptor, doWithConfig ...func(cfg config.Provider) error) (config.Provider, []string, error) {
       -
                if d.Environment == "" {
                        d.Environment = hugo.EnvironmentProduction
                }
       @@ -110,15 +109,8 @@ func LoadConfig(d ConfigSourceDescriptor, doWithConfig ...func(cfg config.Provid
                }
        
                // Config deprecations.
       -        // We made this a Glob pattern in Hugo 0.75, we don't need both.
       -        if l.cfg.GetBool("ignoreVendor") {
       -                helpers.Deprecated("--ignoreVendor", "Use --ignoreVendorPaths \"**\"", true)
       -                l.cfg.Set("ignoreVendorPaths", "**")
       -        }
       -
                if l.cfg.GetString("markup.defaultMarkdownHandler") == "blackfriday" {
                        helpers.Deprecated("markup.defaultMarkdownHandler=blackfriday", "See https://gohugo.io//content-management/formats/#list-of-content-formats", false)
       -
                }
        
                // Some settings are used before we're done collecting all settings,
   DIR diff --git a/hugolib/content_map_page.go b/hugolib/content_map_page.go
       @@ -403,7 +403,7 @@ func (m *pageMap) assembleResources(s string, p *pageState, parentBucket *pagesM
                                if err != nil {
                                        return true
                                }
       -                        rp.m.resourcePath = filepath.ToSlash(strings.TrimPrefix(rp.Path(), p.File().Dir()))
       +                        rp.m.resourcePath = filepath.ToSlash(strings.TrimPrefix(rp.File().Path(), p.File().Dir()))
                                r = rp
        
                        case files.ContentClassFile:
       @@ -468,7 +468,6 @@ func (m *pageMap) assembleSections() error {
        
                        kind := page.KindSection
                        if s == "/" {
       -
                                kind = page.KindHome
                        }
        
       @@ -580,7 +579,7 @@ func (m *pageMap) attachPageToViews(s string, b *contentNode) {
                        w := getParamToLower(b.p, viewName.plural+"_weight")
                        weight, err := cast.ToIntE(w)
                        if err != nil {
       -                        m.s.Log.Errorf("Unable to convert taxonomy weight %#v to int for %q", w, b.p.Path())
       +                        m.s.Log.Errorf("Unable to convert taxonomy weight %#v to int for %q", w, b.p.Pathc())
                                // weight will equal zero, so let the flow continue
                        }
        
   DIR diff --git a/hugolib/page.go b/hugolib/page.go
       @@ -145,7 +145,7 @@ func (p *pageState) Eq(other interface{}) bool {
        }
        
        func (p *pageState) GetIdentity() identity.Identity {
       -        return identity.NewPathIdentity(files.ComponentFolderContent, filepath.FromSlash(p.Path()))
       +        return identity.NewPathIdentity(files.ComponentFolderContent, filepath.FromSlash(p.Pathc()))
        }
        
        func (p *pageState) GitInfo() *gitmap.GitInfo {
       @@ -895,8 +895,8 @@ func (p *pageState) pathOrTitle() string {
                        return p.File().Filename()
                }
        
       -        if p.Path() != "" {
       -                return p.Path()
       +        if p.Pathc() != "" {
       +                return p.Pathc()
                }
        
                return p.Title()
   DIR diff --git a/hugolib/page__meta.go b/hugolib/page__meta.go
       @@ -233,6 +233,24 @@ func (p *pageMeta) Params() maps.Params {
        
        func (p *pageMeta) Path() string {
                if !p.File().IsZero() {
       +                const example = `
       +  {{ $path := "" }}
       +  {{ with .File }}
       +        {{ $path = .Path }}
       +  {{ else }}
       +        {{ $path = .Path }}
       +  {{ end }}
       +`
       +                helpers.Deprecated(".Path when the page is backed by a file", "We plan to use Path for a canonical source path and you probably want to check the source is a file. To get the current behaviour, you can use a construct simlar to the below:\n"+example, false)
       +
       +        }
       +
       +        return p.Pathc()
       +}
       +
       +// This is just a bridge method, use Path in templates.
       +func (p *pageMeta) Pathc() string {
       +        if !p.File().IsZero() {
                        return p.File().Path()
                }
                return p.SectionsPath()
       @@ -759,7 +777,7 @@ func (p *pageMeta) newContentConverter(ps *pageState, markup string, renderingCo
                        converter.DocumentContext{
                                Document:        newPageForRenderHook(ps),
                                DocumentID:      id,
       -                        DocumentName:    p.Path(),
       +                        DocumentName:    p.File().Path(),
                                Filename:        filename,
                                ConfigOverrides: renderingConfigOverrides,
                        },
   DIR diff --git a/hugolib/site.go b/hugolib/site.go
       @@ -689,12 +689,6 @@ func (s *SiteInfo) AllRegularPages() page.Pages {
                return s.s.AllRegularPages()
        }
        
       -func (s *SiteInfo) Permalinks() map[string]string {
       -        // Remove in 0.61
       -        helpers.Deprecated(".Site.Permalinks", "", true)
       -        return s.permalinks
       -}
       -
        func (s *SiteInfo) LastChange() time.Time {
                return s.s.lastmod
        }
       @@ -825,7 +819,7 @@ func (s siteRefLinker) logNotFound(ref, what string, p page.Page, position text.
                } else if p == nil {
                        s.errorLogger.Printf("[%s] REF_NOT_FOUND: Ref %q: %s", s.s.Lang(), ref, what)
                } else {
       -                s.errorLogger.Printf("[%s] REF_NOT_FOUND: Ref %q from page %q: %s", s.s.Lang(), ref, p.Path(), what)
       +                s.errorLogger.Printf("[%s] REF_NOT_FOUND: Ref %q from page %q: %s", s.s.Lang(), ref, p.Pathc(), what)
                }
        }
        
       @@ -1402,7 +1396,6 @@ func (s *Site) getMenusFromConfig() navigation.Menus {
                                                }
                                                s.Log.Errorf("unable to process menus in site config\n")
                                                s.Log.Errorln(err)
       -
                                        }
        
                                        for _, entry := range m {
   DIR diff --git a/hugolib/site_test.go b/hugolib/site_test.go
       @@ -957,7 +957,7 @@ func TestRefLinking(t *testing.T) {
        func checkLinkCase(site *Site, link string, currentPage page.Page, relative bool, outputFormat string, expected string, t *testing.T, i int) {
                t.Helper()
                if out, err := site.refLink(link, currentPage, relative, outputFormat); err != nil || out != expected {
       -                t.Fatalf("[%d] Expected %q from %q to resolve to %q, got %q - error: %s", i, link, currentPage.Path(), expected, out, err)
       +                t.Fatalf("[%d] Expected %q from %q to resolve to %q, got %q - error: %s", i, link, currentPage.Pathc(), expected, out, err)
                }
        }
        
   DIR diff --git a/hugolib/testhelpers_test.go b/hugolib/testhelpers_test.go
       @@ -800,7 +800,6 @@ func (s *sitesBuilder) NpmInstall() hexec.Runner {
                command, err := ex.New("npm", "install")
                s.Assert(err, qt.IsNil)
                return command
       -
        }
        
        func newTestHelper(cfg config.Provider, fs *hugofs.Fs, t testing.TB) testHelper {
       @@ -998,7 +997,7 @@ func content(c resource.ContentProvider) string {
        func pagesToString(pages ...page.Page) string {
                var paths []string
                for _, p := range pages {
       -                paths = append(paths, p.Path())
       +                paths = append(paths, p.Pathc())
                }
                sort.Strings(paths)
                return strings.Join(paths, "|")
       @@ -1020,7 +1019,7 @@ func dumpPages(pages ...page.Page) {
                fmt.Println("---------")
                for _, p := range pages {
                        fmt.Printf("Kind: %s Title: %-10s RelPermalink: %-10s Path: %-10s sections: %s Lang: %s\n",
       -                        p.Kind(), p.Title(), p.RelPermalink(), p.Path(), p.SectionsPath(), p.Lang())
       +                        p.Kind(), p.Title(), p.RelPermalink(), p.Pathc(), p.SectionsPath(), p.Lang())
                }
        }
        
       @@ -1028,7 +1027,7 @@ func dumpSPages(pages ...*pageState) {
                for i, p := range pages {
                        fmt.Printf("%d: Kind: %s Title: %-10s RelPermalink: %-10s Path: %-10s sections: %s\n",
                                i+1,
       -                        p.Kind(), p.Title(), p.RelPermalink(), p.Path(), p.SectionsPath())
       +                        p.Kind(), p.Title(), p.RelPermalink(), p.Pathc(), p.SectionsPath())
                }
        }
        
   DIR diff --git a/modules/client.go b/modules/client.go
       @@ -191,7 +191,7 @@ func (c *Client) Tidy() error {
        //
        // We, by default, use the /_vendor folder first, if found. To disable,
        // run with
       -//    hugo --ignoreVendor
       +//    hugo --ignoreVendorPaths=".*"
        //
        // Given a module tree, Hugo will pick the first module for a given path,
        // meaning that if the top-level module is vendored, that will be the full
   DIR diff --git a/resources/page/page.go b/resources/page/page.go
       @@ -180,6 +180,9 @@ type PageMetaProvider interface {
                // to the source of this Page. It will be relative to any content root.
                Path() string
        
       +        // This is just a temporary bridge method. Use Path in templates.
       +        Pathc() string
       +
                // The slug, typically defined in front matter.
                Slug() string
        
       @@ -392,5 +395,4 @@ type DeprecatedWarningPageMethods1 interface {
        
        // Move here to trigger ERROR instead of WARNING.
        // TODO(bep) create wrappers and put into the Page once it has some methods.
       -type DeprecatedErrorPageMethods interface {
       -}
       +type DeprecatedErrorPageMethods interface{}
   DIR diff --git a/resources/page/page_marshaljson.autogen.go b/resources/page/page_marshaljson.autogen.go
       @@ -17,6 +17,9 @@ package page
        
        import (
                "encoding/json"
       +        "html/template"
       +        "time"
       +
                "github.com/bep/gitmap"
                "github.com/gohugoio/hugo/common/maps"
                "github.com/gohugoio/hugo/config"
       @@ -26,8 +29,6 @@ import (
                "github.com/gohugoio/hugo/media"
                "github.com/gohugoio/hugo/navigation"
                "github.com/gohugoio/hugo/source"
       -        "html/template"
       -        "time"
        )
        
        func MarshalPageToJSON(p Page) ([]byte, error) {
       @@ -68,7 +69,7 @@ func MarshalPageToJSON(p Page) ([]byte, error) {
                linkTitle := p.LinkTitle()
                isNode := p.IsNode()
                isPage := p.IsPage()
       -        path := p.Path()
       +        path := p.Pathc()
                slug := p.Slug()
                lang := p.Lang()
                isSection := p.IsSection()
   DIR diff --git a/resources/page/page_matcher.go b/resources/page/page_matcher.go
       @@ -59,7 +59,7 @@ func (m PageMatcher) Matches(p Page) bool {
                if m.Path != "" {
                        g, err := glob.GetGlob(m.Path)
                        // TODO(bep) Path() vs filepath vs leading slash.
       -                p := strings.ToLower(filepath.ToSlash(p.Path()))
       +                p := strings.ToLower(filepath.ToSlash(p.Pathc()))
                        if !(strings.HasPrefix(p, "/")) {
                                p = "/" + p
                        }
       @@ -104,7 +104,6 @@ func DecodeCascade(in interface{}) (map[PageMatcher]maps.Params, error) {
                }
        
                return cascade, nil
       -
        }
        
        // DecodePageMatcher decodes m into v.
   DIR diff --git a/resources/page/page_nop.go b/resources/page/page_nop.go
       @@ -338,6 +338,10 @@ func (p *nopPage) Path() string {
                return ""
        }
        
       +func (p *nopPage) Pathc() string {
       +        return ""
       +}
       +
        func (p *nopPage) Permalink() string {
                return ""
        }
   DIR diff --git a/resources/page/testhelpers_test.go b/resources/page/testhelpers_test.go
       @@ -414,6 +414,10 @@ func (p *testPage) Path() string {
                return p.path
        }
        
       +func (p *testPage) Pathc() string {
       +        return p.path
       +}
       +
        func (p *testPage) Permalink() string {
                panic("not implemented")
        }