{"full_name":"gohugoio/hugo","owner":"gohugoio","name":"hugo","url":"https://github.com/gohugoio/hugo","description":"The world’s fastest framework for building websites.","homepage":"https://gohugo.io","topics":[],"language":"Go","license":"Apache-2.0","avatar":"https://avatars.githubusercontent.com/u/29385237?v=4","created_at":"2013-07-04T15:26:26Z","pushed_at":"2026-11-10T08:25:41Z","metrics":{"stars":90427,"forks":8445,"watchers":1079,"issues":8300,"prs":6978,"releases":385,"issues_open":null,"issues_closed":null,"prs_open":null,"prs_closed":null,"prs_merged":null,"discussions":0},"growth":{"day":{"stars":5,"forks":-1,"base_day":"2026-11-09"}},"history":{"dates":["2026-11-09","2026-11-10"],"stars":[90422,90427],"forks":[8446,8445],"watchers":[1079,1079],"issues_open":[null,null],"prs_open":[null,null]},"boards":{"total":185},"same_owner":[],"issues":[{"number":448,"title":"Add ability to generate per-{year, month, day} archives","comments":38,"created_at":"2014-08-29T12:58:45Z"},{"number":6241,"title":"Shorter fingerprinting","comments":31,"created_at":"2019-08-17T14:54:25Z"},{"number":8077,"title":"Add support for page backlinks (e.g. `.GetBacklinks`)","comments":29,"created_at":"2020-12-19T19:14:49Z"},{"number":8338,"title":"Add pre/post config to ToC","comments":26,"created_at":"2021-03-17T16:47:42Z"},{"number":9810,"title":"GitInfo unset when file path contains bytes > 0x80","comments":24,"created_at":"2022-04-21T17:27:41Z"},{"number":4071,"title":"Need option to use full content in rss.xml","comments":23,"created_at":"2017-11-10T06:02:10Z"},{"number":15348,"title":"Add scope information apis","comments":21,"created_at":"2026-09-15T08:54:42Z"},{"number":11739,"title":"Add debugf function","comments":20,"created_at":"2023-11-25T11:39:22Z"}],"discussions":[],"latest_release":{"name":"v0.169.0","tag":"v0.169.0","published_at":"2026-10-27T16:24:46Z","body":"The main motivation behind this release is to get out a build with [Go 1.27.3](https://github.com/golang/go/issues?q=milestone%3AGo1.27.3+label%3ACherryPickApproved), which blocks trust in a small set of intermediate certificates due to specific security concerns around their operation. See the [eMudhra incident](https://go.dev/blog/emudhra-incident) for more information. This affects Hugo features that fetch remote resources over HTTPS, e.g. `resources.GetRemote`.\r\n\r\nThis release also contains some security hardening of the template functions and menu entries that can render content as HTML (see below), a deprecation of looking up reserved front matter fields via `.Params` (also below), a faster and more robust `plainify`, and a set of bug fixes.\r\n\r\n## Security notes\r\n\r\nTemplates are trusted in Hugo, but content (including front matter) is not necessarily. This release tightens a few places where values from content could end up rendered as unescaped HTML:\r\n\r\n* `pre` and `post` values in menu entries defined in **front matter** are now HTML escaped, unless `text/html` is allowed in [`security.allowContent`](https://gohugo.io/configuration/security/), which already marks HTML in `/content` as trusted. A warning (`warning-menu-pre-post-html-escaped`) is logged when a value containing HTML markup is escaped. Menu entries defined in the project configuration are not affected. f63482bf\r\n* `emojify` and `plainify` now return a `string` unless the input is `template.HTML`, in which case the result is also `template.HTML`. Previously both always returned `template.HTML`, so e.g. `{{ .Title | emojify }}` would mark a potentially unsafe title as safe HTML. If you relied on the old behavior with trusted input, pipe the result through `safeHTML`. Thanks to @Reload3d for reporting this. #15452\r\n\r\n## Deprecations\r\n\r\nReserved front matter fields such as `title`, `date` and `summary` are currently also stored in `.Params`. Lookups such as `.Params.title` (and `ByParam \"title\"`, `where .Pages \"Params.title\" ...` etc.) are now redirected to the corresponding `Page` method and logged as deprecated, unless the field was set in the `params` section of front matter. The content of `.Params` is unchanged for now. 53e1fef9\r\n\r\n| Deprecated | Use instead |\r\n| --- | --- |\r\n| `.Params.date` | `.Date` |\r\n| `.Params.description` | `.Description` |\r\n| `.Params.draft` | `.Draft` |\r\n| `.Params.expirydate` | `.ExpiryDate` |\r\n| `.Params.keywords` | `.Keywords` |\r\n| `.Params.lastmod` | `.Lastmod` |\r\n| `.Params.layout` | `.Layout` |\r\n| `.Params.linktitle` | `.LinkTitle` |\r\n| `.Params.publishdate` | `.PublishDate` |\r\n| `.Params.slug` | `.Slug` |\r\n| `.Params.summary` | `.RawSummary` (new) |\r\n| `.Params.title` | `.Title` |\r\n| `.Params.translationkey` | `.TranslationKey` |\r\n| `.Params.type` | `.Type` |\r\n| `.Params.weight` | `.Weight` |\r\n\r\n## Bug fixes\r\n\r\n* hugolib: Fix template change detection when saving via temp file and rename 46e51f30 @bep #15484 \r\n* markup/goldmark: Fix auto heading ID when link text starts with a bracket c22158c1 @chanellebingham #15472 \r\n* urls: Fix JoinPath panic with empty slice ce5d232b @Ferdinand-MZ #15473 \r\n* js: Fix js.Build with browser-disabled extensionless requires 2efee511 @bep #15481 \r\n* Fix Site.Key used in e.g. partialCached b86e0caa @bep #15466 \r\n* ci: Fix Windows running out of disk space and simplify test runs 77230eba @bep \r\n* hugolib: Fix build hang after too many page render errors 85fb23f1 @bep #15449 \r\n* tpl/cast: Fix nil pointer panic in hugo gen docshelper 8df31809 @jmooring #15444 \r\n\r\n## Improvements\r\n\r\n* Redirect .Params.title etc. to .Title etc. and deprecate it 53e1fef9 @bep \r\n* ci: Revert to plain go install honnef.co/go/tools/cmd/staticcheck@latest 3e67572c @bep \r\n* navigation: Escape pre/post in front matter menu entries f63482bf @bep \r\n* Upgrade to Go 1.27.3 7343fc9c @bep \r\n* resources: Make processed image key stable across builds ff4eab75 @bep #15467 \r\n* tpl: Make StripHTML (plainify) more robust and faster "},"readme":true,"readme_zh":false,"news":[{"title":"78MB Hugo binary is full of paths and URLs","url":"https://github.com/gohugoio/hugo/issues/12406","hn":"https://news.ycombinator.com/item?id=40952618","source":"Hacker News","lang":"en","date":"2024-07-13","points":9,"comments":1},{"title":"Hugo 0.122 supports LaTeX or TeX typesetting syntax directly from Markdown","url":"https://github.com/gohugoio/hugo/releases/tag/v0.122.0","hn":"https://news.ycombinator.com/item?id=39144938","source":"Hacker News","lang":"en","date":"2024-01-26","points":3,"comments":0},{"title":"Release v0.123.0 · Gohugoio/Hugo","url":"https://github.com/gohugoio/hugo/releases/tag/v0.123.0","hn":"https://news.ycombinator.com/item?id=39443081","source":"Hacker News","lang":"en","date":"2024-02-20","points":2,"comments":0},{"title":"Hugo: The world’s fastest framework for building websites","url":"https://github.com/gohugoio/hugo","hn":"https://news.ycombinator.com/item?id=35976915","source":"Hacker News","lang":"en","date":"2023-05-17","points":2,"comments":1},{"title":"Hugo Performance Dispute","url":"https://github.com/gohugoio/hugoDocs/issues/1772","hn":"https://news.ycombinator.com/item?id=32085611","source":"Hacker News","lang":"en","date":"2022-07-13","points":2,"comments":0},{"title":"Release v0.100.0 · Hugo","url":"https://github.com/gohugoio/hugo/releases/tag/v0.100.0","hn":"https://news.ycombinator.com/item?id=31568968","source":"Hacker News","lang":"en","date":"2022-05-31","points":2,"comments":0},{"title":"Gohugoio/hugo: The world’s fastest framework for building websites","url":"https://github.com/gohugoio/hugo","hn":"https://news.ycombinator.com/item?id=17848332","source":"Hacker News","lang":"en","date":"2018-08-26","points":1,"comments":0},{"title":"Hugo 0.25 with auto-open current page","url":"https://github.com/gohugoio/hugo/releases/tag/v0.25","hn":"https://news.ycombinator.com/item?id=14716851","source":"Hacker News","lang":"en","date":"2017-07-07","points":1,"comments":0},{"title":"My Obsidian + Hugo Blogging Setup: A Smooth Blogging Workflow","url":"https://hackernoon.com/my-obsidian-hugo-blogging-setup-a-smooth-blogging-workflow","source":"Hacker","lang":"en","date":"2024-09-30"},{"title":"Hugo: a static-site generator","url":"https://lwn.net/Articles/825507/","source":"LWN.net","lang":"en","date":"2020-07-06"},{"title":"静态站点评论新思路：用GitHub PR实现无服务器评论系统","url":"https://news.google.com/rss/articles/CBMiX0FVX3lxTFBRcFk0TTQ3dmVybHQ2T0VLeEdRUXhfcEp1Qy1kS0F6aGw5SHEyT21wUEg3dW03QlFRS1BlSnktLUI3bl9lUkJyREdMS1plQ2pQRU9YYVJKdFpPQkR5TzFv?oc=5","source":"CSDN","lang":"zh","date":"2026-11-06"},{"title":"菲尔兹奖得主哭了：AI摧毁了我的研究领域","url":"https://news.google.com/rss/articles/CBMiUkFVX3lxTFBLMWlyWG0xZWVFQWRzNEx3NTJ0Z0lPSUdPUk5MdDV0NTQxNFZyTEJHYzdiU3JuVmFFaWJ4MkJ3NnBkb1p0TGpiell6dVhRbnhIMXc?oc=5","source":"搜狐网","lang":"zh","date":"2026-10-13"},{"title":"Claude拿下概率论「圣杯」，AI跨过菲尔兹奖终点线","url":"https://news.google.com/rss/articles/CBMiU0FVX3lxTFBRRWVwOWpQTzAzT1dHNWFfajBrbUs3SVhsWEt1ZjdjZjBhbERZdUFsN0llXzR4eWM0UDJPNlM4X2UzWG5OdTAxOUFmazZSZVpZSm9z?oc=5","source":"华尔街见闻","lang":"zh","date":"2026-10-07"},{"title":"GitHub Wiki 被指反模式：为什么项目文档应该和代码放在一起","url":"https://news.google.com/rss/articles/CBMifkFVX3lxTE5ETFZXMFNIelVsUHY1NUY2ZDdSRWVITEpnZ3FuQktQNE1BQjV1eFoxNzBacGNzakRXZERHZmFQdjdJLWw1bk1DNTdGdUFxc1ZUTlpFU1E4c1lSWGxWLTFYdDlLMUxaQUpoUXJpdWY5MnZpZW0ySHpHVlFnQmFPZw?oc=5","source":"80aj.com","lang":"zh","date":"2026-09-23"},{"title":"Looking to Self-Host a Blog? Here's How WordPress, Ghost, and GitHub Pages Compare","url":"https://news.google.com/rss/articles/CBMiigFBVV95cUxQajRQMnZyRmlKcUlrR2djSVE2eHhhSHFJX0hhM2RrdlJwSFpxZlgxeGdjajUwVmJFTzZBaXhIcVF3ajJ6RlpkdzVOZEUzR2dfMWx6Um4yek1YLTBlRnI5UkNZbDFaZkZRcVFUT0V5TTR1cjJDQ1JnUHppUDhMUmlEOXBYS0RnY2YxN2c?oc=5","source":"How-To Geek","lang":"en","date":"2025-07-05"},{"title":"How to Deploy a Hugo Blog to GitHub Pages With Actions","url":"https://news.google.com/rss/articles/CBMigwFBVV95cUxNRS0zcUtnUkRUM2h1czgwa1RiN3A2cDVnczVhTlp1ZklicjJ6ZWNrR2ZfNGYwX2Fja3hEVmx4UmRaY3EwLVNjeXVlRjZZZTktRGg3TGJJT1RLem9sX1UtOU9Qbkd4cUg5emVtQ2dJVjJXTVVDLU55Wm41SnVHZ3NRNFRPOA?oc=5","source":"HackerNoon","lang":"en","date":"2025-04-29"},{"title":"手把手实测！Claude Code真的能搞定GitHub问题？","url":"https://news.google.com/rss/articles/CBMiVkFVX3lxTFBBNTh5Unk3d2ZHYUc1bjduSEFCQWF5RjJoTk8tUjUyNGpnT29lZExhZUt3RlN3Qi1vWUZtazJQRUI0UDVOT1RUSGRhOWhsVndrY2taNWdn?oc=5","source":"QQ News","lang":"zh","date":"2025-03-20"},{"title":"Creating a Data Scientist's Personal Website (with Hugo and Netlify)","url":"https://news.google.com/rss/articles/CBMirwFBVV95cUxNQ3VEZFdyNFFRb1MyNUdRNTVhZjE5bzJhLXg0bHBaXzBBYkY3X3lBY24zdWp5Z08wZUNKLWs0bzM2RHJQaFdjWkQyaFVlVzZRQ2JQWDkxNGlwMWcxdC1tQnltNkI2bXRMcXo5b19VRWFFN01odC13OUVQWjRtVG12YzczMVhhSXlodEFSSVU0RHRKT3l5OGpRajV1dExVejI4dGxtMmRZRV9GOXhYcHVN?oc=5","source":"Towards Data Science","lang":"en","date":"2025-02-04"},{"title":"Building a CI/CD pipeline for Hugo websites","url":"https://news.google.com/rss/articles/CBMipgFBVV95cUxONklSREhzVUhRbG1JSkdQV0pkbEM4Q2tpeV8tSnJIOG1wazhMZUZjWmNjUEVldnlfem00Z1ZYcHgxUThZT3VNbEpIZExSZUdlcHMxMGtmSXBLRzRmUVhQekQxTmtLTGw0dmZRZW9LRU55VW9scVN2NnRSMEZsbF93elVFWkFkTnN2NlhWMzZST3RzNHNpdzR1VjV4VlhTVlRIWnZiQXFn?oc=5","source":"Amazon Web Services (AWS)","lang":"en","date":"2020-04-14"},{"title":"GitHub Action Hero: Shohei Ueda","url":"https://news.google.com/rss/articles/CBMigAFBVV95cUxPNXd2WHFtRHFYcWJRUElERTRYZ0pBZUw1eUZmeEljR2Y4b2RyaEFfQVA2QWVNTVJJSHFiMFhtTWxhSGxKdzR2bkR5LTV2MFFFMm9qOFBSZTV5eUhMd0NKOXFBcmp3MkdGS1NISkw3bXJuZ2lIVjRSTVp3YUNLaDJ4Mw?oc=5","source":"The GitHub Blog","lang":"en","date":"2020-03-22"}],"stale":false,"snapshot_at":"2026-11-10T09:35:25Z","history_start":"2026-09-06"}