90da7664bf
The main topic of this commit is that you can now index fragments (content heading identifiers) when calling `.Related`. You can do this by: * Configure one or more indices with type `fragments` * The name of those index configurations maps to an (optional) front matter slice with fragment references. This allows you to link page<->fragment and page<->page. * This also will index all the fragments (heading identifiers) of the pages. It's also possible to use type `fragments` indices in shortcode, e.g.: ``` {{ $related := site.RegularPages.Related .Page }} ``` But, and this is important, you need to include the shortcode using the `{{<` delimiter. Not doing so will create infinite loops and timeouts. This commit also: * Adds two new methods to Page: Fragments (can also be used to build ToC) and HeadingsFiltered (this is only used in Related Content with index type `fragments` and `enableFilter` set to true. * Consolidates all `.Related*` methods into one, which takes either a `Page` or an options map as its only argument. * Add `context.Context` to all of the content related Page API. Turns out it wasn't strictly needed for this particular feature, but it will soon become usefil, e.g. in #9339. Closes #10711 Updates #9339 Updates #10725 |
||
---|---|---|
.. | ||
.github | ||
.vscode | ||
_vendor | ||
archetypes | ||
config | ||
content/en | ||
data | ||
layouts | ||
resources | ||
src | ||
static | ||
.cspell.json | ||
.editorconfig | ||
.gitignore | ||
.markdownlint.yaml | ||
.markdownlintignore | ||
.textlintignore | ||
go.mod | ||
go.sum | ||
hugo.work | ||
hugo_stats.json | ||
hugoreleaser.toml | ||
LICENSE.md | ||
netlify.toml | ||
pull-theme.sh | ||
README.md |
Hugo Docs
Documentation site for Hugo, the very fast and flexible static site generator built with love in Go.
Contributing
We welcome contributions to Hugo of any kind including documentation, suggestions, bug reports, pull requests etc. Also check out our contribution guide. We would love to hear from you.
Note that this repository contains solely the documentation for Hugo. For contributions that aren't documentation-related please refer to the hugo repository.
Pull requests shall only contain changes to the actual documentation. However, changes on the codebase of Hugo and the documentation shall be a single, atomic pull request in the hugo repository.
Spelling fixes are most welcomed, and if you want to contribute longer sections to the documentation, it would be great if you had the following criteria in mind when writing:
- Short is good. People go to the library to read novels. If there is more than one way to do a thing in Hugo, describe the current best practice (avoid "… but you can also do …" and "… in older versions of Hugo you had to …".
- For example, try to find short snippets that teaches people about the concept. If the example is also useful as-is (copy and paste), then great. Don't list long and similar examples just so people can use them on their sites.
- Hugo has users from all over the world, so easy to understand and simple English is good.
Edit the theme
If you want to do docs-related theme changes, the simplest way is to have both hugoDocs
and gohugoioTheme
cloned as sibling directories, and then run:
HUGO_MODULE_WORKSPACE=hugo.work hugo server --ignoreVendorPaths "**"
Branches
- The
master
branch is where the site is automatically built from, and is the place to put changes relevant to the current Hugo version. - The
next
branch is where we store changes that are related to the next Hugo release. This can be previewed here: https://next--gohugoio.netlify.com/
Build
To view the documentation site locally, you need to clone this repository:
git clone https://github.com/gohugoio/hugoDocs.git
Also note that the documentation version for a given version of Hugo can also be found in the /docs
sub-folder of the Hugo source repository.
Then to view the docs in your browser, run Hugo and open up the link:
▶ hugo server
Started building sites ...
.
.
Serving pages from memory
Web Server is available at http://localhost:1313/ (bind address 127.0.0.1)
Press Ctrl+C to stop