mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-28 22:19:59 +02:00
Improve error messages, esp. when the server is running
* Add file context to minifier errors when publishing * Misc fixes (see issues) * Allow custom server error template in layouts/server/error.html To get to this, this commit also cleans up and simplifies the code surrounding errors and files. This also removes the usage of `github.com/pkg/errors`, mostly because of https://github.com/pkg/errors/issues/223 -- but also because most of this is now built-in to Go. Fixes #9852 Fixes #9857 Fixes #9863
This commit is contained in:
@@ -23,7 +23,7 @@ import (
|
||||
|
||||
"github.com/spf13/cast"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
"errors"
|
||||
|
||||
"github.com/gohugoio/hugo/config"
|
||||
)
|
||||
@@ -72,7 +72,7 @@ func LoadLanguageSettings(cfg config.Provider, oldLangs Languages) (c LanguagesC
|
||||
} else {
|
||||
languages2, err = toSortedLanguages(cfg, languages)
|
||||
if err != nil {
|
||||
return c, errors.Wrap(err, "Failed to parse multilingual config")
|
||||
return c, fmt.Errorf("Failed to parse multilingual config: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -15,6 +15,7 @@ package i18n
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/gohugoio/hugo/common/paths"
|
||||
@@ -30,7 +31,6 @@ import (
|
||||
"github.com/gohugoio/hugo/deps"
|
||||
"github.com/gohugoio/hugo/hugofs"
|
||||
"github.com/gohugoio/hugo/source"
|
||||
_errors "github.com/pkg/errors"
|
||||
)
|
||||
|
||||
// TranslationProvider provides translation handling, i.e. loading
|
||||
@@ -83,7 +83,7 @@ const artificialLangTagPrefix = "art-x-"
|
||||
func addTranslationFile(bundle *i18n.Bundle, r source.File) error {
|
||||
f, err := r.FileInfo().Meta().Open()
|
||||
if err != nil {
|
||||
return _errors.Wrapf(err, "failed to open translations file %q:", r.LogicalName())
|
||||
return fmt.Errorf("failed to open translations file %q:: %w", r.LogicalName(), err)
|
||||
}
|
||||
|
||||
b := helpers.ReaderToBytes(f)
|
||||
@@ -96,7 +96,7 @@ func addTranslationFile(bundle *i18n.Bundle, r source.File) error {
|
||||
try := artificialLangTagPrefix + lang
|
||||
_, err = language.Parse(try)
|
||||
if err != nil {
|
||||
return _errors.Errorf("%q %s.", try, err)
|
||||
return fmt.Errorf("%q: %s", try, err)
|
||||
}
|
||||
name = artificialLangTagPrefix + name
|
||||
}
|
||||
@@ -111,7 +111,7 @@ func addTranslationFile(bundle *i18n.Bundle, r source.File) error {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
return errWithFileContext(_errors.Wrapf(err, "failed to load translations"), r)
|
||||
return errWithFileContext(fmt.Errorf("failed to load translations: %w", err), r)
|
||||
}
|
||||
|
||||
return nil
|
||||
@@ -138,11 +138,6 @@ func errWithFileContext(inerr error, r source.File) error {
|
||||
}
|
||||
defer f.Close()
|
||||
|
||||
err, _ = herrors.WithFileContext(
|
||||
inerr,
|
||||
realFilename,
|
||||
f,
|
||||
herrors.SimpleLineMatcher)
|
||||
return herrors.NewFileError(realFilename, inerr).UpdateContent(f, herrors.SimpleLineMatcher)
|
||||
|
||||
return err
|
||||
}
|
||||
|
@@ -14,6 +14,7 @@
|
||||
package langs
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"sort"
|
||||
"strings"
|
||||
"sync"
|
||||
@@ -22,8 +23,6 @@ import (
|
||||
"golang.org/x/text/collate"
|
||||
"golang.org/x/text/language"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
|
||||
"github.com/gohugoio/hugo/common/htime"
|
||||
"github.com/gohugoio/hugo/common/maps"
|
||||
"github.com/gohugoio/hugo/config"
|
||||
@@ -311,7 +310,7 @@ func GetCollator(l *Language) *Collator {
|
||||
func (l *Language) loadLocation(tzStr string) error {
|
||||
location, err := time.LoadLocation(tzStr)
|
||||
if err != nil {
|
||||
return errors.Wrapf(err, "invalid timeZone for language %q", l.Lang)
|
||||
return fmt.Errorf("invalid timeZone for language %q: %w", l.Lang, err)
|
||||
}
|
||||
l.location = location
|
||||
|
||||
|
Reference in New Issue
Block a user