Bjørn Erik Pedersen
0579afc3c5
Fix "assignment to entry in nil map" on empty YAML config files
...
Fixes #14074
2025-10-22 13:40:03 +02:00
Bjørn Erik Pedersen
a1307700dd
config: Clone language map entries before modifying them
...
Now, with YAML anchor and alias support, these can point to shared data,
which must not be modified in place.
Fixes #14072
2025-10-21 13:34:15 +02:00
Bjørn Erik Pedersen
9425b939c6
Skip flaky test for now
...
See #14072
2025-10-21 10:32:52 +02:00
Bjørn Erik Pedersen
bd50c9c7e7
Misc YAML adjustments
...
Closes #14067
2025-10-20 16:05:05 +02:00
Bjørn Erik Pedersen
a3d9548469
Replace to gopkg.in/yaml with github.com/goccy/go-yaml (note)
...
This commit also adds validation to prevent the "Billion Laughs" attack (see https://github.com/goccy/go-yaml/issues/461 ). The limit of non-scalar aliases to the same node is set to 10,000. See benchmarks below.
``` │ sec/op │
UnmarshalBillionLaughs/Billion_Laughs_no_validation-10 125.2µ ± ∞ ¹
UnmarshalBillionLaughs/Billion_Laughs_with_validation-10 655.8µ ± ∞ ¹
UnmarshalBillionLaughs/YAML_Front_Matter_no_validation-10 9.223µ ± ∞ ¹
UnmarshalBillionLaughs/YAML_Front_Matter_with_validation-10 9.443µ ± ∞ ¹
geomean 51.71µ
¹ need >= 6 samples for confidence interval at level 0.95
│ fix-goyaml-8822.bench │
│ B/op │
UnmarshalBillionLaughs/Billion_Laughs_no_validation-10 177.0Ki ± ∞ ¹
UnmarshalBillionLaughs/Billion_Laughs_with_validation-10 177.0Ki ± ∞ ¹
UnmarshalBillionLaughs/YAML_Front_Matter_no_validation-10 11.67Ki ± ∞ ¹
UnmarshalBillionLaughs/YAML_Front_Matter_with_validation-10 11.67Ki ± ∞ ¹
geomean 45.45Ki
¹ need >= 6 samples for confidence interval at level 0.95
│ fix-goyaml-8822.bench │
│ allocs/op │
UnmarshalBillionLaughs/Billion_Laughs_no_validation-10 3.302k ± ∞ ¹
UnmarshalBillionLaughs/Billion_Laughs_with_validation-10 3.305k ± ∞ ¹
UnmarshalBillionLaughs/YAML_Front_Matter_no_validation-10 253.0 ± ∞ ¹
UnmarshalBillionLaughs/YAML_Front_Matter_with_validation-10 253.0 ± ∞ ¹
````
Fixes #8822
Fixes #13043
Fixes #14053
Fixes ##8427
2025-10-18 13:52:22 +02:00
Bjørn Erik Pedersen
510d98b778
Adjust the terminal progress reporter a little
...
Mostly to reduce the amount of OSC 9;4 sequences written to stdout.
2025-10-02 14:57:42 +02:00
Bjørn Erik Pedersen
ec463c0977
Report OSC 9;4 progress when building
...
As supported by the Ghostty terminal and others.
2025-10-01 14:27:23 +02:00
Joe Mooring
47678d8cbd
markup/goldmark: Enhance footnote extension with auto-prefixing option
...
This commit introduces a new option, enableAutoIDPrefix, to the Goldmark
footnote extension. When enabled, it prepends a unique prefix to
footnote IDs, preventing clashes when multiple documents are rendered
together. This prefix is unique to each logical path, which means that
the prefix is not unique across content dimensions such as language.
This change also refactors the extension's configuration from a boolean
to a struct.
Closes #8045
2025-09-27 18:16:42 +02:00
Joe Mooring
64f40731f1
hugolib: Change duplicate content path warning to an info log
...
Improves #13993
2025-09-20 20:13:08 +02:00
Joe Mooring
1140314be1
hugolib: Restore integration test
...
Closes #13991
2025-09-18 18:02:13 +02:00
Joe Mooring
d8774d7fc3
resources/page: Fix truncated summary logic
...
Fixes #13967
Fixes #13968
2025-09-07 11:07:41 +02:00
Bjørn Erik Pedersen
186934feb4
common/hcontext: Replace with external package
2025-08-22 09:13:46 +02:00
Bjørn Erik Pedersen
13b43e6117
Fix server rebuild when adding a new leaf bundle with resources in one go
...
E.g. `cp -r`.
Note that this was not an issue if you first created the bundle, waited, and then created the resource(s).
Fixes #13925
2025-08-21 21:52:31 +02:00
Bjørn Erik Pedersen
80e973ea5c
Remove test with deprecated path usage
...
This now creates a warning and flaky CI tests.
2025-08-20 11:36:10 +02:00
Bjørn Erik Pedersen
87e100e61f
Fix rebuild when deleting a content adapter file
2025-08-15 17:32:42 +02:00
Bjørn Erik Pedersen
de4a7f1e04
Skip flakey test on CI
2025-08-05 19:45:46 +02:00
Bjørn Erik Pedersen
3937ab24d0
Revert "hugolib: Honor implicit "page" type during template selection"
...
This reverts commit cfc8d315b4 .
See #13868
2025-07-27 14:39:39 +02:00
Bjørn Erik Pedersen
6f42cfbc9b
Fix assignment to entry in nil map
...
Fixes #13853
2025-07-11 14:21:53 +02:00
Bjørn Erik Pedersen
bba6996e15
Allow creating home pages from content adapters
...
* Allow "" (empty string) or "/" to represent the home page path.
* Be a little more lenient about path validation.
2025-07-07 18:41:45 +02:00
Bjørn Erik Pedersen
90d397b142
Remove the internal GitInfo type and make Page.GitInf() return a pointer
...
See #5693
2025-07-07 14:49:27 +02:00
Joe Mooring
84b31721bf
markup/goldmark: Change link and image render hook enablement to enums
...
Closes #13535
2025-07-07 11:19:34 +02:00
Bjørn Erik Pedersen
b8ba33ca95
Fix some uglyURLs issues for home, section and taxonomy kind (note)
...
Fixes #4428
Fixes #7497
Co-authored-by: Joe Mooring <joe.mooring@veriphor.com >
2025-07-05 18:11:28 +02:00
Joe Mooring
cfc8d315b4
hugolib: Honor implicit "page" type during template selection
...
Closes #13826
2025-07-02 13:43:40 +02:00
Bjørn Erik Pedersen
6a4a3ab8f8
Remove WARN with false negatives
...
Fixes #13806
2025-06-22 16:55:43 +02:00
Bjørn Erik Pedersen
4ef5720141
hugolib: Remove test for deprecated future
2025-06-13 12:17:06 +02:00
Joe Mooring
b5c0383bda
deps: Upgrade github.com/spf13/cast v1.8.0 => v1.9.2
2025-06-12 10:07:09 +02:00
Joe Mooring
01241d5dc9
hugolib: Emit ignorable warning when home page is a leaf bundle
...
Closes #13538
2025-06-07 13:02:28 +02:00
Bjørn Erik Pedersen
32eb1a8ad4
all: Replace _build with build in tests
...
_build is deprecated and now shows up as warning.
2025-06-02 16:35:37 +02:00
Bjørn Erik Pedersen
6334948515
Handle KaTeX warnings ( #13760 )
...
Co-authored-by: Joe Mooring <joe.mooring@veriphor.com >
Fixes #13735
2025-05-30 20:57:54 +02:00
Bjørn Erik Pedersen
6bd328c584
resources: Remove unused interface
2025-05-28 19:32:28 +02:00
Bjørn Erik Pedersen
766a2e7868
Make sure that unreferenced but changed bundle resources gets republished
...
Fixes #13748
2025-05-28 19:32:28 +02:00
Bjørn Erik Pedersen
13e1617557
deps: Upgrade github.com/olekukonko/tablewriter v0.0.5 => v1.0.7
2025-05-28 18:07:14 +02:00
Bjørn Erik Pedersen
eaf5ace30d
Fix recent regression with cascading of params to content adapters
...
Fixes #13743
2025-05-26 21:26:19 +02:00
Joe Mooring
013c8cfb25
tpl/transform: Expose the KaTeX strict option
...
Closes #13729
2025-05-23 19:21:38 +02:00
Bjørn Erik Pedersen
0c7b1a3f26
Fix live reload when editing inline partials
...
Fixes #13723
2025-05-22 13:15:41 +02:00
Bjørn Erik Pedersen
61317821e4
tpl: Narrow down the usage of plain text shortcodes when rendering HTML
...
After this commit, if you want to resolve `layouts/_shortcodes/myshortcode.txt` when rendering HTML content, you need to use the `{{%` shortcode delimiter:
```
{{% myshortcode %}}
```
This should be what people would do anyway, but we have also as part of this improved the error message to inform about what needs to be done.
Note that this is not relevant for partials.
Fixes #13698
2025-05-18 12:48:24 +02:00
Bjørn Erik Pedersen
c745a3e108
Fix/implement cascade for content adapters
...
Fixes #13692
2025-05-10 15:12:24 +02:00
Bjørn Erik Pedersen
363ab48a24
Fix handling of "outputs" from content adapter pages
...
Fixes #13689
2025-05-06 11:40:46 +02:00
Bjørn Erik Pedersen
a1cb15e1cf
Fix it so the owning taxonomy gets rerendered in server when new tags are added
...
Updates #13648
2025-04-28 21:42:16 +02:00
Joe Mooring
31db7edf6d
hugolib: Use new build key in content placeholder
...
Fixes #13655
2025-04-27 13:18:43 +02:00
Bjørn Erik Pedersen
179aea11ac
config: Fix _merge issue when key doesn't exist on the left side
...
Fixes #13643
Fixes #13646
2025-04-24 13:56:27 +02:00
Christian Oliff
6a0e04241a
all: Fix typos
2025-04-24 10:19:17 +02:00
Bjørn Erik Pedersen
496730840e
Revert the breaking change from 0.146.0 with dots in content filenames
...
Closes #13632
2025-04-22 19:23:19 +02:00
Bjørn Erik Pedersen
6d69dc88a4
tpl: Fix indeterminate template lookup with templates with and without lang
...
Close #13636
2025-04-22 17:29:39 +02:00
Bjørn Erik Pedersen
1408c156d8
tpl: Detect and fail on infinite template recursion
...
Fixes #13627
2025-04-21 15:17:20 +02:00
Bjørn Erik Pedersen
d61b9fc605
tpl: Fix language handling in partials
...
We now use the same code path for all templates re this.
Fixes #13612
2025-04-15 11:25:54 +02:00
Bjørn Erik Pedersen
cf9e6904cc
tpl: Fix the case for a shortcode in a nested folder only
...
Fixes #13605
2025-04-14 14:38:22 +02:00
Bjørn Erik Pedersen
30b9c19c76
tpl: Make any layout set in front matter higher priority
...
Fixes #13541
2025-04-12 18:12:06 +02:00
Bjørn Erik Pedersen
383dd82f95
tpl: Warn and skip non-hook templates inside /layouts/_markup
...
Fixes #13577
2025-04-10 16:54:05 +02:00
Bjørn Erik Pedersen
208a0de6c3
tpl: Add a partial lookup cache
...
````
│ stash.bench │ perf-v146.bench │
│ sec/op │ sec/op vs base │
LookupPartial-10 248.00n ± 0% 14.75n ± 2% -94.05% (p=0.002 n=6)
│ stash.bench │ perf-v146.bench │
│ B/op │ B/op vs base │
LookupPartial-10 48.00 ± 0% 0.00 ± 0% -100.00% (p=0.002 n=6)
│ stash.bench │ perf-v146.bench │
│ allocs/op │ allocs/op vs base │
LookupPartial-10 3.000 ± 0% 0.000 ± 0% -100.00% (p=0.002 n=6)
```
THe speedup above assumes reuse of the same partials over and over again, which I think is not uncommon.
This commits also adds some more lookup benchmarks. The current output of these on my MacBook looks decent:
```
BenchmarkLookupPagesLayout/Single_root-10 3031562 395.5 ns/op 0 B/op 0 allocs/op
BenchmarkLookupPagesLayout/Single_sub_folder-10 2515915 480.9 ns/op 0 B/op 0 allocs/op
BenchmarkLookupPartial-10 84808112 14.13 ns/op 0 B/op 0 allocs/op
BenchmarkLookupShortcode/toplevelpage-10 8111779 148.2 ns/op 0 B/op 0 allocs/op
BenchmarkLookupShortcode/nestedpage-10 8088183 148.6 ns/op 0 B/op 0 allocs/op
```
Note that in the above the partial lookups are cahced, the others not (they are harder to cache because of the page path).
Closes #13571
2025-04-10 11:07:19 +02:00