summaryrefslogtreecommitdiffstats
path: root/resources
AgeCommit message (Collapse)Author
2021-10-30resources: Rename excepted filenames for image golden testdataAnthony Fok
As documented in commit 30eea3915b67f72611a3b2f4547146d4c6a96864, some filenames have changed due to cache busting of PNG and Webp images. This resolves recent TestImageOperationsGolden failure on arm64, ppc64le and s390x. See #6387 and #8729
2021-10-19resources: Always preserve the original transform errorBjørn Erik Pedersen
2021-10-10Allow multiple plugins in the PostCSS options mapJoe Mooring
Usage: {{ $options := dict "use" "autoprefixer postcss-color-alpha" }} {{ $style := resources.Get "main.css" | resources.PostCSS $options }} Fixes #9015
2021-09-22Pass minification errors to the userPaul Gottschling
Previously, *minifyTransformation.Transform suppressed the error returned by t.m.Minify. This meant that when minification returned an error, the error would not reach the user. Instead, minification would silently fail. For example, if a JavaScript file included a call to the Date constructor with: new Date(2020, 04, 02) The package that the minification library uses to parse JS files, github.com/tdewolff/parse would return an error, since "04" would be parsed as a legacy octal. However, the JS file would remain un-minified with no error. Fixing this is not as simple as replacing "_" with an "err" in *minifyTransformation.Transform, however (though this is necessary). If we only returned this error from Transform, then hugolib.TestResourceMinifyDisabled would fail. Instead of being a no-op, as TestResourceMinifyDisabled expects, using the "minify" template function with a "disableXML=true" config setting instead returns the error, "minifier does not exist for mimetype." The "minifier does not exist" error is returned because of the way minifiers.New works. If the user's config disables minification for a particular MIME type, minifiers.New does not add it to the resulting Client's *minify.M. However, this also means that when the "minify" template function is executed, a *resourceAdapter's transformations still add a minification. When it comes time to call the minify.Minifier for a specific MIME type via *M.MinifyMimetype, the github.com/tdewolff/minify library throws the "does not exist" error for the missing MIME type. The solution was to change minifiers.New so, instead of skipping a minifier for each disabled MIME type, it adds a NoOpMinifier, which simply copies the source to the destination without minification. This means that when the "minify" template function is used for a particular resource, and that resource's MIME type has minification disabled, minification is genuinely skipped, and does not result in an error. In order to add this, I've fixed a possibly unwanted interaction between minifiers.TestConfigureMinify and hugolib.TestResourceMinifyDisabled. The latter disables minification and expects minification to be a no-op. The former disables minification and expects it to result in an error. The only reason hugolib.TestResourceMinifyDisabled passes in the original code is that the "does not exist" error is suppressed. However, we shouldn't suppress minification errors, since they can leave users perplexed. I've changed the test assertion in minifiers.TestConfigureMinify to expect no errors and a no-op if minification is disabled for a particular MIME type. Fixes #8954
2021-09-19resources: Use default math/rand.Source for concurrency safetyEmmanuel T Odeke
The source from NewSource is documented not to be safe for concurrency, and instead use the eefault source which is documented as safe. Fixes #8981
2021-09-01js: Fix import order for ./foo when both ./foo.js and ./foo/index.js existsBjørn Erik Pedersen
This is in line with how both Node and ESBuild's native import resolver does it. The ambiguous situations above were discovered trying to build AlpineJS v3. Note that the above was never an issue if you used `./foo.js` and similar to import the component. Fixes #8945
2021-08-22Prevent minifier from removing quoutes around post-processed attributesBjørn Erik Pedersen
Fixes #8884
2021-07-29Go back to WARNING for Page deprecationsBjørn Erik Pedersen
Do that in the next release, let's reduce the noise, we have enough changes as it is.
2021-07-28Handle toml.LocalDate and toml.LocalDateTime in front matterBjørn Erik Pedersen
See #8801
2021-07-27Add timezone support for front matter dates without oneBjørn Erik Pedersen
Fixes #8810
2021-07-25Bump all long-living deprecations to ERRORsBjørn Erik Pedersen
2021-07-19minifiers: Make keepWhitespace = true default for HTMLBjørn Erik Pedersen
Fixes #8771
2021-07-15hugofs: Make FileMeta a structBjørn Erik Pedersen
This commit started out investigating a `concurrent map read write` issue, ending by replacing the map with a struct. This is easier to reason about, and it's more effective: ``` name old time/op new time/op delta SiteNew/Regular_Deep_content_tree-16 71.5ms ± 3% 69.4ms ± 5% ~ (p=0.200 n=4+4) name old alloc/op new alloc/op delta SiteNew/Regular_Deep_content_tree-16 29.7MB ± 0% 27.9MB ± 0% -5.82% (p=0.029 n=4+4) name old allocs/op new allocs/op delta SiteNew/Regular_Deep_content_tree-16 313k ± 0% 303k ± 0% -3.35% (p=0.029 n=4+4) ``` See #8749
2021-07-10Add config.cascadeBjørn Erik Pedersen
This commit adds support for using the `cascade` keyword in your configuration file(s), e.g. `config.toml`. Note that * Every feature of `cascade` is available, e.g. `_target` to target specific page sets. * Pages, e.g. the home page, can overwrite the cascade defined in config. Fixes #8741
2021-07-07resources: Regenerate image golden testdataBjørn Erik Pedersen
Keep this as a separate commit as this isn't because the files have changed. The filenames have changed due to cache busting of PNG and Webp images. See #8729
2021-07-07Fix transparency problem when converting 32-bit images to WebPBjørn Erik Pedersen
Fixes #8729
2021-07-05exif: Log warning for metadata decode errorBrandon Woodford
see #8519
2021-06-18Split out the puthe path/filepath functions into common/pathsBjørn Erik Pedersen
So they can be used from the config package without cyclic troubles. Updates #8654
2021-06-17resources/image: Fix fill with smartcrop sometimes returning 0 bytes imagesBjørn Erik Pedersen
Fixes #7955
2021-06-14Misc config loading fixesBjørn Erik Pedersen
The main motivation behind this is simplicity and correctnes, but the new small config library is also faster: ``` BenchmarkDefaultConfigProvider/Viper-16 252418 4546 ns/op 2720 B/op 30 allocs/op BenchmarkDefaultConfigProvider/Custom-16 450756 2651 ns/op 1008 B/op 6 allocs/op ``` Fixes #8633 Fixes #8618 Fixes #8630 Updates #8591 Closes #6680 Closes #5192
2021-06-08Upgrade Instagram shortcodeBjørn Erik Pedersen
Fixes #7879
2021-06-07tpl/fmt: Add erroridf template funcBjørn Erik Pedersen
Fixes #8613
2021-04-25resources/page: Fix permalinks pattern detection for some of the sections ↵Bjørn Erik Pedersen
variants See #8363
2021-04-15Add webp image encoding supportBjørn Erik Pedersen
Fixes #5924
2021-03-30Add slice syntax to sections permalinks configBjørn Erik Pedersen
Fixes #8363
2021-03-14media: Make Type comparableBjørn Erik Pedersen
So we can use it and output.Format as map key etc. This commit also fixes the media.Type implementation so it does not need to mutate itself to handle different suffixes for the same MIME type, e.g. jpg vs. jpeg. This means that there are no Suffix or FullSuffix on media.Type anymore. Fixes #8317 Fixes #8324
2021-03-14deps: Update to esbuild v0.9.0Bjørn Erik Pedersen
2021-03-13exif: Fix handling of utf8 runes in nullString()Cameron Moore
2021-03-13exif: Allow more spacing characters in stringsCameron Moore
The root cause of issue #8079 was a non-breaking space (U+0160). `unicode.IsPrint` only allows the ASCII space (U+0020). Be more lenient by using `unicode.IsGraphic` instead. Fixes #8079
2021-02-16js: Fix potential path issue on WindowsBjørn Erik Pedersen
2021-02-01deps: Update to esbuild v0.8.39Bjørn Erik Pedersen
Fixes #8189
2021-01-22js: Add Inject config optionBjørn Erik Pedersen
Fixes #8164
2021-01-22js: Add Shims optionBjørn Erik Pedersen
This commit adds a new `shims` option to `js.Build` that allows swapping out a component with another. Fixes #8165
2021-01-21Fix nilpointer in js.Build error handlingBjørn Erik Pedersen
Fixes #8162
2021-01-18pipes: Add external source map support to js.Build and BabelAndreas Richter
Fixes #8132
2020-12-31Allow Dart Sass transformations to be cached on diskBjørn Erik Pedersen
This enbles people to build their sites/themes on servers where the Dart Sass binary is not available.
2020-12-31dartsass: Add missing OutputStyle optionBjørn Erik Pedersen
2020-12-30Add Dart Sass supportBjørn Erik Pedersen
But note that the Dart Sass Embedded Protocol is still in beta (beta 5), a main release scheduled for Q1 2021. Fixes #7380 Fixes #8102
2020-12-28GroupByParamDate now supports datetimesHorst Gutmann
Previously, the method only worked for date strings but not (for instance) full RFC3339 datetime strings.
2020-12-19Improve LookPathBjørn Erik Pedersen
2020-12-17Fix Resource.ResourceType so it always returns MIME's main typeBjørn Erik Pedersen
The one exception being for the Page, which does not have a MIME type, in which you will get the value `page`. Fixes #8052
2020-12-17images: Add images.Overlay filterBjørn Erik Pedersen
This allows for constructs ala: ``` {{ $overlay := $img.Filter (images.Overlay $logo 50 50 )}} ``` Or: ``` {{ $logoFilter := (images.Overlay $logo 50 50 ) }} {{ $overlay := $img | images.Filter $logoFilter }} ``` Which will overlay the logo in the top left corner (x=50, y=50) of `$img`. Fixes #8057 Fixes #4595 Updates #6731
2020-12-16tpl: Regenerate templatesBjørn Erik Pedersen
2020-12-16all: Fix minor typosPhil Davis
2020-12-03all: Format code with gofumptBjørn Erik Pedersen
See https://github.com/mvdan/gofumpt
2020-11-25deps: Update to github.com/evanw/esbuild 0.8.11 to 0.8.14Bjørn Erik Pedersen
Closes #7986
2020-11-21resources: Preserve url set in frontmatter without sanitizingSatowTakeshi
related #6007 (already closed)
2020-11-13js: Let ESBuild handle all imports from node_modulesBjørn Erik Pedersen
This commit fixes some issues where modules in /assets share the same name as in node_modules. This was not intended, and with this commit the node_modules-components should be isolated. If you want to redefine something inside node_modules, use the `defines` option. Fixes #7948
2020-11-04js: Remove external source map optionBjørn Erik Pedersen
It was merged by accident and the implementation does not look correct. Fixes #7932
2020-11-04js: Misc fixesBjørn Erik Pedersen
* Fix resolve of package.json deps in submodules * Fix directory logic for writing assets/jsconfig.json Fixes #7924 Fixes #7923