Bjørn Erik Pedersen
f2946da9e8
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
2022-05-06 19:43:22 +02:00
Bjørn Erik Pedersen
e66e2e9ce5
Revert "Revert "Fix PostProcess regression for hugo server""
...
This reverts commit 6c35a1a9ea
.
Updates #9794
2022-04-18 19:17:27 +02:00
Bjørn Erik Pedersen
6c35a1a9ea
Revert "Fix PostProcess regression for hugo server"
...
This reverts commit 4deb5c6066
.
2022-04-17 10:35:01 +02:00
Bjørn Erik Pedersen
4deb5c6066
Fix PostProcess regression for hugo server
...
Fixes #9788
2022-04-16 18:43:13 +02:00
Bjørn Erik Pedersen
30c2e54c25
Replace all usage of CopyOnWriteFs with OverlayFs
...
Fixes #9761
2022-04-10 13:49:31 +02:00
Bjørn Erik Pedersen
d070bdf10f
Rework the Destination filesystem to make --renderStaticToDisk work
...
See #9626
2022-04-08 13:26:17 +02:00
Bjørn Erik Pedersen
0a56f2af4e
Revert "Revert "Allow rendering static files to disk and dynamic to memory in server mode""
...
This reverts commit 64b7b7a897
.
2022-04-08 13:26:16 +02:00
Bjørn Erik Pedersen
1c0e7c1ae1
Make sure file mounts higher up wins
...
Fixes #9693
2022-03-20 20:23:03 +01:00
Bjørn Erik Pedersen
b80853de90
all: gofmt -w -r 'interface{} -> any' .
...
Updates #9687
2022-03-17 22:03:27 +01:00
Bjørn Erik Pedersen
64b7b7a897
Revert "Allow rendering static files to disk and dynamic to memory in server mode"
...
This reverts commit 7d8011ed63
.
Updates #9647
2022-03-11 13:10:47 +01:00
SatowTakeshi
7d8011ed63
Allow rendering static files to disk and dynamic to memory in server mode
...
Updates #9625
2022-03-08 19:27:54 +01:00
Bjørn Erik Pedersen
673cde1eb1
tpl/os: Revert readDir in theme behaviour
...
Fixes #9599
2022-03-04 08:43:47 +01:00
Bjørn Erik Pedersen
7a080b624e
Fix duplicate mount sources
...
Fixes #9426
2022-01-26 20:32:13 +01:00
Bjørn Erik Pedersen
2b6063c3e3
Misc depreation updates
...
* Deprecate .Page.Path when backed by a file
* site.Permalinks
* --ignoreVendor (use --ignoreVendorPaths)
Closes #9348
Closes #9349
2022-01-04 17:10:39 +01:00
Bjørn Erik Pedersen
2e70f61fb0
Fix content dir resolution when main project is a Hugo Module
...
Fixes #9177
2021-11-16 20:42:34 +01:00
Bjørn Erik Pedersen
471ed91c60
hugofs: Add includeFiles and excludeFiles to mount configuration
...
Fixes #9042
2021-10-20 05:00:17 +02:00
Bjørn Erik Pedersen
096f5e1921
Fix the "page picker" logic in --navigateToChanged
...
Fixes #9051
2021-10-18 12:13:13 +02:00
Bjørn Erik Pedersen
9185e11eff
Reimplement archetypes
...
The old implementation had some issues, mostly related to the context (e.g. name, file paths) passed to the template.
This new implementation is using the exact same code path for evaluating the pages as in a regular build.
This also makes it more robust and easier to reason about in a multilingual setup.
Now, if you are explicit about the target path, Hugo will now always pick the correct mount and language:
```bash
hugo new content/en/posts/my-first-post.md
```
Fixes #9032
Fixes #7589
Fixes #9043
Fixes #9046
Fixes #9047
2021-10-16 15:22:03 +02:00
Bjørn Erik Pedersen
022c479551
hugofs: Make FileMeta a struct
...
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-15 17:14:26 +02:00
Bjørn Erik Pedersen
d392893cd7
Misc config loading fixes
...
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-14 17:00:32 +02:00
Bjørn Erik Pedersen
06d295427f
hugofs: Set modTime at creation time
...
As `ModTime()` should return the same value on each invocation.
See #6161
2021-06-05 11:45:56 +02:00
Anthony Fok
26ae12c0c6
Fix invalid timestamp of the "public" folder
...
Special thanks to both Richard Mortimer (@oldelvet) and
Joshua M. Clulow (@jclulow) for their analysis and suggested fix:
* https://github.com/gohugoio/hugo/issues/6161#issuecomment-574336088
* https://github.com/gohugoio/hugo/issues/6161#issuecomment-596805273
Fixes #6161
2021-06-04 14:50:30 -06:00
Bjørn Erik Pedersen
bdfbcf6f4b
modules: Add config option modules.vendorClosest
...
Fixes #8235
Fixes #8242
2021-02-16 16:30:01 +01:00
Robert-André Mauchin
07ad283f68
build(deps): bump github.com/spf13/afero from 1.4.1 to 1.5.1
...
Signed-off-by: Robert-André Mauchin <zebob.m@gmail.com>
2021-01-19 17:25:20 +01:00
Bjørn Erik Pedersen
cea1574023
Add Dart Sass support
...
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-30 17:32:25 +01:00
Phil Davis
04b89857e1
all: Fix minor typos
2020-12-16 12:11:32 +01:00
Bjørn Erik Pedersen
d90e37e0c6
all: Format code with gofumpt
...
See https://github.com/mvdan/gofumpt
2020-12-03 13:12:58 +01:00
Bjørn Erik Pedersen
85e4dd7370
Make js.Build fully support modules
...
Fixes #7816
Fixes #7777
Fixes #7916
2020-11-03 13:04:37 +01:00
Bjørn Erik Pedersen
fdfa4a5fe6
Allow getJSON errors to be ignored
...
This change is mostly motivated to get a more stable CI build (we're building the Hugo site there, with Instagram and Twitter shortcodes sometimes failing).
Fixes #7866
2020-10-22 09:09:29 +02:00
Bjørn Erik Pedersen
c63db7f1f6
Allow cascade to be a slice with a _target discriminator
...
Fixes #7782
2020-10-06 14:06:10 +02:00
Bjørn Erik Pedersen
85ba9bfffb
Add "hugo mod npm pack"
...
This commit also introduces a convention where these common JS config files, including `package.hugo.json`, gets mounted into:
```
assets/_jsconfig
´``
These files mapped to their real filename will be added to the environment when running PostCSS, Babel etc., so you can do `process.env.HUGO_FILE_TAILWIND_CONFIG_JS` to resolve the real filename.
But do note that `assets` is a composite/union filesystem, so if your config file is not meant to be overridden, name them something specific.
This commit also adds adds `workDir/node_modules` to `NODE_PATH` and `HUGO_WORKDIR` to the env when running the JS tools above.
Fixes #7644
Fixes #7656
Fixes #7675
2020-09-13 20:55:29 +02:00
Raphael Krupinski
83d03a5201
hugofs: Use os.PathError in RootMappingFs.doLstat
2020-06-11 14:59:01 +02:00
Evan Anderson
cc2a5d52a4
Pass directory name to filters in LstatIfPossible in the same way as Readdir
2020-03-19 20:09:34 +01:00
Bjørn Erik Pedersen
ffcb4aeb8e
Fix handling of HTML files without front matter
...
This means that any HTML file inside /content will be treated as a regular file.
If you want it processes with shortcodes and a layout, add front matter.
The defintion of an HTML file here is:
* File with extension .htm or .html
* With first non-whitespace character "<" that isn't a HTML comment.
This is in line with the documentation.
Fixes #7030
Fixes #7028
See #6789
2020-03-09 15:01:55 +01:00
Bjørn Erik Pedersen
dce210ab56
modules: Improve "hugo mod clean"
...
* Only clean project modules
* Optional glob pattern of module paths to clean
Closes #6907
2020-02-19 17:14:35 +01:00
Bjørn Erik Pedersen
0b96aba022
commands: Add "hugo mod verify"
...
See #6907
2020-02-19 17:14:35 +01:00
Bjørn Erik Pedersen
eada236f87
Introduce a tree map for all content
...
This commit introduces a new data structure to store pages and their resources.
This data structure is backed by radix trees.
This simplies tree operations, makes all pages a bundle, and paves the way for #6310 .
It also solves a set of annoying issues (see list below).
Not a motivation behind this, but this commit also makes Hugo in general a little bit faster and more memory effective (see benchmarks). Especially for partial rebuilds on content edits, but also when taxonomies is in use.
```
name old time/op new time/op delta
SiteNew/Bundle_with_image/Edit-16 1.32ms ± 8% 1.00ms ± 9% -24.42% (p=0.029 n=4+4)
SiteNew/Bundle_with_JSON_file/Edit-16 1.28ms ± 0% 0.94ms ± 0% -26.26% (p=0.029 n=4+4)
SiteNew/Tags_and_categories/Edit-16 33.9ms ± 2% 21.8ms ± 1% -35.67% (p=0.029 n=4+4)
SiteNew/Canonify_URLs/Edit-16 40.6ms ± 1% 37.7ms ± 3% -7.20% (p=0.029 n=4+4)
SiteNew/Deep_content_tree/Edit-16 56.7ms ± 0% 51.7ms ± 1% -8.82% (p=0.029 n=4+4)
SiteNew/Many_HTML_templates/Edit-16 19.9ms ± 2% 18.3ms ± 3% -7.64% (p=0.029 n=4+4)
SiteNew/Page_collections/Edit-16 37.9ms ± 4% 34.0ms ± 2% -10.28% (p=0.029 n=4+4)
SiteNew/Bundle_with_image-16 10.7ms ± 0% 10.6ms ± 0% -1.15% (p=0.029 n=4+4)
SiteNew/Bundle_with_JSON_file-16 10.8ms ± 0% 10.7ms ± 0% -1.05% (p=0.029 n=4+4)
SiteNew/Tags_and_categories-16 43.2ms ± 1% 39.6ms ± 1% -8.35% (p=0.029 n=4+4)
SiteNew/Canonify_URLs-16 47.6ms ± 1% 47.3ms ± 0% ~ (p=0.057 n=4+4)
SiteNew/Deep_content_tree-16 73.0ms ± 1% 74.2ms ± 1% ~ (p=0.114 n=4+4)
SiteNew/Many_HTML_templates-16 37.9ms ± 0% 38.1ms ± 1% ~ (p=0.114 n=4+4)
SiteNew/Page_collections-16 53.6ms ± 1% 54.7ms ± 1% +2.09% (p=0.029 n=4+4)
name old alloc/op new alloc/op delta
SiteNew/Bundle_with_image/Edit-16 486kB ± 0% 430kB ± 0% -11.47% (p=0.029 n=4+4)
SiteNew/Bundle_with_JSON_file/Edit-16 265kB ± 0% 209kB ± 0% -21.06% (p=0.029 n=4+4)
SiteNew/Tags_and_categories/Edit-16 13.6MB ± 0% 8.8MB ± 0% -34.93% (p=0.029 n=4+4)
SiteNew/Canonify_URLs/Edit-16 66.5MB ± 0% 63.9MB ± 0% -3.95% (p=0.029 n=4+4)
SiteNew/Deep_content_tree/Edit-16 28.8MB ± 0% 25.8MB ± 0% -10.55% (p=0.029 n=4+4)
SiteNew/Many_HTML_templates/Edit-16 6.16MB ± 0% 5.56MB ± 0% -9.86% (p=0.029 n=4+4)
SiteNew/Page_collections/Edit-16 16.9MB ± 0% 16.0MB ± 0% -5.19% (p=0.029 n=4+4)
SiteNew/Bundle_with_image-16 2.28MB ± 0% 2.29MB ± 0% +0.35% (p=0.029 n=4+4)
SiteNew/Bundle_with_JSON_file-16 2.07MB ± 0% 2.07MB ± 0% ~ (p=0.114 n=4+4)
SiteNew/Tags_and_categories-16 14.3MB ± 0% 13.2MB ± 0% -7.30% (p=0.029 n=4+4)
SiteNew/Canonify_URLs-16 69.1MB ± 0% 69.0MB ± 0% ~ (p=0.343 n=4+4)
SiteNew/Deep_content_tree-16 31.3MB ± 0% 31.8MB ± 0% +1.49% (p=0.029 n=4+4)
SiteNew/Many_HTML_templates-16 10.8MB ± 0% 10.9MB ± 0% +1.11% (p=0.029 n=4+4)
SiteNew/Page_collections-16 21.4MB ± 0% 21.6MB ± 0% +1.15% (p=0.029 n=4+4)
name old allocs/op new allocs/op delta
SiteNew/Bundle_with_image/Edit-16 4.74k ± 0% 3.86k ± 0% -18.57% (p=0.029 n=4+4)
SiteNew/Bundle_with_JSON_file/Edit-16 4.73k ± 0% 3.85k ± 0% -18.58% (p=0.029 n=4+4)
SiteNew/Tags_and_categories/Edit-16 301k ± 0% 198k ± 0% -34.14% (p=0.029 n=4+4)
SiteNew/Canonify_URLs/Edit-16 389k ± 0% 373k ± 0% -4.07% (p=0.029 n=4+4)
SiteNew/Deep_content_tree/Edit-16 338k ± 0% 262k ± 0% -22.63% (p=0.029 n=4+4)
SiteNew/Many_HTML_templates/Edit-16 102k ± 0% 88k ± 0% -13.81% (p=0.029 n=4+4)
SiteNew/Page_collections/Edit-16 176k ± 0% 152k ± 0% -13.32% (p=0.029 n=4+4)
SiteNew/Bundle_with_image-16 26.8k ± 0% 26.8k ± 0% +0.05% (p=0.029 n=4+4)
SiteNew/Bundle_with_JSON_file-16 26.8k ± 0% 26.8k ± 0% +0.05% (p=0.029 n=4+4)
SiteNew/Tags_and_categories-16 273k ± 0% 245k ± 0% -10.36% (p=0.029 n=4+4)
SiteNew/Canonify_URLs-16 396k ± 0% 398k ± 0% +0.39% (p=0.029 n=4+4)
SiteNew/Deep_content_tree-16 317k ± 0% 325k ± 0% +2.53% (p=0.029 n=4+4)
SiteNew/Many_HTML_templates-16 146k ± 0% 147k ± 0% +0.98% (p=0.029 n=4+4)
SiteNew/Page_collections-16 210k ± 0% 215k ± 0% +2.44% (p=0.029 n=4+4)
```
Fixes #6312
Fixes #6087
Fixes #6738
Fixes #6412
Fixes #6743
Fixes #6875
Fixes #6034
Fixes #6902
Fixes #6173
Fixes #6590
2020-02-18 09:49:42 +01:00
Bjørn Erik Pedersen
b78576fd38
hugofs: Fix mount with hole regression
...
Fixes #6854
2020-02-09 21:35:39 +01:00
Bjørn Erik Pedersen
18888e09bb
Fix bundle resource ordering regression
...
Introduced in Hugo 0.64.0
Fixes #6851
2020-02-09 21:35:39 +01:00
Bjørn Erik Pedersen
80dd6ddde2
Fix module mount in sub folder
...
This addresses a specific issue, but is a also a major simplification of the filesystem file mounts.
Fixes #6730
2020-02-04 00:17:10 +01:00
Bjørn Erik Pedersen
17af79a03e
Fix 0.62.1 server rebuild slowdown regression
...
Fixes #6784
2020-01-23 11:50:02 +01:00
Bjørn Erik Pedersen
ff6253bc7c
Support files in content mounts
...
This commit is a general improvement of handling if single file mounts.
Fixes #6684
Fixes #6696
2020-01-01 18:19:49 +01:00
Bjørn Erik Pedersen
33c474b9b3
hugofs: Fix crash in multilingual content fs
...
Fixes #6463
2019-10-31 16:11:53 +01:00
Bjørn Erik Pedersen
f10db101a1
hugofs: Add FileMeta.String
...
To make the page listing easier to compare.
2019-10-09 10:30:09 +02:00
Bjørn Erik Pedersen
cd575023af
Improve the server assets cache invalidation logic
...
Fixes #6199
2019-08-13 18:09:46 +02:00
Bjørn Erik Pedersen
b64617fe4f
Add resources.Match and resources.GetMatch
...
Fix #6190
2019-08-13 11:44:20 +02:00
Bjørn Erik Pedersen
9e57182705
tests: Convert from testify to quicktest
2019-08-12 13:26:32 +02:00
Christian Muehlhaeuser
c577a9ed23
Fixed ineffectual assignments
...
Dropped/fixed ineffectual assignments after static code analysis.
2019-08-10 20:11:51 +02:00
Bjørn Erik Pedersen
166a394a2f
Fix static sync issue with virtual mounts
...
Fixes #6165
2019-08-09 10:18:28 +02:00
Bjørn Erik Pedersen
7ff0a8ee9f
Simplify page tree logic
...
This is preparation for #6041 .
For historic reasons, the code for bulding the section tree and the taxonomies were very much separate.
This works, but makes it hard to extend, maintain, and possibly not so fast as it could be.
This simplification also introduces 3 slightly breaking changes, which I suspect most people will be pleased about. See referenced issues:
This commit also switches the radix tree dependency to a mutable implementation: github.com/armon/go-radix.
Fixes #6154
Fixes #6153
Fixes #6152
2019-08-08 20:13:39 +02:00