From: Bjørn Erik Pedersen Date: Tue, 13 Jun 2023 18:43:03 +0000 (+0200) Subject: Merge commit '3c1deaf201a35de08d23cc58f8f03682cace3349' X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=a0009e070;p=brevno-suite%2Fhugo Merge commit '3c1deaf201a35de08d23cc58f8f03682cace3349' --- a0009e070ae179356b741bcb991a2c77b6b28cda diff --cc docs/content/en/content-management/front-matter.md index 062288320,000000000..fb02f99f5 mode 100644,000000..100644 --- a/docs/content/en/content-management/front-matter.md +++ b/docs/content/en/content-management/front-matter.md @@@ -1,239 -1,0 +1,239 @@@ +--- +title: Front Matter +description: Hugo allows you to add front matter in yaml, toml, or json to your content files. +categories: [content management] +keywords: ["front matter", "yaml", "toml", "json", "metadata", "archetypes"] +menu: + docs: + parent: content-management + weight: 60 +toc: true +weight: 60 +aliases: [/content/front-matter/] +--- + +**Front matter** allows you to keep metadata attached to an instance of a [content type]---i.e., embedded inside a content file---and is one of the many features that gives Hugo its strength. + +{{< youtube Yh2xKRJGff4 >}} + +## Front Matter Formats + +Hugo supports four formats for front matter, each with their own identifying tokens. + +TOML +: identified by opening and closing `+++`. + +YAML +: identified by opening and closing `---`. + +JSON +: a single JSON object surrounded by '`{`' and '`}`', followed by a new line. + +ORG +: a group of Org mode keywords in the format '`#+KEY: VALUE`'. Any line that does not start with `#+` ends the front matter section. + Keyword values can be either strings (`#+KEY: VALUE`) or a whitespace separated list of strings (`#+KEY[]: VALUE_1 VALUE_2`). + +### Example + +{{< code-toggle >}} +title = "spf13-vim 3.0 release and new website" +description = "spf13-vim is a cross platform distribution of vim plugins and resources for Vim." +tags = [ ".vimrc", "plugins", "spf13-vim", "vim" ] +date = "2012-04-06" +categories = [ + "Development", + "VIM" +] +slug = "spf13-vim-3-0-release-and-new-website" +{{< /code-toggle >}} + +## Front Matter Variables + +### Predefined + +There are a few predefined variables that Hugo is aware of. See [Page Variables][pagevars] for how to call many of these predefined variables in your templates. + +aliases +: An array of one or more aliases (e.g., old published paths of renamed content) that will be created in the output directory structure . See [Aliases][aliases] for details. + +audio +: An array of paths to audio files related to the page; used by the `opengraph` [internal template](/templates/internal) to populate `og:audio`. + +cascade +: A map of front matter keys whose values are passed down to the page's descendants unless overwritten by self or a closer ancestor's cascade. See [Front Matter Cascade](#front-matter-cascade) for details. + +date +: The datetime assigned to this page. This is usually fetched from the `date` field in front matter, but this behavior is configurable. + +description +: The description for the content. + +draft +: If `true`, the content will not be rendered unless the `--buildDrafts` flag is passed to the `hugo` command. + +expiryDate +: The datetime at which the content should no longer be published by Hugo; expired content will not be rendered unless the `--buildExpired` flag is passed to the `hugo` command. + +headless +: If `true`, sets a leaf bundle to be [headless][headless-bundle]. + +images +: An array of paths to images related to the page; used by [internal templates](/templates/internal) such as `_internal/twitter_cards.html`. + +isCJKLanguage +: If `true`, Hugo will explicitly treat the content as a CJK language; both `.Summary` and `.WordCount` work properly in CJK languages. + +keywords +: The meta keywords for the content. + +layout +: The layout Hugo should select from the [lookup order][lookup] when rendering the content. If a `type` is not specified in the front matter, Hugo will look for the layout of the same name in the layout directory that corresponds with a content's section. See [Content Types][content type]. + +lastmod +: The datetime at which the content was last modified. + +linkTitle +: Used for creating links to content; if set, Hugo defaults to using the `linktitle` before the `title`. Hugo can also [order lists of content by `linktitle`][bylinktitle]. + +markup +: **experimental**; specify `"rst"` for reStructuredText (requires`rst2html`) or `"md"` (default) for Markdown. + +outputs +: Allows you to specify output formats specific to the content. See [output formats][outputs]. + +publishDate +: If in the future, content will not be rendered unless the `--buildFuture` flag is passed to `hugo`. + +resources +: Used for configuring page bundle resources. See [Page Resources][page-resources]. + +series +: An array of series this page belongs to, as a subset of the `series` [taxonomy](/content-management/taxonomies/); used by the `opengraph` [internal template](/templates/internal) to populate `og:see_also`. + +slug +: Overrides the last segment of the URL path. Not applicable to section pages. See [URL Management](/content-management/urls/#slug) for details. + +summary +: Text used when providing a summary of the article in the `.Summary` page variable; details available in the [content-summaries](/content-management/summaries/) section. + +title +: The title for the content. + +type +: The type of the content; this value will be automatically derived from the directory (i.e., the [section]) if not specified in front matter. + +url +: Overrides the entire URL path. Applicable to regular pages and section pages. See [URL Management](/content-management/urls/#url) for details. + +videos +: An array of paths to videos related to the page; used by the `opengraph` [internal template](/templates/internal) to populate `og:video`. + +weight +: used for [ordering your content in lists][ordering]. Lower weight gets higher precedence. So content with lower weight will come first. If set, weights should be non-zero, as 0 is interpreted as an *unset* weight. + +\ +: Field name of the *plural* form of the index. See `tags` and `categories` in the above front matter examples. *Note that the plural form of user-defined taxonomies cannot be the same as any of the predefined front matter variables.* + +{{% note %}} +If neither `slug` nor `url` is present and [permalinks are not configured otherwise in your site configuration file](/content-management/urls/#permalinks), Hugo will use the filename of your content to create the output URL. See [Content Organization](/content-management/organization) for an explanation of paths in Hugo and [URL Management](/content-management/urls/) for ways to customize Hugo's default behaviors. +{{% /note %}} + +### User-Defined + +You can add fields to your front matter arbitrarily to meet your needs. These user-defined key-values are placed into a single `.Params` variable for use in your templates. + +The following fields can be accessed via `.Params.include_toc` and `.Params.show_comments`, respectively. The [Variables] section provides more information on using Hugo's page- and site-level variables in your templates. + +{{< code-toggle copy=false >}} +include_toc: true +show_comments: false +{{}} + +## Front Matter Cascade + +Any node or section can pass down to descendants a set of Front Matter values as long as defined underneath the reserved `cascade` Front Matter key. + +### Target Specific Pages + +The `cascade` block can be a slice with a optional `_target` keyword, allowing for multiple `cascade` values targeting different page sets. + +{{< code-toggle copy=false >}} +title ="Blog" +[[cascade]] +background = "yosemite.jpg" +[cascade._target] +path="/blog/**" +lang="en" +kind="page" +[[cascade]] +background = "goldenbridge.jpg" +[cascade._target] +kind="section" +{{}} + +Keywords available for `_target`: + +path +: A [Glob](https://github.com/gobwas/glob) pattern matching the content path below /content. Expects Unix-styled slashes. Note that this is the virtual path, so it starts at the mount root. The matching supports double-asterisks so you can match for patterns like `/blog/*/**` to match anything from the third level and down. + +kind +: A Glob pattern matching the Page's Kind(s), e.g. "{home,section}". + +lang +: A Glob pattern matching the Page's language, e.g. "{en,sv}". + +environment +: A Glob pattern matching the build environment, e.g. "{production,development}" + +Any of the above can be omitted. + +### Example + +In `content/blog/_index.md` + +{{< code-toggle copy=false >}} +title: Blog +cascade: + banner: images/typewriter.jpg +{{}} + +With the above example the Blog section page and its descendants will return `images/typewriter.jpg` when `.Params.banner` is invoked unless: + +- Said descendant has its own `banner` value set +- Or a closer ancestor node has its own `cascade.banner` value set. + +## Order Content Through Front Matter + +You can assign content-specific `weight` in the front matter of your content. These values are especially useful for [ordering][ordering] in list views. You can use `weight` for ordering of content and the convention of [`_weight`][taxweight] for ordering content within a taxonomy. See [Ordering and Grouping Hugo Lists][lists] to see how `weight` can be used to organize your content in list views. + +## Override Global Markdown Configuration + +It's possible to set some options for Markdown rendering in a content's front matter as an override to the [Rendering options set in your project configuration][config]. + +## Front Matter Format Specs + +- [TOML Spec][toml] +- [YAML Spec][yaml] +- [JSON Spec][json] + +[variables]: /variables/ +[aliases]: /content-management/urls/#aliases +[archetype]: /content-management/archetypes/ +[bylinktitle]: /templates/lists/#by-link-title +[config]: /getting-started/configuration/ "Hugo documentation for site configuration" +[content type]: /content-management/types/ +[contentorg]: /content-management/organization/ +[headless-bundle]: /content-management/page-bundles/#headless-bundle +[json]: https://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf "Specification for JSON, JavaScript Object Notation" +[lists]: /templates/lists/#order-content "See how to order content in list pages; for example, templates that look to specific _index.md for content and front matter." +[lookup]: /templates/lookup-order/ "Hugo traverses your templates in a specific order when rendering content to allow for DRYer templating." +[ordering]: /templates/lists/ "Hugo provides multiple ways to sort and order your content in list templates" +[outputs]: /templates/output-formats/ "With the release of v22, you can output your content to any text format using Hugo's familiar templating" +[page-resources]: /content-management/page-resources/ +[pagevars]: /variables/page/ +[section]: /content-management/sections/ +[taxweight]: /content-management/taxonomies/ - [toml]: https://github.com/toml-lang/toml "Specification for TOML, Tom's Obvious Minimal Language" ++[toml]: https://toml.io/ +[urls]: /content-management/urls/ +[variables]: /variables/ +[yaml]: https://yaml.org/spec/ "Specification for YAML, YAML Ain't Markup Language" diff --cc docs/content/en/functions/eq.md index 98eca1aa5,000000000..d10539e49 mode 100644,000000..100644 --- a/docs/content/en/functions/eq.md +++ b/docs/content/en/functions/eq.md @@@ -1,16 -1,0 +1,21 @@@ +--- +title: eq - description: Returns the boolean truth of arg1 == arg2. ++description: Returns the boolean truth of arg1 == arg2 || arg1 == arg3. +categories: [functions] +menu: + docs: + parent: functions - keywords: [operators,logic] - signature: ["eq ARG1 ARG2"] ++keywords: [comparison,operators,logic] ++signature: ["eq ARG1 ARG2 [ARG...]"] +relatedfuncs: [] +--- + - +```go-html-template - {{ if eq .Section "blog" }}current{{ end }} ++{{ eq 1 1 }} → true ++{{ eq 1 2 }} → false ++ ++{{ eq 1 1 1 }} → true ++{{ eq 1 1 2 }} → true ++{{ eq 1 2 1 }} → true ++{{ eq 1 2 2 }} → false +``` diff --cc docs/content/en/functions/ge.md index 8306935f0,000000000..e59b0f9c9 mode 100644,000000..100644 --- a/docs/content/en/functions/ge.md +++ b/docs/content/en/functions/ge.md @@@ -1,16 -1,0 +1,26 @@@ +--- +title: ge - description: Returns the boolean truth of arg1 >= arg2. ++description: Returns the boolean truth of arg1 >= arg2 && arg1 >= arg3. +categories: [functions] +menu: + docs: + parent: functions - keywords: [operators,logic] - signature: ["ge ARG1 ARG2"] ++keywords: [comparison,operators,logic] ++signature: ["ge ARG1 ARG2 [ARG...]"] +relatedfuncs: [] +--- + - +```go-html-template - {{ if ge 10 5 }}true{{ end }} ++{{ ge 1 1 }} → true ++{{ ge 1 2 }} → false ++{{ ge 2 1 }} → true ++ ++{{ ge 1 1 1 }} → true ++{{ ge 1 1 2 }} → false ++{{ ge 1 2 1 }} → false ++{{ ge 1 2 2 }} → false ++ ++{{ ge 2 1 1 }} → true ++{{ ge 2 1 2 }} → true ++{{ ge 2 2 1 }} → true +``` diff --cc docs/content/en/functions/gt.md index dba0d4dfc,000000000..dac1986fe mode 100644,000000..100644 --- a/docs/content/en/functions/gt.md +++ b/docs/content/en/functions/gt.md @@@ -1,16 -1,0 +1,26 @@@ +--- +title: gt - description: Returns the boolean truth of arg1 > arg2. ++description: Returns the boolean truth of arg1 > arg2 && arg1 > arg3. +categories: [functions] +menu: + docs: + parent: functions - keywords: [operators,logic] - signature: ["gt ARG1 ARG2"] ++keywords: [comparison,operators,logic] ++signature: ["gt ARG1 ARG2 [ARG...]"] +relatedfuncs: [] +--- + - +```go-html-template - {{ if gt 10 5 }}true{{ end }} ++{{ gt 1 1 }} → false ++{{ gt 1 2 }} → false ++{{ gt 2 1 }} → true ++ ++{{ gt 1 1 1 }} → false ++{{ gt 1 1 2 }} → false ++{{ gt 1 2 1 }} → false ++{{ gt 1 2 2 }} → false ++ ++{{ gt 2 1 1 }} → true ++{{ gt 2 1 2 }} → false ++{{ gt 2 2 1 }} → false +``` diff --cc docs/content/en/functions/le.md index 632e43a0e,000000000..1953bfae0 mode 100644,000000..100644 --- a/docs/content/en/functions/le.md +++ b/docs/content/en/functions/le.md @@@ -1,16 -1,0 +1,26 @@@ +--- +title: le - description: Returns the boolean truth of arg1 <= arg2. ++description: Returns the boolean truth of arg1 <= arg2 && arg1 <= arg3. +categories: [functions] +menu: + docs: + parent: functions - keywords: [operators,logic] - signature: ["le ARG1 ARG2"] ++keywords: [comparison,operators,logic] ++signature: ["le ARG1 ARG2 [ARG...]"] +relatedfuncs: [] +--- + - +```go-html-template - {{ if le 5 10 }}true{{ end }} ++{{ le 1 1 }} → true ++{{ le 1 2 }} → true ++{{ le 2 1 }} → false ++ ++{{ le 1 1 1 }} → true ++{{ le 1 1 2 }} → true ++{{ le 1 2 1 }} → true ++{{ le 1 2 2 }} → true ++ ++{{ le 2 1 1 }} → false ++{{ le 2 1 2 }} → false ++{{ le 2 2 1 }} → false +``` diff --cc docs/content/en/functions/lt.md index 08cad7904,000000000..9a8651574 mode 100644,000000..100644 --- a/docs/content/en/functions/lt.md +++ b/docs/content/en/functions/lt.md @@@ -1,16 -1,0 +1,26 @@@ +--- +title: lt - description: Returns the boolean truth of arg1 < arg2. ++description: Returns the boolean truth of arg1 < arg2 && arg1 < arg3. +categories: [functions] +menu: + docs: + parent: functions - keywords: [operators,logic] - signature: ["lt ARG1 ARG2"] ++keywords: [comparison,operators,logic] ++signature: ["lt ARG1 ARG2 [ARG...]"] +relatedfuncs: [] +--- + - +```go-html-template - {{ if lt 5 10 }}true{{ end }} ++{{ lt 1 1 }} → false ++{{ lt 1 2 }} → true ++{{ lt 2 1 }} → false ++ ++{{ lt 1 1 1 }} → false ++{{ lt 1 1 2 }} → false ++{{ lt 1 2 1 }} → false ++{{ lt 1 2 2 }} → true ++ ++{{ lt 2 1 1 }} → false ++{{ lt 2 1 2 }} → false ++{{ lt 2 2 1 }} → false +``` diff --cc docs/content/en/functions/ne.md index 54f66823c,000000000..49c69fbaa mode 100644,000000..100644 --- a/docs/content/en/functions/ne.md +++ b/docs/content/en/functions/ne.md @@@ -1,16 -1,0 +1,21 @@@ +--- +title: ne - description: Returns the boolean truth of arg1 != arg2. ++description: Returns the boolean truth of arg1 != arg2 && arg1 != arg3. +categories: [functions] +menu: + docs: + parent: functions - keywords: [operators,logic] - signature: ["ne ARG1 ARG2"] ++keywords: [comparison,operators,logic] ++signature: ["ne ARG1 ARG2 [ARG...]"] +relatedfuncs: [] +--- + - +```go-html-template - {{ if ne .Section "blog" }}current{{ end }} ++{{ ne 1 1 }} → false ++{{ ne 1 2 }} → true ++ ++{{ ne 1 1 1 }} → false ++{{ ne 1 1 2 }} → false ++{{ ne 1 2 1 }} → false ++{{ ne 1 2 2 }} → true +``` diff --cc docs/content/en/functions/plainify.md index 78f52683b,000000000..8767a460e mode 100644,000000..100644 --- a/docs/content/en/functions/plainify.md +++ b/docs/content/en/functions/plainify.md @@@ -1,19 -1,0 +1,19 @@@ +--- +title: plainify - description: Strips any HTML and returns the plain text version of the provided string. ++description: Returns a string with all HTML tags removed. +categories: [functions] +menu: + docs: + parent: functions +keywords: [strings] +signature: ["plainify INPUT"] +relatedfuncs: [jsonify] +--- + +```go-html-template +{{ "BatMan" | plainify }} → "BatMan" +``` + +See also the `.PlainWords`, `.Plain`, and `.RawContent` [page variables][pagevars]. + +[pagevars]: /variables/page/ diff --cc docs/content/en/tools/editors.md index 55ab47090,000000000..5efeba336 mode 100644,000000..100644 --- a/docs/content/en/tools/editors.md +++ b/docs/content/en/tools/editors.md @@@ -1,44 -1,0 +1,45 @@@ +--- +title: Editor Plug-ins for Hugo +linktitle: Editor Plug-ins +description: The Hugo community uses a wide range of preferred tools and has developed plug-ins for some of the most popular text editors to help automate parts of your workflow. +categories: [developer tools] +keywords: [editor, plug-ins] +menu: + docs: + parent: tools + weight: 50 +weight: 50 +--- + +The Hugo community uses a wide range of preferred tools and has developed plug-ins for some of the most popular text editors to help automate parts of your workflow. + +## Sublime Text + +* [Hugofy](https://github.com/akmittal/Hugofy). Hugofy is a plugin for Sublime Text 3 to make life easier to use Hugo static site generator. +* [Hugo Snippets](https://packagecontrol.io/packages/Hugo%20Snippets). Hugo Snippets is a useful plugin for adding automatic snippets to Sublime Text 3. + +## Visual Studio Code + +* [Hugofy](https://marketplace.visualstudio.com/items?itemName=akmittal.hugofy). Hugofy is a plugin for Visual Studio Code to "make life easier" when developing with Hugo. The source code can be found [here](https://github.com/akmittal/hugofy-vscode). +* [Hugo Helper](https://marketplace.visualstudio.com/items?itemName=rusnasonov.vscode-hugo). Hugo Helper is a plugin for Visual Studio Code that has some useful commands for Hugo. The source code can be found [here](https://github.com/rusnasonov/vscode-hugo). +* [Hugo Language and Syntax Support](https://marketplace.visualstudio.com/items?itemName=budparr.language-hugo-vscode). Hugo Language and Syntax Support is a Visual Studio Code plugin for Hugo syntax highlighting and snippets. The source code can be found [here](https://github.com/budparr/language-hugo-vscode). +* [Hugo Themer](https://marketplace.visualstudio.com/items?itemName=eliostruyf.vscode-hugo-themer). Hugo Themer is an extension to help you while developing themes. It allows you to easily navigate through your theme files. +* [Front Matter](https://marketplace.visualstudio.com/items?itemName=eliostruyf.vscode-front-matter). Once you go for a static site, you need to think about how you are going to manage your articles. Front matter is a tool that helps you maintain the metadata/front matter of your articles like: creation date, modified date, slug, tile, SEO check, and many more... +* [Syntax Highlighting for Hugo Shortcodes](https://marketplace.visualstudio.com/items?itemName=kaellarkin.hugo-shortcode-syntax). This extension add some syntax highlighting for Shortcodes, making visual identification of individual pieces easier. + +## Emacs + +* [emacs-easy-hugo](https://github.com/masasam/emacs-easy-hugo). Emacs major mode for managing hugo blogs. Note that Hugo also supports [Org-mode][formats]. +* [ox-hugo.el](https://ox-hugo.scripter.co). Native Org-mode exporter that exports to Blackfriday Markdown with Hugo front-matter. `ox-hugo` supports two common Org blogging flows --- exporting multiple Org subtrees in a single file to multiple Hugo posts, and exporting a single Org file to a single Hugo post. It also leverages the Org tag and property inheritance features. See [*Why ox-hugo?*](https://ox-hugo.scripter.co/doc/why-ox-hugo/) for more. + +## Vim + +* [Vim Hugo Helper](https://github.com/robertbasic/vim-hugo-helper). A small Vim plugin to help me with writing posts with Hugo. ++* [vim-hugo](https://github.com/phelipetls/vim-hugo). A Vim plugin with syntax highlighting for templates and a few other features. + +## Atom + +* [Hugofy](https://atom.io/packages/hugofy). A Hugo Static Website Generator package for Atom. +* [language-hugo](https://atom.io/packages/language-hugo). Adds syntax highlighting to Hugo files. + +[formats]: /content-management/formats/ diff --cc docs/netlify.toml index be3f1d9a9,000000000..135cdef64 mode 100644,000000..100644 --- a/docs/netlify.toml +++ b/docs/netlify.toml @@@ -1,35 -1,0 +1,35 @@@ +[build] +publish = "public" +command = "hugo --gc --minify" + +[context.production.environment] - HUGO_VERSION = "0.112.5" ++HUGO_VERSION = "0.113.0" +HUGO_ENV = "production" +HUGO_ENABLEGITINFO = "true" + +[context.split1] +command = "hugo --gc --minify --enableGitInfo" + +[context.split1.environment] - HUGO_VERSION = "0.112.5" ++HUGO_VERSION = "0.113.0" +HUGO_ENV = "production" + +[context.deploy-preview] +command = "hugo --gc --minify --buildFuture -b $DEPLOY_PRIME_URL" + +[context.deploy-preview.environment] - HUGO_VERSION = "0.112.5" ++HUGO_VERSION = "0.113.0" + +[context.branch-deploy] +command = "hugo --gc --minify -b $DEPLOY_PRIME_URL" + +[context.branch-deploy.environment] - HUGO_VERSION = "0.112.5" ++HUGO_VERSION = "0.113.0" + +[context.next.environment] +HUGO_ENABLEGITINFO = "true" + +[[redirects]] +from = "/npmjs/*" +to = "/npmjs/" +status = 200