diff --git a/.gitignore b/.gitignore index 6ed008edd..3cb9c3f4c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ themes/hugodocs/pipeline/node_modules -my-notes.md \ No newline at end of file +my-notes.md +notes-for-reviewers.md \ No newline at end of file diff --git a/config.toml b/config.toml index 2e9f7cafd..7521b730c 100644 --- a/config.toml +++ b/config.toml @@ -50,6 +50,8 @@ verboseLog = false # Setting this to false will keep hugo from watching for changes during local development watch = true +[permalinks] + temp = "/:title" #CUSTOM PARAMS [params] @@ -89,8 +91,8 @@ watch = true ## Discuss Forum URL forum = "https://discuss.hugo.io" gtmid = "" - # Set to true to include a CDN call to FontAwesome - usefontawesome = true + # Set to true to include a CDN call to FontAwesome (not that Hugo docs currently hosts its own FA (see pipeline/scss/_variables.scss)) + usefontawesome = false # MARKDOWN ## Configuration for BlackFriday markdown parser: https://github.com/russross/blackfriday [blackfriday] @@ -101,4 +103,4 @@ watch = true [taxonomies] tag = "tags" - category = "" \ No newline at end of file + category = "categories" \ No newline at end of file diff --git a/content/_index.md b/content/_index.md index f8c1c284b..bc5257603 100644 --- a/content/_index.md +++ b/content/_index.md @@ -10,5 +10,5 @@ draft: false slug: aliases: [] toc: false -notes: +notesforauthors: --- diff --git a/content/about-hugo/_index.md b/content/about-hugo/_index.md index 74b7ec273..a11681036 100644 --- a/content/about-hugo/_index.md +++ b/content/about-hugo/_index.md @@ -1,58 +1,15 @@ --- -title: About Hugo -linktitle: About Hugo +title: Overview +linktitle: Overview description: Hugo's features, roadmap, and license, as well as the motivation behind creating Hugo. date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -layout: single +tags: [] +categories: [] weight: 01 draft: false -slug: -aliases: [/overview/introduction/] -toc: true -notes: ---- - -## What is Hugo? - -Hugo is a general-purpose website framework. Technically speaking, Hugo is a [static site generator][]. Unlike systems that dynamically build a page with each visitor request, Hugo builds pages when you create or update your content. Since websites are viewed far more often than they are edited, Hugo is designed to provide an optimal viewing experience for your website's end users and an ideal writing experience for website authors. - -Websites built with Hugo are extremely fast and secure. Hugo sites can be hosted anywhere, including [Heroku][], [GoDaddy][], [DreamHost][], [GitHub Pages][], [Surge][], [Aerobatic][], [Firebase][], [Google Cloud Storage][], [Amazon S3][], [rackspace][], [Azure][], and [CloudFront][] and work well with CDNs. Hugo sites run without the need for a database or dependencies on expensive runtimes like Ruby, Python, or PHP. - -We think of Hugo as the ideal website creation tool. Hugo provides nearly instant build times and the ability to rebuild whenever a change is made, which is invaluable when you are designing websites and creating content. - -## How Fast is Hugo? - -{{< youtube "CdiDYZ51a2o" >}} - - -## What Does Hugo Do? - -In technical terms, Hugo takes a source directory of files and templates and uses these as input to create a complete website. - -## Who Should Use Hugo? - -Hugo is for people that prefer writing in a text editor over a browser. - -Hugo is for people who want to hand code their own website without worrying about setting up complicated runtimes, dependencies and databases. - -Hugo is for people building a blog, a company site, a portfolio site, documentation, a single landing page, or a website with thousands of pages. - -[Aerobatic]: https://www.aerobatic.com/ -[Amazon S3]: http://aws.amazon.com/s3/ -[Azure]: https://blogs.msdn.microsoft.com/acoat/2016/01/28/publish-a-static-web-site-using-azure-web-apps/ -[CloudFront]: http://aws.amazon.com/cloudfront/ "Amazon CloudFront" -[DreamHost]: http://www.dreamhost.com/ -[Firebase]: https://firebase.google.com/docs/hosting/ "Firebase static hosting" -[GitHub Pages]: https://pages.github.com/ -[GitLab]: https://about.gitlab.com -[GoDaddy]: https://www.godaddy.com/ "Godaddy.com Hosting" -[Google Cloud Storage]: http://cloud.google.com/storage/ -[Heroku]: https://www.heroku.com/ -[Jekyll]: http://jekyllrb.com/ -[Middleman]: https://middlemanapp.com/ -[Nanoc]: http://nanoc.ws/ -[rackspace]: https://www.rackspace.com/cloud/files -[static site generator]: /about-hugo/benefits-of-static/ -[Surge]: https://surge.sh \ No newline at end of file +aliases: [] +toc: false +notesforauthors: +--- \ No newline at end of file diff --git a/content/about-hugo/benefits-of-static.md b/content/about-hugo/benefits-of-static.md index 3c0bb67a2..6295b1b33 100644 --- a/content/about-hugo/benefits-of-static.md +++ b/content/about-hugo/benefits-of-static.md @@ -1,7 +1,7 @@ --- title: The Benefits of Static linktitle: The Benefits of Static -description: Learn why static site generators have become so popular. Benefits include performance, security, ease of use, and exportability of content. +description: Learn why static site generators have become such a popular option for developers. Benefits include performance, security, ease of use, and exportability of content. date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 @@ -11,7 +11,7 @@ draft: false slug: aliases: [] toc: false -notes: +notesforauthors: --- Website generators render content into HTML files. Most are "dynamic site generators." That means the HTTP server (i.e., the program that communicates with your end user's browser) runs the generator to create a new HTML file every time an end user requests a page. diff --git a/content/about-hugo/hugo-features.md b/content/about-hugo/hugo-features.md index 66b72501f..d4b703fb8 100644 --- a/content/about-hugo/hugo-features.md +++ b/content/about-hugo/hugo-features.md @@ -1,7 +1,7 @@ --- title: Hugo Features linktitle: -description: Hugo is the world's fastest static site generator, includes a powerful templating language, and works for websites of all sizes and types. +description: In addition to blistering speed, Hugo also includes a powerful templating language that makes it appropriate for websites of all sizes and types. date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 @@ -10,7 +10,7 @@ draft: false slug: aliases: [/about-hugo/features] toc: true -notes: +notesforauthors: --- ## General @@ -82,7 +82,7 @@ See what's coming next in the [Hugo roadmap][]. [RSS]: /templates/rss-templates/ [Shortcodes]: /templates/shortcodes/ [sort content]: /templates/ -[supported formats]: /content-management/markdown-and-supported-formats/ +[supported formats]: /content-management/supported-content-formats/ [Syntax highlighting]: /developer-tools/syntax-highlighting/ [table of contents]: /content-management/table-of-contents/ [taxonomies]: /content-management/taxonomies/ diff --git a/content/about-hugo/license.md b/content/about-hugo/license.md index d0bb69bfb..e34938f53 100644 --- a/content/about-hugo/license.md +++ b/content/about-hugo/license.md @@ -1,7 +1,7 @@ --- title: Apache License linktitle: -description: Hugo v0.15 and later are released under the Apache 2.0 license. Earlier version of Hugo were released under the Simple Public License. +description: Hugo v0.15 and later are released under the Apache 2.0 license. Earlier versions of Hugo were released under the Simple Public License. date: 2016-02-01 publishdate: 2016-02-01 lastmod: 2016-02-01 @@ -10,7 +10,7 @@ draft: false slug: aliases: [/meta/license] toc: true -notes: +notesforauthors: --- {{% note %}} diff --git a/content/about-hugo/roadmap.md b/content/about-hugo/roadmap.md index f6c5bc450..3a635e5f1 100644 --- a/content/about-hugo/roadmap.md +++ b/content/about-hugo/roadmap.md @@ -1,6 +1,6 @@ --- title: Roadmap -linktitle: +linktitle: Roadmap description: Take a look at what's in the pipeline for future versions of the Hugo project, as well related GitHub issues and Hugo Forum discussions for new features. date: 2017-02-01 publishdate: 2017-02-01 @@ -11,7 +11,7 @@ draft: false slug: aliases: [/meta/roadmap] toc: false -notes: +notesforauthors: --- In no particular order, here is what is currently being worked on for the Hugo project: diff --git a/content/about-hugo/what-is-hugo.md b/content/about-hugo/what-is-hugo.md new file mode 100644 index 000000000..25ba68450 --- /dev/null +++ b/content/about-hugo/what-is-hugo.md @@ -0,0 +1,56 @@ +--- +title: What is Hugo +linktitle: What is Hugo +description: Hugo is the world's fastest static site generator. The purpose of Hugo is to make making websites fun again. +date: 2017-02-01 +publishdate: 2017-02-01 +lastmod: 2017-02-01 +layout: single +weight: 05 +draft: false +aliases: [/overview/introduction/] +toc: true +notesforauthors: +--- + +## What is Hugo? + +Hugo is a general-purpose website framework. Technically speaking, Hugo is a [static site generator][]. Unlike systems that dynamically build a page with each visitor request, Hugo builds pages when you create or update your content. Since websites are viewed far more often than they are edited, Hugo is designed to provide an optimal viewing experience for your website's end users and an ideal writing experience for website authors. + +Websites built with Hugo are extremely fast and secure. Hugo sites can be hosted anywhere, including [Heroku][], [GoDaddy][], [DreamHost][], [GitHub Pages][], [Surge][], [Aerobatic][], [Firebase][], [Google Cloud Storage][], [Amazon S3][], [rackspace][], [Azure][], and [CloudFront][] and work well with CDNs. Hugo sites run without the need for a database or dependencies on expensive runtimes like Ruby, Python, or PHP. + +We think of Hugo as the ideal website creation tool. Hugo provides nearly instant build times and the ability to rebuild whenever a change is made, which is invaluable when you are designing websites and creating content. + +## How Fast is Hugo? + +{{< youtube "CdiDYZ51a2o" >}} + +## What Does Hugo Do? + +In technical terms, Hugo takes a source directory of files and templates and uses these as input to create a complete website. + +## Who Should Use Hugo? + +Hugo is for people that prefer writing in a text editor over a browser. + +Hugo is for people who want to hand code their own website without worrying about setting up complicated runtimes, dependencies and databases. + +Hugo is for people building a blog, a company site, a portfolio site, documentation, a single landing page, or a website with thousands of pages. + +[Aerobatic]: https://www.aerobatic.com/ +[Amazon S3]: http://aws.amazon.com/s3/ +[Azure]: https://blogs.msdn.microsoft.com/acoat/2016/01/28/publish-a-static-web-site-using-azure-web-apps/ +[CloudFront]: http://aws.amazon.com/cloudfront/ "Amazon CloudFront" +[DreamHost]: http://www.dreamhost.com/ +[Firebase]: https://firebase.google.com/docs/hosting/ "Firebase static hosting" +[GitHub Pages]: https://pages.github.com/ +[GitLab]: https://about.gitlab.com +[GoDaddy]: https://www.godaddy.com/ "Godaddy.com Hosting" +[Google Cloud Storage]: http://cloud.google.com/storage/ +[Heroku]: https://www.heroku.com/ +[Jekyll]: http://jekyllrb.com/ +[Middleman]: https://middlemanapp.com/ +[Nanoc]: http://nanoc.ws/ +[rackspace]: https://www.rackspace.com/cloud/files +[static site generator]: /about-hugo/benefits-of-static/ +[Surge]: https://surge.sh \ No newline at end of file diff --git a/content/about-hugo/why-i-built-hugo.md b/content/about-hugo/why-i-built-hugo.md index 97bc227ec..0051b0b23 100644 --- a/content/about-hugo/why-i-built-hugo.md +++ b/content/about-hugo/why-i-built-hugo.md @@ -10,7 +10,7 @@ draft: false slug: aliases: [] toc: false -notes: +notesforauthors: --- I wrote Hugo ultimately for a few reasons. First, I was disappointed with WordPress, my then website solution. With it, I couldn't create content as efficiently as I wanted to. diff --git a/content/content-management/_index.md b/content/content-management/_index.md index 8190a117b..a9b728c87 100644 --- a/content/content-management/_index.md +++ b/content/content-management/_index.md @@ -1,6 +1,6 @@ --- -title: "Content Management" -linktitle: "Content Management" +title: Overview +linktitle: Overview description: Hugo makes managing large static sites easy with support for archetypes, content types, menus, cross references, summaries, and more. date: 2017-02-01 publishdate: 2017-02-01 @@ -11,5 +11,5 @@ weight: 01 draft: false aliases: [/content/] toc: false -notes: ---- \ No newline at end of file +notesforauthors: +--- diff --git a/content/content-management/archetypes.md b/content/content-management/archetypes.md index a92b21067..728225538 100644 --- a/content/content-management/archetypes.md +++ b/content/content-management/archetypes.md @@ -9,9 +9,9 @@ tags: [archetypes,generators,metadata,front matter] categories: ["content management"] weight: 50 draft: false -aliases: [/content/archetypes/] +aliases: [/content/archetypes/,/content-management/content-archetypes/] toc: true -notes: +notesforauthors: --- ## What are Archetypes? diff --git a/content/content-management/content-organization.md b/content/content-management/content-organization.md new file mode 100644 index 000000000..6b5bcd986 --- /dev/null +++ b/content/content-management/content-organization.md @@ -0,0 +1,177 @@ +--- +title: Content Organization +linktitle: Content Organization +description: Hugo assumes that the same structure that works to organize your source content is used to organize the rendered site, but +date: 2017-02-01 +publishdate: 2017-02-01 +lastmod: 2017-02-01 +tags: [sections,content,organization, fundamentals] +categories: [project organization] +weight: 05 +draft: false +slug: +aliases: [/content-management/sections,/content/sections/] +toc: true +notesforauthors: +--- + +Hugo uses files (see [supported content formats][]) with headers called [front matter][]. By default, Hugo assumes the same structure that works to organize your content is used to organize the rendered site. This is done in an effort to reduce configuration. However, this convention can be overridden through additional configuration in the front matter, as well as through Hugo's extensive features related to [URL management][]. + +## Organizing Source Content + +In Hugo, the content should be organized in a manner that reflects the rendered website. Without any additional configuration, the following will just work. Hugo supports content nested at any level, but the top level is special in Hugo and is used as the [section](/content-management/content-sections/). + +```bash +. +└── content + └── about + | └── _index.md // <- http://1.com/about/ + ├── post + | ├── firstpost.md // <- http://1.com/post/firstpost/ + | ├── happy + | | └── ness.md // <- http://1.com/post/happy/ness/ + | └── secondpost.md // <- http://1.com/post/secondpost/ + └── quote + ├── first.md // <- http://1.com/quote/first/ + └── second.md // <- http://1.com/quote/second/ +``` + +Here's the same organization run with `hugo --uglyURLs`: + +```bash +. +└── content + └── about + | └── _index.md // <- http://1.com/about/ + ├── post + | ├── firstpost.md // <- http://1.com/post/firstpost.html + | ├── happy + | | └── ness.md // <- http://1.com/post/happy/ness.html + | └── secondpost.md // <- http://1.com/post/secondpost.html + └── quote + ├── first.md // <- http://1.com/quote/first.html + └── second.md // <- http://1.com/quote/second.html +``` + +## Destinations + +Hugo believes that you organize your content with a purpose. The same structure that works to organize your source content is used to organize the rendered site. As displayed above, the organization of the source content will be mirrored in the destination. + +Notice that the first level `about/` page URL was created using a directory named "about" with a single `_index.md` file inside. Find out more about `_index.md` specifically in [content for the homepage and other list pages](https://gohugo.io/overview/source-directory#content-for-home-page-and-other-list-pages). + +There are times when one would need more control over their content. In these cases, there are a variety of things that can be specified in the front matter to determine the destination of a specific piece of content. + +The following items are defined in order; latter items in the list will override earlier settings. + +### `filename` + +This isn't in the front matter, but is the actual name of the file minus the extension. This will be the name of the file in the destination. + +### `slug` + +Defined in the front matter, the `slug` can take the place of the filename for the destination. + +### `filepath` + +The actual path to the file on disk. Destination will create the destination with the same path. Includes [section](/content/sections/). + +### `section` + +`section` is determined by its location on disk and *cannot* be specified in the front matter. See [section](/content/sections/). + +### `type` + +`type` is also determined by its location on disk but, unlike `section`, it *can* be specified in the front matter. See [type](/content/types/). + +### `path` + +`path` can be provided in the front matter. This will replace the actual path to the file on disk. Destination will create the destination with the same path. Includes [section](/content/sections/). + +### `url` + +A complete URL can be provided. This will override all the above as it pertains to the end destination. This must be the path from the baseURL (starting with a "/"). When a `url` is provided, it will be used exactly. Using `url` will ignore the `--uglyURLs` setting. + + +## Path breakdown in Hugo + +### Content + +```bash +. path slug +. ⊢-------^----⊣ ⊢------^-------⊣ +content/extras/indexes/category-example/index.html +``` + +```bash +. section slug +. ⊢--^--⊣ ⊢------^-------⊣ +content/extras/indexes/category-example/index.html +``` + +```bash +. section slug +. ⊢--^--⊣⊢--^--⊣ +content/extras/indexes/index.html +``` + +### Destination + +```bash + permalink +⊢--------------^-------------⊣ +http://spf13.com/projects/hugo +``` + +```bash + baseURL section slug +⊢-----^--------⊣ ⊢--^---⊣ ⊢-^⊣ +http://spf13.com/projects/hugo +``` + +```bash + baseURL section slug +⊢-----^--------⊣ ⊢--^--⊣ ⊢--^--⊣ +http://spf13.com/extras/indexes/example +``` + +```bash + baseURL path slug +⊢-----^--------⊣ ⊢------^-----⊣ ⊢--^--⊣ +http://spf13.com/extras/indexes/example +``` + +```bash + baseURL url +⊢-----^--------⊣ ⊢-----^-----⊣ +http://spf13.com/projects/hugo +``` + +```bash + baseURL url +⊢-----^--------⊣ ⊢--------^-----------⊣ +http://spf13.com/extras/indexes/example +``` + +**section** = which type the content is by default + +* based on content location +* front matter overrides + +**slug** = name.ext or name/ + +* based on `content-name.md` +* front matter overrides + +**path** = section + path to file, excluding slug + +* based on path to content location + + +**url** = relative URL + +* defined in front matter +* overrides all the above + +[front matter]: /content-management/front-matter/ +[supported formats]: /content-management/supported-content-formats/ +[URL management]: /content-management/url-management/ diff --git a/content/content-management/content-sections.md b/content/content-management/content-sections.md index dd43e8f80..febe1bb84 100644 --- a/content/content-management/content-sections.md +++ b/content/content-management/content-sections.md @@ -1,7 +1,7 @@ --- -title: Content Sections -linktitle: Content Sections -description: Hugo assumes that the same structure that works to organize your source content is used to organize the rendered site. +title: Sections +linktitle: Sections +description: Hugo provides full support for content sections, which according to Hugo's default behavior, should reflect the architecture of the output website sections as well. date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 @@ -10,12 +10,12 @@ categories: [content management] weight: 30 draft: false slug: -aliases: [/content-management/sections,/content/sections/] +aliases: [/content-management/sections/,/content/sections/] toc: true -notes: +notesforauthors: --- -## Content Organization +## What are Sections in Hugo Hugo believes that you organize your content with a purpose. The same structure that works to organize your source content is used to organize the rendered site (see [directory structure][]). @@ -46,22 +46,22 @@ The [example site][] used throughout the Hugo docs includes three sections: "aut ## Content Section Lists -Hugo will automatically create pages for each section root that list all of the content in that section. See [List and Section Page Templates][] for details on customizing the way these pages are rendered. +Hugo will automatically create pages for each section root that list all of the content in that section. See the documentation on [list and section templates][listsandsectiontemplatespage] for details on customizing the way these pages are rendered. As of Hugo v0.18, section pages can also have a content file and front matter. These section content files must be placed in their corresponding section folder and named `_index.md` in order for Hugo to correctly render the front matter and content. {{% warning "`index.md` vs `_index.md`" %}} -Hugo themes developed before v0.18 often used an `index.md` in a content section as a hack to emulate the behavior of `_index.md`. The hack may work...*sometimes*; however, the order of page rendering can be unpredictable in Hugo. What works now may fail to render appropriately as your site grows. It is *strongly advised* to use `_index.md` as the *preferred* content section index page. **Note:** `_index.md`'s layout, as representative of a section, is a [list template](/templates/list-and-section-templates/) and *not* a single template. +Hugo themes developed before v0.18 often used an `index.md` in a content section as a hack to emulate the behavior of `_index.md`. The hack may work...*sometimes*; however, the order of page rendering can be unpredictable in Hugo. What works now may fail to render appropriately as your site grows. It is **strongly advised** to use `_index.md` as the *preferred* content section index page. **Note:** `_index.md`'s layout, as representative of a section, is a [list template](/templates/list-and-section-templates/) and *not* a single template. {{% /warning %}} -## Content Section vs Content Types +## Content *Section* vs Content *Type* -By default, everything created within a section will use the [content type][] that matches the section name. For example, Hugo will assume that `posts/post-1.md` has a `posts` content type and if using an [archetype][] will generate front matter according to `archetypes/posts.md`. +By default, everything created within a section will use the [content type][] that matches the section name. For example, Hugo will assume that `posts/post-1.md` has a `posts` content type. If you are using an [archetype][] for your posts section, Hugo will generate front matter according to what is finds in `archetypes/posts.md`. [archetype]: /content-management/archetypes/ [content type]: /content-management/content-types/ -[example site]: /getting-started/ -[directory structure]: /project-organization/directory-structure/ -[List and Section Page Templates]: /templates/list-and-section-page-templates/ +[example site]: /getting-started/using-the-hugo-docs/ +[directory structure]: /getting-started/directory-structure/ +[listsandsectiontemplatespage]: /templates/list-and-section-page-templates/ diff --git a/content/content-management/content-summaries.md b/content/content-management/content-summaries.md index ece97c932..6dd201888 100644 --- a/content/content-management/content-summaries.md +++ b/content/content-management/content-summaries.md @@ -11,6 +11,66 @@ weight: 70 draft: false slug: aliases: [/content/summaries/] -toc: -notes: ---- \ No newline at end of file +toc: true +notesforauthors: +--- + +With the use of the `.Summary` [page variable][pagevariables], Hugo can generate summaries of content to show snippets in summary views. The summary view snippets are automatically generated by Hugo. + +## Summary Splitting Options + +You have two options for where the content is split: + +* Hugo-defined Summary Split +* User-defined Summary Split + +Content summaries may also provide links to the original content. A common design pattern is to see this link in the form of a "Read More..." button. To make this easier, you can leverage the `.RelPermalink`, `.Permalink`, and `.Truncated` [page variables][pagevariables]. + +### Hugo-defined: Automatic Splitting + +By default, Hugo automatically takes the first 70 words of your content as its summary and stores it into the `.Summary` page variable for use in your templates. Taking the Hugo-defined approach to summaries may save time, but it has pros and cons: + +* **Pros:** Automatic, no additional work on your part. +* **Cons:** All HTML tags are stripped from the summary, and the first 70 words, whether they belong to a heading or to different paragraphs, are all lumped into one paragraph. + +### User-defined: Manual Splitting + +Alternatively, you may add the <!--more--> summary divider where you want to split the article. Content that comes before the summary divider will be used as that content's summary and stored in the `.Summary` page variable with all HTML formatting intact. + +{{% note "Summary Divider"%}} +The concept of a *summary divider* is not unique to Hugo. It is also called the "more tag" or "excerpt separator" in other literature. +{{% /note %}} + +* Pros: Freedom, precision, and improved rendering. All HTML tags and formatting are preserved. +* Cons: Extra work for content authors, since they need to remember to type <!--more--> in each content file. + +{{% warning "Be Precise with the Summary Divider" %}} +Be careful to enter <!--more--> exactly; i.e., all lowercase and with no whitespace. Any mistakes in the divider will tell Hugo to treat the divider as a regular comment and will fail to store your desired content in the `.Summary` variable. +{{% /warning %}} + +## Example: First 10 Articles with Summaries + +You can show content summaries with the following code. You could use the following snipper, for example, in a [section's list page template][]. + +{{% input "page-list-with-summaries.html" %}} +```html +{{ range first 10 .Data.Pages }} +
+
+

{{ .Title }}

+ {{ .Summary }} +
+ {{ if .Truncated }} + + {{ end }} +
+{{ end }} +``` +{{% /input %}} + +Note how the `.Truncated` boolean valuable may be used to hide the "Read More..." link when the content is not truncated; i.e., when the summary contains the entire article. + +[pagevariables]: /variables-and-params/page-variables/ +[section's list page template]: /templates/list-and-section-templates/ \ No newline at end of file diff --git a/content/content-management/content-types.md b/content/content-management/content-types.md index a99b70724..4263fa503 100644 --- a/content/content-management/content-types.md +++ b/content/content-management/content-types.md @@ -12,7 +12,7 @@ draft: false slug: aliases: [/content/types] toc: true -notes: +notesforauthors: --- Hugo provides full support for sites with multiple content types. A **content type** can have a unique set of metadata (i.e., [front matter][]) or customized [template][] and can be created by the `hugo new` command via content [archetypes][]. diff --git a/content/content-management/cross-references.md b/content/content-management/cross-references.md index 94885c7d7..df7796824 100644 --- a/content/content-management/cross-references.md +++ b/content/content-management/cross-references.md @@ -12,5 +12,148 @@ draft: false slug: aliases: [] toc: -notes: ---- \ No newline at end of file +notesforauthors: +--- + +Hugo makes it easy to link documents together with `ref` and `relref`, both of which are [built-in Hugo shortcodes][]. These shortcodes are also used to safely provide links to headings inside of your content, whether across documents or within a document. The only difference between `ref` and `relref` is whether the resulting URL is absolute (`http://1.com/about/`) or relative (`/about/`). + +## Using `ref` and `relref` + +```django +{{}} +{{}} +{{}} +{{}} +{{}} +{{}} +``` + +The single parameter to `ref` is a string with a content _document name_ (`about.md`), an in-document _anchor_ (`#who`), or both (`about.md#who`). + +### Document Names + +The _document name_ is the name of a document including the format extension; this may be just the filename, or the relative path from the `content/` directory. With a document `content/blog/post.md`, either format will produce the same result. + + {{}} ⇒ `/blog/post/` + {{}} ⇒ `/blog/post/` + +If you have multiple sections with the same filename, you should only use the relative path format, because the behaviour is _undefined_. So, if I also have a document `link/post.md`, the output of `ref` is unknown for `post.md`. + + {{}} ⇒ `/blog/post/` + {{}} ⇒ `/blog/post/` (maybe) + {{}} ⇒ `/link/post/` (maybe) + {{}} ⇒ `/link/post/` + +A relative document name must *not* begin with a slash (`/`). + + {{}} ⇒ `""` + +### Anchors + +When an _anchor_ is provided by itself, the current page’s unique identifier will be appended; when an _anchor_ is provided with a document name, the found page's unique identifier will be appended. + + {{}} ⇒ `#who:9decaf7` + {{}} ⇒ `/blog/post/#who:badcafe` + +More information about document unique identifiers and headings can be found [below]({{< ref "#hugo-heading-anchors" >}}). + +### Examples + +* `{{}}` ⇒ `http://1.com/blog/post/` +* `{{}}` ⇒ `http://1.com/blog/post/#tldr:caffebad` +* `{{}}` ⇒ `/blog/post/` +* `{{}}` ⇒ `/blog/post/#tldr:caffebad` +* `{{}}` ⇒ `#tldr:badcaffe` +* `{{}}` ⇒ `#tldr:badcaffe` + +## Hugo Heading Anchors + +When using Markdown document types, Hugo generates heading anchors automatically. The generated anchor for this section is `hugo-heading-anchors`. Because the heading anchors are generated automatically, Hugo takes some effort to ensure that heading anchors are unique both inside a document and across the entire site. + +Ensuring heading uniqueness across the site is accomplished with a unique identifier for each document based on its path. Unless a document is renamed or moved between sections *in the filesystem*, the unique identifier for the document will not change: `blog/post.md` will always have a unique identifier of `81df004c333b392d34a49fd3a91ba720`. + +`ref` and `relref` were added so you can make these reference links without having to know the document’s unique identifier. (The links in document tables of contents are automatically up-to-date with this value.) + + {{}} + /extras/crossreferences/#hugo-heading-anchors:77cd9ea530577debf4ce0f28c8dca242 + +> What follows is a deeper discussion of *why* and *how* Hugo generates heading anchors. It is not necessary to know this to use `ref` and `relref`, but it may be useful in understanding how some anchors may not match your expectations. + +### How to Generate a Heading Anchor + +Convert the text of the heading to lowercase. + + Hugo: A Fast & Modern Static Web Engine + hugo: a fast & modern static web engine + +Replace anything that isn't an ASCII letter (`a-z`) or number (`0-9`) with a dash (`-`). + + hugo: a fast & modern static web engine + hugo--a-fast---modern-static-web-engine + +Get rid of extra dashes. + + hugo--a-fast---modern-static-web-engine + hugo-a-fast-modern-static-web-engine + +You have just converting the text of a heading to a suitable anchor. If your document has unique heading text, all of the anchors will be unique, too. + +#### Specifying Heading Anchors + +You can also tell Hugo to use a particular heading anchor. + + # Hugo: A Fast & Modern Static Web Engine {#hugo-main} + +Hugo will use `hugo-main` as the heading anchor. + +### What About Duplicate Heading Anchors? + +The technique outlined above works well enough, but some documents have headings with identical text, like the [shortcodes](/extras/shortcodes/) page—there are three headings with the text "Example". You can specify heading anchors manually: + + ### Example {#example-1} + ### Example {#example-2} + ### Example {#example-3} + +It’s easy to forget to do that all the time, and Hugo is smart enough to do it for you. It just adds `-x` to the end of each heading it has already seen. + +* `### Example` ⇒ `example` +* `### Example` ⇒ `example-1` +* `### Example` ⇒ `example-2` + +Sometimes it's a little harder, but Hugo can recover from those, too, by adding more suffixes: + +* `# Heading` ⇒ `heading` +* `# Heading 1` ⇒ `heading-1` +* `# Heading` ⇒ `heading-1-1` +* `# Heading` ⇒ `heading-1-2` +* `# Heading 1` ⇒ `heading-2` + +This can even affect specified heading anchors that come after a generated heading anchor. + +* `# My Heading` ⇒ `my-heading` +* `# My Heading {#my-heading}` ⇒ `my-heading-1` + +> This particular collision and override is unfortunate, but unavoidable because Hugo processes each heading for collision detection as it sees it during conversion. + +This technique works well for documents rendered on individual pages, like blog posts. What about on Hugo list pages? + +### Unique Heading Anchors in Lists + +Hugo converts each document from Markdown independently. It doesn’t know that `blog/post.md` has an "Example" heading that will collide with the "Example" heading in `blog/post2.md`. Even if it did know this, the addition of `blog/post3.md` should not cause the anchors for the headings in the other blog posts to change. + +Enter the document’s unique identifier. To prevent this sort of collision on +list pages, Hugo always appends the document's to a generated heading anchor. +So, the "Example" heading in `blog/post.md` actually turns into +`#example:81df004…`, and the "Example" heading in `blog/post2.md` actually +turns into `#example:8cf1599…`. All you have to know is the heading anchor that +was generated, not the document identifier; `ref` and `relref` take care of the +rest for you. + + Post Example + Post Example + + [Post Two Example]({{}}) + Post Two Example + + +[built-in Hugo shortcodes]: /content-management/shortcodes/#using-the-built-in-shortcodes \ No newline at end of file diff --git a/content/content-management/front-matter.md b/content/content-management/front-matter.md index 750d88447..b79fc5fd8 100644 --- a/content/content-management/front-matter.md +++ b/content/content-management/front-matter.md @@ -12,9 +12,120 @@ draft: false slug: aliases: [/content/front-matter/] toc: -notes: +notesforauthors: --- +**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. Hugo supports a few different formats for front matter, each with their own identifying tokens. + +## Supported Front Matter Formats + +* **TOML**, identified by '`+++`'. +* **YAML**, identified by '`---`'. +* **JSON**, a single JSON object which is surrounded by '`{`' and '`}`', each on their own line. + +### TOML Front Matter Example + +```toml ++++ +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" ++++ +``` + +### YAML Front Matter Example + +```yaml +--- +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" ] +lastmod: 2015-12-23 +date: "2012-04-06" +categories: + - "Development" + - "VIM" +slug: "spf13-vim-3-0-release-and-new-website" +--- +``` + +### JSON Front Matter Example + +```json +{ + "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" +} +``` + +## Variables + +There are a few predefined variables that Hugo is aware of and utilizes. The user can also create any variable they want. These will be placed into the `.Params` variable available to the templates. Field names are always normalized to lowercase (e.g. `camelCase: true` is available as `.Params.camelcase`). + +### Required variables + +* `title`. The title for the content +* `description`. The description for the content +* `date`. The date the content will be sorted by +* `taxonomies`. These will use the field name of the plural form of the index (see tags and categories above) + +### Optional variables + +* **aliases** An array of one or more aliases + (e.g. old published path of a renamed content) + that would be created to redirect to this content. + See [Aliases][] for details. +* **draft** If true, the content will not be rendered unless `hugo` is called with `--buildDrafts` +* **publishdate** If in the future, content will not be rendered unless `hugo` is called with `--buildFuture` +* **expirydate** Content already expired will not be rendered unless `hugo` is called with `--buildExpired` +* **type** The type of the content (will be derived from the directory automatically if unset) +* **isCJKLanguage** If true, explicitly treat the content as CJKLanguage (`.Summary` and `.WordCount` can work properly in CJKLanguage) +* **weight** Used for sorting +* **markup** *(Experimental)* Specify `"rst"` for reStructuredText (requires + `rst2html`) or `"md"` (default) for Markdown +* **slug** appears as tail of the url. It can be used to change the part of the url that is based on the filename. +* **url** The full path to the content from the web root. It makes no assumptions about the path of the content file. It also ignores any language prefixes of the multilingual feature. + +{{% note "Hugo's Default URLs" %}} +If neither `slug` nor `url` is present, and [permalinks are not configured otherwise](/content-management/url-management/#permalinks), the filename will be used to create the URL for a page. +{{% /note %}} + +## Configure Blackfriday Rendering + +It's possible to set some options for Markdown rendering in the page's front matter as an override to the site-wide configuration. + +See [site configuration][] for more information. + ## Parameters -(Previously referred to as "variables"). \ No newline at end of file +## Ordering Content + +### Assigning `weight` to Content + +### Assigning `weight` to Taxonomies + +## Front Matter Format Specs + +* [TOML Spec][] +* [YAML Spec][] +* [JSON Spec][] + +[aliases]: /content-management/url-management/#aliases/ +[content type]: /content-management/content-types/ +[site configuration]: /project-organization/configuration/ "Hugo documentation for site configuration" +[JSON Spec]: /documents/ecma-404-json-spec.pdf "Specification for JSON, JavaScript Object Notation" +[TOML Spec]: https://github.com/toml-lang/toml "Specification for TOML, Tom's Obvious Minimal Language" +[YAML Spec]: http://yaml.org/spec/ "Specification for YAML, YAML Ain't Markup Language" diff --git a/content/content-management/markdown-and-supported-formats.md b/content/content-management/markdown-and-supported-formats.md deleted file mode 100644 index 5d106cbb4..000000000 --- a/content/content-management/markdown-and-supported-formats.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: Markdown and Supported Formats -linktitle: -description: Hugo uses the BlackFriday markdown parser for content files but also provides support for additional syntaxes (eg, Asciidoc) via external helpers. -date: 2017-01-10 -publishdate: 2017-01-10 -lastmod: 2017-01-10 -categories: [content management] -tags: [markdown,asciidoc,mmark,content format] -weight: 10 -draft: false -slug: -aliases: [/content/markdown-extras/,/content/supported-formats/,/content/markdown/] -toc: true -notes: ---- - -## Markdown - -Markdown is the natively supported content format for Hugo and is rendered using the excellent [BlackFriday project][], a markdown parser written in Golang. - -{{% note "Deeply Nested Lists" %}} -Hugo uses [BlackFriday](https://github.com/russross/blackfriday), a markdown processor written in Golang. BlackFriday has a known issue [(#329)](https://github.com/russross/blackfriday/issues/329) with handling deeply nested lists, but there is a workaround. If you write lists in markdown, be sure to include 4 spaces (i.e., tab) rather than 2 to delimit nesting of lists. -{{% /note %}} - -## Additional Resources - - - -* [Markdown Tutorial][] - -[BlackFriday project]: https://github.com/russross/blackfriday -[Markdown Tutorial]: http://www.markdowntutorial.com/ \ No newline at end of file diff --git a/content/content-management/menus.md b/content/content-management/menus.md index fb14c7659..08f1ec65b 100644 --- a/content/content-management/menus.md +++ b/content/content-management/menus.md @@ -12,5 +12,5 @@ draft: false slug: aliases: [/extras/menus/] toc: false -notes: +notesforauthors: --- \ No newline at end of file diff --git a/content/content-management/multilingual-mode.md b/content/content-management/multilingual-mode.md index 92a74823a..b601193e0 100644 --- a/content/content-management/multilingual-mode.md +++ b/content/content-management/multilingual-mode.md @@ -12,5 +12,5 @@ draft: false slug: aliases: [] toc: true -notes: +notesforauthors: --- \ No newline at end of file diff --git a/content/content-management/shortcodes.md b/content/content-management/shortcodes.md index f5d645645..874efa356 100644 --- a/content/content-management/shortcodes.md +++ b/content/content-management/shortcodes.md @@ -6,28 +6,25 @@ date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 weight: 25 -tags: [markdown,content] categories: [content management] +tags: [markdown,content,shortcodes] draft: false slug: aliases: [/extras/shortcodes/] toc: true -notes: --- -Hugo uses Markdown for its simple content format. However, there are a lot of things that Markdown doesn’t support well. +Hugo loves Markdown because of its simple content format, but there are times when markdown falls short. Often, content authors fall back on adding raw HTML (e.g., video ``) to markdown content. We think blocks of raw HTML contradict the beautiful simplicity of markdown's syntax. -We are unwilling to accept being constrained by our simple format. Also unacceptable is writing raw HTML in our Markdown every time we want to include unsupported content such as a video. To do so is in complete opposition to the intent of using a bare-bones format for our content and utilizing templates to apply styling for display. +Hugo created **shortcodes** to circumvent these limitations. -To avoid both of these limitations, Hugo created **shortcodes**. +A shortcode is a simple snippet inside a content file that Hugo will render using a predefined template. Note that shortcodes will not work in template files---if you need the type of drop-in functionality that shortcodes provide but in a template, you most likely want a [partial template][partialtemplatespage] instead. -A shortcode is a simple snippet inside a content file that Hugo will render using a predefined template. Note that shortcodes will not work in template files---if you need a functionality like that in a template, you most likely want a [partial template][] instead. - -Another benefit is, you can update your shortcode with any related new classes or techniques, and upon generation, Hugo will easily merge in your changes. You avoid a possibly complicated search and replace operation. +In addition to cleaner markdown, shortcodes can be updated any time to reflect new classes, techniques, or standards. At the point of site generation, Hugo shortcodes will easily merge in your changes. You avoid a possibly complicated search and replace operation. ## Using Shortcodes -In your content files, a shortcode can be called by using the `{{%/* name parameters*/%}}` form. Shortcode parameters are space delimited. Parameters with spaces can be quoted. +In your content files, a shortcode can be called by using the `{{%/* shortcodename parameters*/%}}` form. Shortcode parameters are space delimited. Parameters with internal spaces can be quoted. The first word is always the name of the shortcode. Parameters follow the name. Depending upon how the shortcode is defined, the parameters may be named, @@ -35,7 +32,7 @@ positional or both (although you can't mixed parameter types in a single call). The format for named parameters models that of HTML with the format `name="value"`. -Some shortcodes use or require closing shortcodes. Like HTML, the opening and closing shortcodes match (name only), the closing being prepended with a slash. +Some shortcodes use or require closing shortcodes. Like HTML, the opening and closing shortcodes match (name only) with the closing declaration prepended with a slash. Example of a paired shortcode: @@ -61,24 +58,24 @@ The `<` character indicates that the shortcode's inner content doesn't need any {{}}

Hello World!

{{}} ``` -## Built-in Shortcodes +## Using the Built-in Shortcodes -Hugo ships with a set of predefined shortcodes. +Hugo ships with a set of predefined shortcodes the represent very common usage that would otherwise muddy your content with unnecessary markup. ### `figure` -`figure` is simply an extension of the image capabilities present with Markdown.`figure` provides the ability to add captions, CSS classes, alt text, links etc. +`figure` is an extension of the image syntax in Markdown, which does not provide a shorthand for the more semantic [HTML5 `
` element][figurelement]. `figure` can use the following named parameters: -* src -* link -* title -* caption -* class -* attr (attribution) -* attrlink -* alt +* `src` +* `link` +* `title` +* `caption` +* `class` +* `attr` (i.e., attribution) +* `attrlink` +* `alt` #### Example `figure` Input @@ -103,13 +100,15 @@ Hugo ships with a set of predefined shortcodes. ### `gist` -Including code snippets with GitHub gists while writing a tutorial is common situation bloggers face. With a given URL of the gist; e.g.: - -* https://gist.github.com/spf13/7896402 - -pass the owner and the ID of the gist to the shortcode: +Bloggers often want to include GitHub gists when writing posts. Let's supposed we want to use the following [gist][examplegist]: +```html +https://gist.github.com/spf13/7896402 ``` + +We can embed the gist in our content via username and gist ID pulled from the URL: + +```golang {{}} ``` @@ -183,7 +182,7 @@ These shortcodes will look up the pages by their relative path (e.g., `blog/post `ref` and `relref` also make it possible to make fragmentary links that work for the header links generated by Hugo. {{% note "More on Cross References" %}} -Read a more extensive description of `ref` and `relref` in the [cross-references]() documentation. +Read a more extensive description of `ref` and `relref` in the [cross references](/content-management/cross-references/) documentation. {{% /note %}} `ref` and `relref` take exactly one required parameter of _reference_, quoted and in position `0`. @@ -260,228 +259,21 @@ Furthermore, you can autostart the embedded video by setting the `autostart` par {{}} ``` -## Creating your own shortcodes +## Creating Custom Shortcodes -To create a shortcode, place a template in the `layouts/shortcodes` directory of your [source organization][]. The template name will be the name of the shortcode. In creating a shortcode, you can choose if the shortcode will use _positional parameters_, or _named parameters_, or _both_. A good rule of thumb is that if a shortcode has a single required value in the case of the `youtube` example below, then positional works very well. For more complex layouts with optional parameters, named parameters work best. Allowing both types of parameters is useful for complex layouts where you want to set default values that can be overridden. +To learn more about creating your own shortcode templates, see the [shortcode template documentation][]. -### Accessing Parameters - -To access a parameter in any shortcode, use the `.Get` method. Whether you pass a key (string) or a number to the `.Get` method depends on whether you are accessing a named or positional parameter, respectively. - -To access a parameter by name, the `.Get` method followed by the named parameter as a quoted string. Named parameters are less terse but do not require that a content author be mindful of the order of parameters. - -```golang -{{ .Get "class" }} -``` - -To access a parameter by position, the `.Get` method can be used, keeping in mind that the first positional parameter within the shortcode declaration starts at `0`: - -```golang -{{ .Get 0 }} -``` - -`with` is great when the output depends on a parameter being set: - -```golang -{{ with .Get "class"}} class="{{.}}"{{ end }} -``` - -`.Get` can also be used to check if a parameter has been provided. This is -most helpful when the condition depends on either of the values, or both: - -```golang -{{ or .Get "title" | .Get "alt" | if }} alt="{{ with .Get "alt"}}{{.}}{{else}}{{.Get "title"}}{{end}}"{{ end }} -``` - -If a closing shortcode is used, the variable `.Inner` will be populated with all -of the content between the opening and closing shortcodes. If a closing -shortcode is required, you can check the length of `.Inner` and provide a warning -to the user. - -A shortcode with `.Inner` content can be used without the inline content, and without the closing shortcode, by using the self-closing syntax: - -```golang -{{}} -``` - -The variable `.Params` contains the list of parameters in case you need to do more complicated things than `.Get`. It is sometimes useful to provide a flexible shortcode that can take named or positional parameters. To meet this need, Hugo shortcodes have `.IsNamedParams`, a boolean available that can be used such as `{{ if .IsNamedParams }}...{{ else }}...{{ end }}`. See the `Single Flexible Example` below for an example. - -You can also use the variable `.Page` to access all the normal [page variables][]. - -A shortcodes can be nested. In a nested shortcode you can access the parent shortcode context with `.Parent`. This can be very useful for inheritance of common shortcode parameters from the root. - -### Single Positional Example: `youtube` - -```golang -{{}} -``` - -Would load the template at `/layouts/shortcodes/youtube.html`: - -{{% input "/layouts/shortcodes/youtube.html" %}} -```html -
- -
-``` -{{% /input %}} - -This would be rendered as: - -{{% output "youtube-embed.html" %}} -```html -
- -
-``` -{{% /output %}} - -### Single Named Example: `image` - -{{% input "content-image.md" %}} -```golang -{{}} -``` -{{% /input %}} - -Would load the template at `/layouts/shortcodes/img.html`: - -{{% input "/layouts/shortcodes/img.html" %}} -```html - -
- {{ with .Get "link"}}{{ end }} - - {{ if .Get "link"}}{{ end }} - {{ if or (or (.Get "title") (.Get "caption")) (.Get "attr")}} -
{{ if isset .Params "title" }} -

{{ .Get "title" }}

{{ end }} - {{ if or (.Get "caption") (.Get "attr")}}

- {{ .Get "caption" }} - {{ with .Get "attrlink"}} {{ end }} - {{ .Get "attr" }} - {{ if .Get "attrlink"}} {{ end }} -

{{ end }} -
- {{ end }} -
- -``` -{{% /input %}} - -Would be rendered as: - -{{% output "figure.html" %}} -```html -
- -
-

Steve Francia

-
-
-``` -{{% /output %}} - -### Single Flexible Example: `vimeo` - -```golang -{{}} -{{}} -``` - -Would load the template found at `/layouts/shortcodes/vimeo.html`: - -{{% input "/layouts/shortcodes/vimeo.html" %}} -```html -{{ if .IsNamedParams }} -
- -
-{{ else }} -
- -
-{{ end }} -``` -{{% /input %}} - -Would be rendered as: - -{{% output "vimeo-iframes.html" %}} -```html -
- -
-
- -
-``` -{{% /output %}} - -### Paired Example: `highlight` - -*Hugo already ships with the `highlight` shortcode* - -{{% input "highlight-example.md" %}} -```markdown -{{}} - - This HTML - -{{}} -``` -{{% /input %}} - -The template for this uses the following code, which is already included in Hugo: - -```golang -{{ .Get 0 | highlight .Inner }} -``` - -And will be rendered as: - -{{% output "syntax-highlighted.html" %}} -```html -
<html>
-    <body> This HTML </body>
-</html>
-
-``` -{{% /output %}} - -{{% note %}} -The preceding template makes use of a Hugo-specific template function called `highlight`, which uses [Pygments][] to add the highlighting code. -{{% /note %}} - -### Simple Single-word Example: `year` - -Let's assume you would like to have a shortcode to be replaced by the current year in your Markdown content files, for a license or copyright statement. Your goal is to be able to call the following shortcode in a content file: - -```markdown -{{}} -``` - -{{% input "/layouts/shortcodes/year.html" %}} -```golang -{{ .Page.Now.Year }} -``` -{{% /input %}} - -More shortcode examples can be found in the [shortcodes directory for spf13.com][] and the [shortcodes directory for the Hugo docs][]. - -[cross-references]: /content-management/cross-references/ +[contentmanagementsection]: /content-management/supported-content-formats/ +[examplegist]: https://gist.github.com/spf13/7896402 +[figureelement]: http://html5doctor.com/the-figure-figcaption-elements/ "An article from HTML5 doctor discussing the fig and figcaption elements." +[`figure` shortcode]: #figure [Instagram]: https://www.instagram.com/ -[page variables]: /variables-and-params/page-variables/ -[partial template]: /templates/partials-templates/ +[pagevariables]: /variables-and-params/page-variables/ +[partialtemplatespage]: /templates/partials-templates/ [Pygments]: http://pygments.org/ -[shortcodes directory for spf13.com]: https://github.com/spf13/spf13.com/tree/master/layouts/shortcodes -[shortcodes directory for the Hugo docs]: https://github.com/spf13/hugo/tree/master/docs/layouts/shortcodes -[source organization]: /project-organization/directory-structure/ +[projectorganizationsection]: /project-organization/directory-structure/ +[shortcode template documentation]: /templates/shortcode-templates/ [Speaker Deck]: https://speakerdeck.com/ +[templatessection]: /templates/ [Vimeo]: https://vimeo.com/ [YouTube Videos]: https://www.youtube.com/ \ No newline at end of file diff --git a/content/content-management/supported-content-formats.md b/content/content-management/supported-content-formats.md new file mode 100644 index 000000000..d9d351af6 --- /dev/null +++ b/content/content-management/supported-content-formats.md @@ -0,0 +1,96 @@ +--- +title: Supported Content Formats +linktitle: +description: Hugo uses the Blackfriday markdown parser for content files but also provides support for additional syntaxes (eg, Asciidoc) via external helpers. +date: 2017-01-10 +publishdate: 2017-01-10 +lastmod: 2017-01-10 +categories: [content management] +tags: [markdown,asciidoc,mmark,content format] +weight: 10 +draft: false +slug: +aliases: [/content/markdown-extras/,/content/supported-formats/,/content/markdown/] +toc: true +notesforauthors: +--- + +## Markdown + +Markdown is the natively supported content format for Hugo and is rendered using the excellent [Blackfriday project][], a markdown parser written in Golang. + +{{% note "Deeply Nested Lists" %}} +Blackfriday has a known issue [(#329)](https://github.com/russross/blackfriday/issues/329) with handling deeply nested lists, but there is a workaround. If you write lists in markdown, use 4 spaces (i.e., tab) rather than 2 to delimit nesting of lists. +{{% /note %}} + +## Additional Content Formats + +Since 0.14, Hugo has defined a new concept called _external helpers_. This means you can write your content using [Asciidoc][] or [reStructuredText][]. If you have files with associated extensions, Hugo will call external commands to generate the content ([see Hugo source code][]). + +For example, for Asciidoc files, Hugo will try to call the **asciidoctor** or **asciidoc** command. This means that you will have to install the associated tool on your machine to be able to use these formats. + +To use these formats, just use the standard extension and the front matter exactly as you would do with natively supported `.md` files. + +{{% note "Performance of External Helpers" %}} +Because these are external commands, generation performance for your preferred content format will heavily depend on the performance of the external tool used. As this feature is still in its infancy, feedback is especially welcome. +{{% /note %}} + +## Extending Markdown + +Hugo provides some convenient methods for extending markdown. + +### Task Lists + +Hugo supports GitHub styled task lists (TODO lists) for the Blackfriday markdown renderer. If you do not want to use this feature, you can disable it in the See [Blackfriday config](/overview/configuration/#configure-blackfriday-rendering) for how to turn it off. + +#### Task List + +```markdown +- [ ] a task list item +- [ ] list syntax required +- [ ] incomplete +- [x] completed +``` + +Renders as: + +- [ ] a task list item +- [ ] list syntax required +- [ ] incomplete +- [x] completed + +And produces this HTML: + +```html + +``` + +### Shortcodes + +If you write in markdown and find yourself frequently embedding your content with raw HTML, Hugo provides built-in [shortcodes][] functionality to act as the intermediary between your content and templating. + +### Code Blocks + +Hugo supports GitHub-flavored markdown's use of triple back ticks, as well as provides a special [`highlight` nested shortcode][] to render syntax highlighting via [Pygments][]. For usage examples and a complete explanation, see the [syntax highlighting documentation][] in [developer tools][]. + +## Markdown Learning Resources + +* [Markdown Tutorial][] +* [Daring Fireball: Markdown, John Gruber][] + +[`highlight` nested shortcode]: /content-management/shortcodes/#highlight +[AsciiDoc]: http://asciidoc.org/ +[Blackfriday project]: https://github.com/russross/blackfriday +[Daring Fireball: Markdown, John Gruber]: https://daringfireball.net/projects/markdown/ +[developer tools]: /developer-tools/ +[Markdown Tutorial]: http://www.markdowntutorial.com/ +[Pygments]: http://pygments.org/ +[reStructuredText]: http://docutils.sourceforge.net/rst.html +[see Hugo source code]: https://github.com/spf13/hugo/blob/77c60a3440806067109347d04eb5368b65ea0fe8/helpers/general.go#L65 +[shortcodes]: /content-management/shortcodes/ +[syntax highlighting documentation]: /developer-tools/syntax-highlighting/ \ No newline at end of file diff --git a/content/content-management/table-of-contents.md b/content/content-management/table-of-contents.md index 522b02f34..c23c3d28b 100644 --- a/content/content-management/table-of-contents.md +++ b/content/content-management/table-of-contents.md @@ -11,5 +11,5 @@ weight: 100 draft: false aliases: [/extras/toc/] toc: false -notes: +notesforauthors: --- \ No newline at end of file diff --git a/content/content-management/taxonomies.md b/content/content-management/taxonomies.md index 87fe5d88c..7195337b5 100644 --- a/content/content-management/taxonomies.md +++ b/content/content-management/taxonomies.md @@ -12,7 +12,7 @@ draft: false slug: aliases: [/taxonomies/overview/,/taxonomies/usage/,/indexes/overview/,/doc/indexes/,/extras/indexes] toc: true -notes: +notesforauthors: --- ## What is a Taxonomy? @@ -25,26 +25,74 @@ Taxonomies were previously known as *indexes* in Hugo before v0.11. ### Taxonomy Definitions -In order to effectively work with taxonomies in Hugo, it's important to first understand the language used to described different facets of usage. +In order to effectively work with taxonomies in Hugo, it's important to first understand the language used to described the concept. * **Taxonomy:** A categorization that can be used to classify content * **Term:** A key within that taxonomy * **Value:** A piece of content assigned to that Term -## Default Values and URLs +### Example Taxonomy: Movie Website -Hugo natively supports taxonomies, which means there are architectural patterns and default values baked into Hugo's core. Luckily, Hugo limits these default behaviors to those that save you time as you develop your site. +Let's assume you are making a website about movies. You may want to include the following taxonomies: + +* Actors +* Directors +* Studios +* Genre +* Year +* Awards + +Then, in each of the movies, you would specify terms for each of these taxonomies (i.e., in the [front matter][] of each of your movie content files). From these terms, Hugo would automatically create pages for each Actor, Director, Studio, Genre, Year, and Award, with each listing all of the Movies that matched that specific Actor, Director, Studio, Genre, Year, and Award. + +### Movie Taxonomy Organization + +To continue with the example of a movie site, the following demonstrates content relationships from the perspective of the taxonomy: + +``` +Actor <- Taxonomy + Bruce Willis <- Term + The Six Sense <- Content + Unbreakable <- Content + Moonrise Kingdom <- Content + Samuel L. Jackson <- Term + Unbreakable <- Content + The Avengers <- Content + xXx <- Content +``` + +From the perspective of the content, the relationships would appear differently, although the data and labels used are the same: + +``` +Unbreakable <- Content + Actors <- Taxonomy + Bruce Willis <- Term + Samuel L. Jackson <- Term + Director <- Taxonomy + M. Night Shyamalan <- Term + ... +Moonrise Kingdom <- Content + Actors <- Taxonomy + Bruce Willis <- Term + Bill Murray <- Term + Director <- Taxonomy + Wes Anderson <- Term + ... +``` + +## Hugo Taxonomy Defaults + +Hugo natively supports taxonomies, which means there are architectural patterns and default values baked into Hugo's core. Luckily, Hugo limits these default behaviors to those that fit the most common use cases in an effort to save you time. ### Default Taxonomies -Hugo ships with *tags* and *categories* as default taxonomies. These taxonomies are common to many website systems (e.g., WordPress, Drupal, Jekyll). Unlike these systems, Hugo makes it trivial to customize the taxonomies you will be using for your website. In addition to *tags* and *categories*, a *series* of posts for a blog is another common example of taxonomies. +Hugo ships with *tags* and *categories* as default taxonomies. These taxonomies are common to many website systems (e.g., WordPress, Drupal, Jekyll). Unlike these systems, Hugo makes it trivial to customize the taxonomies you will be using for your website. -### Pages Generated +### Default Taxonomy Pages and URLs -When taxonomies are used---and [taxonomy templates][] are provided---Hugo will automatically create a taxonomy page listing all of the taxonomy's terms and individual pages for all content associated with the term. For example, a `categories` taxonomy will create the following pages: +When taxonomies are used---and [taxonomy templates][] are provided---Hugo will automatically create both a page listing all the taxonomy's terms and individual pages with lists of content associated with each term. For example, a `categories` taxonomy will create the following pages: -* A single page at `yoursite.com/categories/` that lists all the [terms within the taxonomy][] -* [Individual taxonomy list pages][] (e.g., `/categories/development/`) for each of the terms that shows a listing of all pages marked as part of that taxonomy within any content file's [front matter][] +* A single page at `yoursite.com/categories/` that lists all the [terms within the taxonomy][taxonomy terms templates] +* [Individual taxonomy list pages][taxonomy templates] (e.g., `/categories/development/`) for each of the terms that shows a listing of all pages marked as part of that taxonomy within any content file's [front matter][] ## Configuring Taxonomies @@ -57,7 +105,7 @@ that specifies three taxonomies (the default two, plus `series`). Notice the format is `singular key = "plural value"` for TOML and `singular key: "plural value"` for YAML: -### TOML Configuration +### TOML Taxonomy Configuration ```toml [taxonomies] @@ -66,7 +114,7 @@ Notice the format is `singular key = "plural value"` for TOML and `singular key: series = "series" ``` -### YAML Configuration +### YAML Taxonomy Configuration ```yaml taxonomies: @@ -75,11 +123,21 @@ taxonomies: series: "series" ``` +### Overriding Hugo's Default Taxonomies + +If you do not specify any taxonomies in your [site configuration][] file ***and*** your content already includes front matter with `tags:` or `categories`, Hugo will automatically create taxonomy pages. To override this behavior, set the key-value pairs for both of the default taxonomies to empty strings in your `config` file. + +```toml +[taxonomies] + tag = "" + category = "" +``` + ### Preserving Taxonomy Values -By default, taxonomy names are hyphenated, lower-cased, normalized, and then fixed and title-ized on the archive page. +By default, taxonomy names are hyphenated, lower-cased, normalized, and then fixed and title-ized within. -However, if you want to have a taxonomy value with special characters such as `Gérard Depardieu` instead of `Gerard Depardieu`, you need to set the value for `preserveTaxonomyNames` in your [site configuration](/overview/configuration/) to `true`. Hugo will then preserve special characters in taxonomy values but will still titleize the values for titles and normalize them in URLs. +However, if you want to have a taxonomy value with special characters such as `Gérard Depardieu` instead of `Gerard Depardieu`, you need to set the value for `preserveTaxonomyNames` in your [site configuration][] to `true`. Hugo will then preserve special characters in taxonomy values but will still titleize the values for titles and normalize them in URLs. Note that if you use `preserveTaxonomyNames` and intend to manually construct URLs to the archive pages, you will need to pass the taxonomy values through the [`urlize` template function][]. @@ -93,7 +151,7 @@ Assigning content to a taxonomy is done in the [front matter][]. Simply create a If you would like the ability to quickly generate content files with preconfigured taxonomies or terms, read the docs on [Hugo archetypes](/content-management/archetypes/). {{% /note %}} -### TOML Front Matter Example +### TOML Front Matter with Taxonomies Example ```toml +++ @@ -106,7 +164,7 @@ project_url = "https://github.com/spf13/hugo" +++ ``` -### YAML Front Matter Example +### YAML Front Matter with Taxonomies Example ```yaml +++ @@ -119,7 +177,7 @@ project_url: "https://github.com/spf13/hugo" +++ ``` -### JSON Front Matter Example +### JSON Front Matter with Taxonomies Example ```json { @@ -141,66 +199,51 @@ project_url: "https://github.com/spf13/hugo" } ``` -## Add Content File with Front Matter +## Adding Taxonomic `weight` to Content -See [project organization][]. +A content file can assign weight for each of its associate taxonomies. Taxonomic weight can be used for sorting or ordering content in [taxonomy list templates][] and is declared in the content file's [front matter][]. The convention for declaring taxonomic weight is `taxonomyname_weight`. -## Example Taxonomy +The following TOML and YAML examples show a piece of content that has a weight of 22, which can be used for ordering purposes when rendering the pages assigned to the "a", "b" and "c" values of the `tags` taxonomy. It has also been assigned the weight of 44 when rendering the "d" category page. -For example, if I was writing about movies, I may want the following -taxonomies: +### TOML Taxonomic `weight` Example -* Actors -* Directors -* Studios -* Genre -* Year -* Awards - -I would then specify in each movie’s front matter the specific terms for each of those taxonomies. Hugo would then automatically create pages for each Actor, Director, Studio, Genre, Year and Award listing all of the Movies that matched that specific Actor, Director, etc. - -### Taxonomy Organization - -Let’s use an example to demonstrate the different labels in action. -From the perspective of the taxonomy, it could be visualized as: - -``` -Actor <- Taxonomy - Bruce Willis <- Term - The Six Sense <- Content - Unbreakable <- Content - Moonrise Kingdom <- Content - Samuel L. Jackson <- Term - Unbreakable <- Content - The Avengers <- Content - xXx <- Content +```toml ++++ +title = "foo" +tags = [ "a", "b", "c" ] +tags_weight = 22 +categories = ["d"] +categories_weight = 44 ++++ ``` -From the perspective of the content, it would appear differently, although the data and labels used are the same: +### YAML Taxonomic `weight` Example +```yaml ++++ +title: foo +tags: [ "a", "b", "c" ] +tags_weight: 22 +categories: ["d"] +categories_weight: 44 ++++ ``` -Unbreakable <- Content - Actors <- Taxonomy - Bruce Willis <- Term - Samuel L. Jackson <- Term - Director <- Taxonomy - M. Night Shyamalan <- Term - ... -Moonrise Kingdom <- Content - Actors <- Taxonomy - Bruce Willis <- Term - Bill Murray <- Term - Director <- Taxonomy - Wes Anderson <- Term - ... -``` + +By using taxonomic weight, the same piece of content can appear in different positions in different taxonomies. + +{{% note "Limits to Ordering Taxonomies" %}} +Currently taxonomies only support the default ordering of content which is weight -> date. For more information, see the documentation on [taxonomy templates](/templates/taxonomy-templates/). +{{% /note %}} + [`urlize` template function]: /functions/urlize/ [content section]: /content-section/ [content type]: /content-type/ +[documentation on archetypes]: /content-management/archetypes/ [front matter]: /content-management/front-matter/ -[Individual taxonomy list pages]: /templates/taxonomy-templates/#taxonomy-templates [project organization]: /project-organization/ +[site configuration]: /project-organization/configuration/ +[taxonomy list templates]: /templates/taxonomy-templates/#taxonomy-page-templates [taxonomy templates]: /templates/taxonomy-templates/ -[terms within the taxonomy]: /templates/taxonomy-templates/#terms-templates +[taxonomy terms templates]: /templates/taxonomy-templates/#taxonomy-terms-templates "See how to order terms associated with taxonomy via taxonomy templates" [website configuration]: /project-organization/configuration/ \ No newline at end of file diff --git a/content/content-management/url-management.md b/content/content-management/url-management.md index e149a5525..688e06213 100644 --- a/content/content-management/url-management.md +++ b/content/content-management/url-management.md @@ -5,21 +5,108 @@ description: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -tags: [aliases,redirects,permalinks,url management,urls] +tags: [aliases,redirects,permalinks,urls] categories: [content management] weight: 90 draft: false aliases: [/extras/permalinks/,/extras/aliases/,/content-management/permalinks-and-redirects/,/extras/urls/] toc: true -notes: +notesforauthors: --- +## Base URL + ## URLs ## Permalinks -## Redirects/Aliases +By default, content is laid out into the target `publishdir` (public) +namespace matching its layout within the `contentdir` hierarchy. The `permalinks` [site configuration][] option allows you to adjust this on a per-section basis. This will change where the files are written to and will change the page's internal "canonical" location, such that template references to `.RelPermalink` will honor the adjustments made as a result of the mappings in this option. + +For example, if one of your [sections][] is called `post` and you want to adjust the canonical path to be hierarchical based on the year and month, you could set up the following configurations in YAML and TOML, respectively. + +### YAML Permalinks Configuration Example + +```yaml +permalinks: + post: /:year/:month/:title/ +``` + +### TOML Permalinks Configuration Example + +```toml +[permalinks] + post = "/:year/:month/:title/" +``` + +Only the content under `post/` will have the new URL structure. For example, the file `content/post/sample-entry` with `date: 2013-11-18T19:20:00-05:00` in its front matter will render to `public/2013/11/sample-entry/index.html` at build time and therefore be reachable at `http://yoursite.example.com/2013/11/sample-entry/`. + +### Permalink Configuration Values + +The following is a list of values that can be used in a `permalink` definition in your site `config` file. All references to time are dependent on the content's date. + +* `:year` = the 4-digit year +* `:month` = the 2-digit month +* `:monthname` = the name of the month +* `:day` = the 2-digit day +* `:weekday` = the 1-digit day of the week (Sunday = 0) +* `:weekdayname` = the name of the day of the week +* `:yearday` = the 1- to 3-digit day of the year +* `:section` = the content's section +* `:title` = the content's title +* `:slug` = the content's slug (or title if no slug) +* `:filename` = the content's filename (without extension) + +## Aliases + +## Pretty URLs + +By default, Hugo renders your content with "pretty" URLs. For example, +content created at `/content/extras/urls.md` will be rendered at +`/public/extras/urls/index.html` according to Hugo's default behavior after running the `hugo` CLI build command. No non-standard server-side +configuration is required for these pretty URLs to work. + +## Ugly URLs + +If you would like to have what we call "ugly URLs" (e.g., http://example.com/extras/urls.html), set `uglyurls = true` or `uglyurls: true` to your site-wide `config.toml` or `config.yaml`, respectively. You can also use the `--uglyURLs=true` [flag from the command line][]. + +If you want a specific piece of content to have an exact URL, you can specify this in the front matter under the `url` key. See [Content Organization][] for more details. ## Canonicalization -## Relative URLs \ No newline at end of file +By default, all relative URLs encountered in the input are left unmodified, e.g. `/css/foo.css` would stay as `/css/foo.css`, i.e. `canonifyURLs` defaults to `false`. + +By setting `canonifyURLs` to `true`, all relative URLs would instead be *canonicalized* using `baseURL`. For example, assuming you have `baseURL = http://yoursite.example.com/` defined in the site-wide `config.toml`, the relative URL `/css/foo.css` would be turned into the absolute URL `http://yoursite.example.com/css/foo.css`. + +Benefits of canonicalization include fixing all URLs to be absolute, which may aid with some parsing tasks. Note though that all real browsers handle this client-side without issues. + +Benefits of non-canonicalization include being able to have resource inclusion be scheme-relative, so that http vs https can be decided based on how this page was retrieved. + +{{% note "`canonifyURLs` default change" %}} +In the May 2014 release of Hugo v0.11, the default value of `canonifyURLs` was switched from `true` to `false`, which we think is the better default and should continue to be the case going forward. So, please verify and adjust your website accordingly if you are upgrading from v0.10 or older versions. +{{% /note %}} + +To find out the current value of `canonifyURLs` for your website, you may use the handy `hugo config` command added in v0.13. + +```bash +hugo config | grep -i canon +``` + +Or, if you are on Windows and do not have `grep` installed: + +``` +hugo config | FINDSTR /I canon +``` + +## Relative URLs + +By default, all relative URLs are left unchanged by Hugo, which can be problematic when you want to make your site browsable from a local file system. + +Setting `relativeURLs` to `true` in the site configuration will cause Hugo to rewrite all relative URLs to be relative to the current content. + +For example, if the `/post/first/` page contained a link with a relative URL of `/about/`, Hugo would rewrite that URL to `../../about/`. + +[Content Organization]: /content-management/content-organization/ +[flag from the command line]: /developer-tools/hugo-command-line-reference/#flags +[sections]: /content-management/content-sections/ +[site configuration]: /project-organization/configuration/ \ No newline at end of file diff --git a/content/contribute-to-hugo/_index.md b/content/contribute-to-hugo/_index.md index 6f9d94610..2bf52cdf9 100644 --- a/content/contribute-to-hugo/_index.md +++ b/content/contribute-to-hugo/_index.md @@ -1,17 +1,22 @@ --- -title: Contribute to Hugo -linktitle: Contribute to Hugo +title: Overview +linktitle: Overview description: Contribute to Hugo development and documentation. date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -tags: [contribute,tutorials] -author: -authorprofileurl: +categories: [contribute to hugo] +tags: [] weight: 01 draft: false slug: aliases: [/tutorials/how-to-contribute-to-hugo/] toc: false -notes: ---- \ No newline at end of file +notesforauthors: +--- + +Hugo is and always will be open source. In addition to contributing to Hugo development and documentation, Hugo also has a Gitter channel ***devoted solely to discussions around development***. + +The formal contribution guidelines for Hugo are [detailed in a `CONTRIBUTING.md`][contributionguidelines] in the Hugo source repository on GitHub. + +[contributionguidelines]: https://github.com/spf13/hugo/blob/master/CONTRIBUTING.md \ No newline at end of file diff --git a/content/contribute-to-hugo/add-your-site-to-the-showcase.md b/content/contribute-to-hugo/add-your-site-to-the-showcase.md index 42545611d..054157a38 100644 --- a/content/contribute-to-hugo/add-your-site-to-the-showcase.md +++ b/content/contribute-to-hugo/add-your-site-to-the-showcase.md @@ -7,57 +7,73 @@ publishdate: 2017-02-01 lastmod: 2017-02-01 categories: [contribute to hugo] tags: [dev,showcase] -weight: +weight: 30 draft: false -slug: aliases: [] -toc: false -notes: +toc: true +notesforauthors: --- -## Showcase Additions -You got your new website running and it's powered by Hugo? Great. You can add your website with a few steps to the [showcase](/showcase/). +If you've built a site with Hugo and would like to have it featured on the official Hugo site, you can add your website with a few steps to the [Site Showcase][]. -First, make sure that you created a [fork](https://help.github.com/articles/fork-a-repo/) of Hugo on Github and cloned your fork on your local computer. Next, create a separate branch for your additions: +## 1. Create Your Fork -``` -# You can choose a different descriptive branch name if you like +First, make sure that you created a [fork](https://help.github.com/articles/fork-a-repo/) of Hugo on Github and cloned your fork on your local computer. Next, create a separate branch for your additions. Note that you can choose a different descriptive branch name if you like: + +```git git checkout -b showcase-addition ``` +## 2. Add Your Showcase File via the `showcase` Archetype + Let's create a new document that contains some metadata of your homepage. Replace `example` in the following examples with something unique like the name of your website. Inside the terminal enter the following commands: -``` +```bash cd docs -hugo new showcase/example.md +hugo new showcase/my-hugo-site-name.md ``` -You should find the new file at `content/showcase/example.md`. Open it in an editor. The file should contain a frontmatter with predefined variables like below: +You should find the new file at `content/showcase/your-site-name.md`. Open the file in your preferred text editor. The file should contain front matter with predefined variables like below: -``` +```yaml --- -date: 2016-02-12T21:01:18+01:00 description: "" +lastmod: "" license: "" licenseLink: "" -sitelink: http://spf13.com/ -sourceLink: https://github.com/spf13/spf13.com -tags: -- personal -- blog -thumbnail: /images/spf13-tn.jpg -title: example +sitelink: "" +sourcelink: "" +categories: [showcase] +tags: [] +image: "yourimage.jpg" +toc: false +title: my hugo site name +notesforauthors: "For the image, only include the file name *without* a directory/path, which is taken care of in the templating. See the showcase contribution page at gohugo.io/contribute-to-hugo/add-your-site-to-the-showcase/ for more details. As always, feel free to delete `notesforauthors` or modify for anyone in the future who may edit the content in this file." --- ``` -Add at least values for `sitelink`, `title`, `description` and a path for `thumbnail`. +Add at least values for `sitelink`, `title`, `description`, and a path for `thumbnail`. -Furthermore, we need to create the thumbnail of your website. **It's important that the thumbnail has the required dimensions of 600px by 400px.** Give your thumbnail a name like `example-tn.png`. Save it under `docs/static/img/`. +{{% note "Notes for Authors" %}} +You may notice a `notesforauthors` key-value in your new content file for the showcase. These notes are not required, but rather have been added to make it easier to fill out the required metadata without needing to refer to the Hugo docs website. You can delete this metadata before submitting a pull request. +{{% /note %}} -Check a last time that everything works as expected. Start Hugo's built-in server in order to inspect your local copy of the showcase in the browser: +## 3. Add an Image +We need to create the thumbnail of your website. Give your thumbnail a name like `my-hugo-site-name.png`. Save it under [`docs/static/images/showcase/`][]. + +{{% warning "Thumbnail Size" %}} +It's important that the thumbnail has the required dimensions of 600px by 400px or the site will not render appropriately. Be sure to optimize your image as a matter of best practice. +{{% /warning %}} + +Check one last time that everything looks complete. Start Hugo's built-in server in order to inspect your local copy of the showcase in the browser. + +```bash hugo server +``` + +## 4. Commit and Submit a Pull Request If everything looks fine, we are ready to commit your additions. For the sake of best practices, please make sure that your commit follows our [code contribution guideline][]. @@ -67,8 +83,13 @@ git commit -m "docs: Add example.com to the showcase" ``` {{% /input %}} -Last but not least, we're ready to create a [pull request](https://github.com/spf13/hugo/compare). +Last but not least, we're ready to create a [pull request]. -Don't forget to accept the contributor license agreement. Click on the yellow badge in the automatically added comment in the pull request. +### Contributor License Agreement -[code contribution guideline]: https://github.com/spf13/hugo#code-contribution-guideline \ No newline at end of file +Don't forget to accept the contributor license agreement. Click on the yellow badge in the automatically added comment in the pull request to accept. + +[code contribution guideline]: https://github.com/spf13/hugo#code-contribution-guideline +[pull request]: https://github.com/spf13/hugo/compare +[Site Showcase]: /showcase/ +[`docs/static/images/showcase/`]: https://github.com/spf13/hugo/tree/master/docs/static/images/showcase/ \ No newline at end of file diff --git a/content/contribute-to-hugo/contribute-to-hugo-development.md b/content/contribute-to-hugo/contribute-to-hugo-development.md index cb0e55be2..f651239f5 100644 --- a/content/contribute-to-hugo/contribute-to-hugo-development.md +++ b/content/contribute-to-hugo/contribute-to-hugo-development.md @@ -1,19 +1,347 @@ --- title: Contribute to Hugo Development linktitle: Contribute to Hugo Development -description: Hugo relies heavily on the contributions of the open source community. You don't need to be a Golang guru to contribute to the project's development. +description: Hugo relies heavily on contributions from the open source community. You don't need to be a Golang guru to contribute to the project's development. date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 categories: [contribute to hugo] tags: [dev,open source] -weight: +weight: 10 draft: false -slug: -aliases: -notes: +aliases: [] +toc: true +notesforauthors: --- -## Submitting a Pull Request +## Introduction -## Gitter Channel +Hugo is an open source project and lives by the work of its [contributors](https://github.com/spf13/hugo/graphs/contributors). Help to make Hugo even more awesome. There are plenty of [open issues](https://github.com/spf13/hugo/issues) on GitHub and we need your help. + +This tutorial is intended for people who are new to Git, GitHub or open source projects in general. It should help to overcome most of the barriers that newcomers encounter. It describes step by step what you need to do. + +For any kind of questions please take a look at our [forum](https://discuss.gohugo.io/). + +## Install Go + +The installation of Go should take only a few minutes. [Download](https://golang.org/dl/) the latest stable version of Go and follow the official [installation guide](https://golang.org/doc/install). + +Let's confirm the correct installation of Go. Open a terminal (or command line under Windows). Execute `go version` and you should see the version number of your Go installation. Next, make sure that you setup the `GOPATH` as described in the installation guide. + +You can print the `GOPATH` with `echo $GOPATH`. You should see a non-empty string containing a valid path to your Go workspace. + +### GVM as alternative + +More experienced users can use the [Go Version Manager](https://github.com/moovweb/gvm), or GVM for short. It allows you to switch between different Go versions *on the same machine*. Probably you don't need this feature. But you can easily upgrade to a new released Go version with a few commands. + +This is handy if you follow the developement of Hugo over a longer period of time. Future versions of Hugo will usually be compiled with the latest version of Go. Sooner or later you have to upgrade if you want to keep up. + + +## Create an account on GitHub + +If you're going to contribute code, you'll need to have an account on GitHub. Go to [www.github.com/join](https://github.com/join) and set up a personal account. + + +## Install Git on your system + +You will need to install Git. This tutorial assumes basic knowledge about Git. Refer to this excellent [Git book](https://git-scm.com/) if you are not sure where to begin. The used terminology will be explained with annotations. + +Git is a [version control system](https://en.wikipedia.org/wiki/Version_control) to track the changes of source code. Hugo depends on smaller third-party packages that are used to extend the functionality. We use them because we don't want to reinvent the wheel. + +Go ships with a sub-command called `get` that will download these packages for us when we setup our working environment. The source code of the packages is tracked with Git. `get` will interact with the Git servers of the package hosters in order to fetch all dependencies. + +Move back to the terminal and check if Git is already installed. Type in `git version` and press enter. You can skip the rest of this section if the command returned a version number. Otherwise [download](https://git-scm.com/downloads) the lastest version of Git and follow this [installation guide](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git). + +Finally, check again with `git version` if Git was installed successfully. + +### Git Graphical Front Ends + +There are several [GUI clients](https://git-scm.com/downloads/guis) that help you to operate Git. Not all are available for all operating systems and maybe differ in their usage. Thus, so we will use the command line since the commands are everywhere the same. + +### Install Hub on your system (optional) + +Hub is a great tool for working with GitHub. The main site for it is [www.hub.github.com](https://hub.github.com/). Feel free to install this little Git wrapper. + +On a Mac, install Hub using brew: + +```sh +brew install hub +``` + +Create an alias (in Bash) so that typing git actually runs Hub: + +```sh +echo "alias git='hub'" >> ~/.bash_profile +``` + +Confirm the installation: + +```sh +git version 2.6.3 +hub version 2.2.2 +``` + + +## Set up your working copy + +The working copy is set up locally on your computer. It's what you'll edit, compile, and end up pushing back to GitHub. The main steps are cloning the repository and creating your fork as a remote. + +### Clone the repository + +We assume that you've set up your `GOPATH` (see the section above if you're unsure about this). You should now copy the Hugo repository down to your computer. You'll hear this called "clone the repo". GitHub's [help pages](https://help.github.com/articles/cloning-a-repository/) give us a short explanation: + +> When you create a repository on GitHub, it exists as a remote repository. You can create a local clone of your repository on your computer and sync between the two locations. + +We're going to clone the [master Hugo repository](https://github.com/spf13/hugo). That seems counter-intuitive, since you won't have commit rights on it. But it's required for the Go workflow. You'll work on a copy of the master and push your changes to your own repository on GitHub. + +So, let's clone that master repository: + +```sh +go get -v -u github.com/spf13/hugo +``` + +### Fork the repository + +If you're not fimiliar with this term, GitHub's [help pages](https://help.github.com/articles/fork-a-repo/) provide again a simple explanation: + +> A fork is a copy of a repository. Forking a repository allows you to freely experiment with changes without affecting the original project. + +#### Fork by hand + +Open the [Hugo repository](https://github.com/spf13/hugo) on Github and click on the "Fork" button in the top right. + +![Fork button](/img/tutorials/how-to-contribute-to-hugo/forking-a-repository.png) + +Now open your fork repository on GitHub and copy the remote url of your fork. You can choose between HTTPS and SSH as protocol that Git should use for the following operations. HTTPS works always [if you're not sure](https://help.github.com/articles/which-remote-url-should-i-use/). + +![Copy remote url](/img/tutorials/how-to-contribute-to-hugo/copy-remote-url.png) + +Switch back to the terminal and move into the directory of the cloned master repository from the last step. + +```sh +cd $GOPATH/src/github.com/spf13/hugo +``` + +Now Git needs to know that our fork exists by adding the copied remote url: + +```sh +git remote add +``` + +#### Fork with Hub + +Alternatively, you can use the Git wrapper Hub. Hub makes forking a repository easy: + +```sh +git fork +``` + +That command will log in to GitHub using your account, create a fork of the repository that you're currently working in, and add it as a remote to your working copy. + +#### Trust, but verify + +Let's check if everything went right by listing all known remotes: + +```sh +git remote -v +``` + +The output should look similar: + +```sh +digitalcraftsman git@github.com:digitalcraftsman/hugo.git (fetch) +digitalcraftsman git@github.com:digitalcraftsman/hugo.git (push) +origin https://github.com/spf13/hugo (fetch) +origin https://github.com/spf13/hugo (push) +``` + + +## The contribution workflow + +### Create a new branch + +You should never develop against the "master" branch. The development team will not accept a pull request against that branch. Instead, create a descriptive named branch and work on it. + +First, you should always pull the latest changes from the master repository: + +```sh +git checkout master +git pull +``` + +Now we can create a new branch for your additions: + +```sh +git checkout -b +``` + +You can check on which branch your are with `git branch`. You should see a list of all local branches. The current branch is indicated with a little asterisk. + +### Contributing to the documentation + +Perhaps you want to start contributing to the docs. Then you can ignore most of the following steps. You can find the documentation within the cloned repository in the subfolder `docs`. Change the directory with `cd docs`. [Install the latest release][]. Or read on and build Hugo from source. + +You can start Hugo's built-in server via `hugo server`. Browse the documentation by entering [http://localhost:1313](http://localhost:1313) in the address bar of your browser. The server automatically updates the page if you change its content. + +### Building Hugo + +While making changes in the codebase it's a good idea to build the binary to test them: + +```sh +go build -o hugo main.go +``` + +### Testing + +Sometimes changes on the codebase can cause unintended side effects. Or they don't work as expected. Most functions have their own test cases. You can find them in files ending with `_test.go`. + +Make sure the commands `go test ./...` passes, and `go build` completes. + +### Formatting + +The Go code styleguide maybe is opiniated but it ensures that the codebase looks the same, regardless who wrote the code. Go comes with its own formatting tool. Let's apply the styleguide to our addtions: + +```sh +go fmt ./... +``` + +Once you made your additions commit your changes. Make sure that you follow our [code contribution guidelines](https://github.com/spf13/hugo/blob/master/CONTRIBUTING.md): + +```sh +# Add all changed files +git add --all +git commit --message "YOUR COMMIT MESSAGE" +``` + +The commit message should describe what the commit does (e.g. add feature XYZ), not how it is done. + +### Modify commits + +You noticed some commit messages don't fulfill the code contribution guidelines or you just forget something to add some files? No problem. Git provides the necessary tools to fix such problems. The next two methods cover all common cases. + +If you are unsure what a command does leave the commit as it is. We can fix your commits later in the pull request. + +#### Modifying the last commit + +Let's say you want to modify the last commit message. Run the following command and replace the current message: + +```sh +git commit --amend -m"YOUR NEW COMMIT MESSAGE" +``` + +Take a look at the commit log to see the change: + +```sh +git log +# Exit with q +``` + +After making the last commit you may forgot something. There is no need to create a new commit. Just add the latest changes and merge them into the intended commit: + +```sh +git add --all +git commit --amend +``` + +#### Modifying multiple commits + +{{% warning "Be Careful Modifying Multiple Commits"%}} +Modifications such as those described in this section can have serious unintended consequences. Skip this section if you're not sure! +{{% /warning %}} + +This is a bit more advanced. Git allows you to [rebase](https://git-scm.com/docs/git-rebase) commits interactively. In other words: it allows you to rewrite the commit history. + +```sh +git rebase --interactive @~6 +``` + +The `6` at the end of the command represents the number of commits that should be modified. An editor should open and present a list of last six commit messages: + +```sh +pick 80d02a1 tpl: Add hasPrefix to the template funcs' "smoke test" +pick aaee038 tpl: Sort the smoke tests +pick f0dbf2c tpl: Add the other test case for hasPrefix +pick 911c35b Add "How to contribute to Hugo" tutorial +pick 33c8973 Begin workflow +pick 3502f2e Refactoring and typo fixes +``` + +In the case above we should merge the last to commits in the commit of this tutorial (`Add "How to contribute to Hugo" tutorial`). You can "squash" commits, i.e. merge two or more commits into a single one. + +All operations are written before the commit message. Replace "pick" with an operation. In this case `squash` or `s` for short: + +```sh +pick 80d02a1 tpl: Add hasPrefix to the template funcs' "smoke test" +pick aaee038 tpl: Sort the smoke tests +pick f0dbf2c tpl: Add the other test case for hasPrefix +pick 911c35b Add "How to contribute to Hugo" tutorial +squash 33c8973 Begin workflow +squash 3502f2e Refactoring and typo fixes +``` + +We also want to rewrite the commits message of the third last commit. We forgot "docs:" as prefix according to the code contribution guidelines. The operation to rewrite a commit is called `reword` (or `r` as shortcut). + +You should end up with a similar setup: + +```sh +pick 80d02a1 tpl: Add hasPrefix to the template funcs' "smoke test" +pick aaee038 tpl: Sort the smoke tests +pick f0dbf2c tpl: Add the other test case for hasPrefix +reword 911c35b Add "How to contribute to Hugo" tutorial +squash 33c8973 Begin workflow +squash 3502f2e Refactoring and typo fixes +``` + +Close the editor. It should open again with a new tab. A text is instructing you to define a new commit message for the last two commits that should be merged (aka "squashed"). Save the file (CTRL+S) and close the editor again. + +A last time a new tab opens. Enter a new commit message and save again. Your terminal should contain a status message. Hopefully this one: + +```sh +Successfully rebased and updated refs/heads/. +``` + +Check the commit log if everything looks as expected. Should an error occur you can abort this rebase with `git rebase --abort`. + +### Push commits + +To push our commits to the fork on GitHub we need to speficy a destination. A destination is defined by the remote and a branch name. Earlier, the defined that the remote url of our fork is the same as our GitHub handle, in my case `digitalcraftsman`. The branch should have the same as our local one. This makes it easy to identify corresponding branches. + +```sh +git push --set-upstream +``` + +Now Git knows the destination. Next time when you to push commits you just need to enter `git push`. + +If you modified your commit history in the last step GitHub will reject your try to push. This is a safety-feature because the commit history isn't the same and new commits can't be appended as usual. You can enforce this push explicitly with `git push --force`. + +## Open a pull request + +We made a lot of progress. Good work. In this step we finally open a pull request to submit our additions. Open the [Hugo master repository](https://github.com/spf13/hugo/) on GitHub in your browser. + +You should find a green button labeld with "New pull request". But GitHub is clever and probably suggests you a pull request like in the beige box below: + +Open a pull request + +The new page summaries the most important information of your pull request. Scroll down and you find the additions of all your commits. Make sure everything looks as expected and click on "Create pull request". + +### Accept the contributor license agreement + +Last but not least you should accept the contributor license agreement (CLA). A new comment should be added automatically to your pull request. Click on the yellow badge, accept the agreement and authenticate yourself with your GitHub account. It just takes a few clicks and only needs to be done once. + +Accept the CLA + +### Automatic builds + +We use the [Travis CI loop](https://travis-ci.org/spf13/hugo) (Linux and OS X) and [AppVeyor](https://ci.appveyor.com/project/spf13/hugo/branch/master) (Windows) to compile Hugo with your additions. This should ensure that everything works as expected before merging your pull request. This in most cases only relevant if you made changes to the codebase of Hugo. + +Automic builds and their status + +Above you can see that Travis wasn't able to compile the changes in this pull request. Click on "Details" and try to investigate why the build failed. But it doesn't have to be your fault. Mostly, the `master` branch that we used as foundation for your pull request should build without problems. + +If you have questions leave a comment in the pull request. We are willing to assist you. + +## Where to start? + +Thank you for reading this tutorial. Hopefully, we see you again on GitHub. There are plenty of [open issues](https://github.com/spf13/hugo/issues) on GitHub. Feel free to open an issue if you think you found a bug or you have a new idea to improve Hugo. We are happy to hear from you. + +[Install the latest release]: /getting-started/ diff --git a/content/contribute-to-hugo/contribute-to-the-hugo-docs.md b/content/contribute-to-hugo/contribute-to-the-hugo-docs.md index 7577faca4..3ecd9b12f 100644 --- a/content/contribute-to-hugo/contribute-to-the-hugo-docs.md +++ b/content/contribute-to-hugo/contribute-to-the-hugo-docs.md @@ -7,19 +7,19 @@ publishdate: 2017-02-01 lastmod: 2017-02-01 categories: [contribute to hugo] tags: [docs,documentation,community] -weight: +weight: 20 draft: false slug: aliases: [] toc: true -notes: +notesforauthors: --- Documentation is an integral part of any open source project. The Hugo docs were completely reworked in anticipation of the release of v0.19, but there is always room for improvement. ## Edit Locally and Submit a Pull Request -## How Content is Ordered in Hugo +## How Content is Ordered in the Hugo Docs ## Creating New Files from Archetypes diff --git a/content/developer-tools/_index.md b/content/developer-tools/_index.md index d2a80b1a6..344c4b04e 100644 --- a/content/developer-tools/_index.md +++ b/content/developer-tools/_index.md @@ -1,6 +1,6 @@ --- -title: Developer Tools -linktitle: Developer Tools +title: Overview +linktitle: Overview description: Description for the developer tools section. date: 2016-11-01 publishdate: 2016-11-01 @@ -12,5 +12,5 @@ draft: false slug: aliases: [] toc: -notes: +notesforauthors: --- \ No newline at end of file diff --git a/content/developer-tools/hugo-command-line-reference.md b/content/developer-tools/hugo-command-line-reference.md index 724006488..33e49c204 100644 --- a/content/developer-tools/hugo-command-line-reference.md +++ b/content/developer-tools/hugo-command-line-reference.md @@ -12,7 +12,7 @@ draft: false slug: aliases: [] toc: true -notes: +notesforauthors: --- ## Generators diff --git a/content/developer-tools/migrate-to-hugo.md b/content/developer-tools/migrate-to-hugo.md index ae0855c3e..640c338c5 100644 --- a/content/developer-tools/migrate-to-hugo.md +++ b/content/developer-tools/migrate-to-hugo.md @@ -11,7 +11,7 @@ draft: false slug: aliases: [/developer-tools/migrations/,/developer-tools/migrated/] toc: -notes: +notesforauthors: --- If you are using a different static site generator or CMS (e.g, Jeklly or Wordpress, respectively), the following tools were developed by the Hugo community to facilitate automated exports from your current system to a Hugo-friendly format. diff --git a/content/developer-tools/syntax-highlighting.md b/content/developer-tools/syntax-highlighting.md index 337c4cd5c..5f67a2b4d 100644 --- a/content/developer-tools/syntax-highlighting.md +++ b/content/developer-tools/syntax-highlighting.md @@ -12,7 +12,7 @@ draft: false slug: aliases: [/extras/highlighting/] toc: true -notes: +notesforauthors: --- ## Code Blocks in Markdown diff --git a/content/getting-started/_index.md b/content/getting-started/_index.md index 82c173c7f..420d47315 100644 --- a/content/getting-started/_index.md +++ b/content/getting-started/_index.md @@ -1,6 +1,6 @@ --- -title: "Getting Started" -linktitle: "Getting Started" +title: Overview +linktitle: Overview description: Quick start and guides for installing Hugo on your preferred operating system. date: 2017-02-01 publishdate: 2017-02-01 @@ -12,7 +12,11 @@ draft: false slug: aliases: [] toc: false -notes: +notesforauthors: --- -The Hugo docs have been completely reformatted to include \ No newline at end of file +The Hugo docs were completely reworked from the ground up in anticipation of v0.19. Included in the reboot was the concept of using a [single example site][] for code blocks and demo content in the documentation. Once you finish the [quick start][], be sure to read up on how [the Hugo docs have been optimized for rapid learning][]. + +[quick start]: /getting-started/quick-start/ +[single example site]: /getting-started/using-the-hugo-docs/ +[the Hugo docs have been optimized for rapid learning]: /getting-started/using-the-hugo-docs/ \ No newline at end of file diff --git a/content/getting-started/using-hugo.md b/content/getting-started/basic-usage.md similarity index 65% rename from content/getting-started/using-hugo.md rename to content/getting-started/basic-usage.md index 81e5761fb..c9859b323 100644 --- a/content/getting-started/using-hugo.md +++ b/content/getting-started/basic-usage.md @@ -1,18 +1,18 @@ --- -title: Using Hugo -linktitle: Using Hugo +title: Basic Usage +linktitle: Basic Usage description: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 categories: [getting started] -tags: [usage,livereload] -weight: +tags: [usage,livereload,command line] +weight: 70 draft: false slug: aliases: [/overview/usage/,/extras/livereload/] toc: false -notes: +notesforauthors: --- ## LiveReload \ No newline at end of file diff --git a/content/project-organization/configuration.md b/content/getting-started/configuration.md similarity index 97% rename from content/project-organization/configuration.md rename to content/getting-started/configuration.md index 8db26c2c0..c20fb4b6e 100644 --- a/content/project-organization/configuration.md +++ b/content/getting-started/configuration.md @@ -1,18 +1,17 @@ --- title: Configuration linktitle: -description: Your configuration can include precise directions to Hugo regarding how it should render your website. +description: Hugo is designed to make enough assumptions that often configuration is unnecessary. However, a site config file can include precise directions to Hugo on how you want to render your website. date: 2017-01-02 publishdate: 2017-01-02 lastmod: 2017-01-02 -tags: [configuration,fundamentals,toml,yaml,json] categories: [project organization] -weight: 10 +tags: [configuration,fundamentals,toml,yaml,json] +weight: 90 draft: false -slug: aliases: [/overview/source-directory/] toc: true -notes: +notesforauthors: --- The [directory structure][] of a Hugo website—or more precisely, the source organization of files containing the website's content and templates—provides most of the configuration information that Hugo needs in order to statically generate a finished website. @@ -331,6 +330,6 @@ The above is a list of regular expressions. Note that the backslash (`\`) charac [`.Site.Params`]: /variables-and-params/ [directory structure]: /project-organization/directory-structure [JSON Spec]: /documents/ecma-404-json-spec.pdf -[templates]: /templates +[templates]: /templates/ [TOML Spec]: https://github.com/toml-lang/toml [YAML Spec]: http://yaml.org/spec/ \ No newline at end of file diff --git a/content/project-organization/directory-structure.md b/content/getting-started/directory-structure.md similarity index 76% rename from content/project-organization/directory-structure.md rename to content/getting-started/directory-structure.md index 63d98c61a..760e63278 100644 --- a/content/project-organization/directory-structure.md +++ b/content/getting-started/directory-structure.md @@ -1,15 +1,14 @@ --- title: Directory Structure -linktitle: +linktitle: Directory Structure description: Explanation of the directory structure in a typical Hugo project and how Hugo traverses the file system therein. date: 2017-01-02 publishdate: 2017-01-02 lastmod: 2017-01-02 categories: [project organization] tags: [source, organization, directories,fundamentals] -weight: 10 +weight: 80 draft: false -slug: -aliases: -notes: +aliases: [/overview/source-directory/] +notesforauthors: --- diff --git a/content/getting-started/download-hugo.md b/content/getting-started/download-hugo.md deleted file mode 100644 index 7e290d330..000000000 --- a/content/getting-started/download-hugo.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: Download Hugo -linktitle: Download Hugo -description: -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 -categories: [getting started] -tags: [] -weight: -draft: false -slug: -aliases: [] -toc: false -notes: ---- - diff --git a/content/getting-started/install-from-source.md b/content/getting-started/install-from-source.md index 659dfc326..27e22f9f1 100644 --- a/content/getting-started/install-from-source.md +++ b/content/getting-started/install-from-source.md @@ -6,11 +6,11 @@ date: 2016-11-01 publishdate: 2016-11-01 lastmod: 2016-11-01 categories: [getting started] -tags: [] -weight: +tags: [install] +weight: 30 draft: false slug: aliases: [] toc: false -notes: +notesforauthors: --- \ No newline at end of file diff --git a/content/getting-started/install-on-linux.md b/content/getting-started/install-on-linux.md index 9bcf47db4..5ccdd0cb0 100644 --- a/content/getting-started/install-on-linux.md +++ b/content/getting-started/install-on-linux.md @@ -5,11 +5,11 @@ description: date: 2016-11-01 publishdate: 2016-11-01 lastmod: 2016-11-01 -weight: +weight: 40 categories: [getting started] -tags: [] +tags: [install,linux] draft: false aliases: [] toc: false -notes: +notesforauthors: --- \ No newline at end of file diff --git a/content/getting-started/install-on-mac.md b/content/getting-started/install-on-mac.md index 523fd5138..c82b12d1c 100644 --- a/content/getting-started/install-on-mac.md +++ b/content/getting-started/install-on-mac.md @@ -6,10 +6,10 @@ date: 2016-11-01 publishdate: 2016-11-01 lastmod: 2016-11-01 categories: [getting started] -tags: [] -weight: +tags: [install,mac,osx] +weight: 50 draft: false aliases: [] toc: false -notes: +notesforauthors: --- \ No newline at end of file diff --git a/content/getting-started/install-on-pc.md b/content/getting-started/install-on-pc.md index 9c98ef671..4311a48c2 100644 --- a/content/getting-started/install-on-pc.md +++ b/content/getting-started/install-on-pc.md @@ -6,10 +6,9 @@ date: 2016-11-01 publishdate: 2016-11-01 lastmod: 2016-11-01 categories: [getting started] -tags: [] -weight: +tags: [install,pc] +weight: 60 draft: false aliases: [] toc: false -notes: --- \ No newline at end of file diff --git a/content/getting-started/quick-start.md b/content/getting-started/quick-start.md index f2e2435cc..923509e80 100644 --- a/content/getting-started/quick-start.md +++ b/content/getting-started/quick-start.md @@ -7,11 +7,10 @@ publishdate: 2017-02-01 lastmod: 2017-02-01 categories: [getting started] tags: [quick start,usage] -weight: 20 +weight: 10 draft: false -slug: aliases: [] toc: false -notes: +notesforauthors: --- diff --git a/content/getting-started/using-the-hugo-docs.md b/content/getting-started/using-the-hugo-docs.md index 8fd81abeb..c855ea213 100644 --- a/content/getting-started/using-the-hugo-docs.md +++ b/content/getting-started/using-the-hugo-docs.md @@ -6,13 +6,13 @@ date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 categories: [getting started] -tags: [] -weight: 10 +tags: [usage,docs] +weight: 20 draft: false slug: aliases: [/getting-started/using-the-docs/] toc: true -notes: +notesforauthors: --- ## Example Site diff --git a/content/hosting-and-deployment/_index.md b/content/hosting-and-deployment/_index.md index e0b9e624b..00b014664 100644 --- a/content/hosting-and-deployment/_index.md +++ b/content/hosting-and-deployment/_index.md @@ -1,15 +1,15 @@ --- -title: Hosting and Deployment -linktitle: Hosting and Deployment +title: Overview +linktitle: Overview description: Site builds, automated deployments, and popular hosting solutions. date: 2016-11-01 publishdate: 2016-11-01 lastmod: 2016-11-01 -tags: [hosting] +tags: [] categories: [hosting and deployment] weight: 01 draft: false aliases: toc: false -notes: +notesforauthors: --- \ No newline at end of file diff --git a/content/hosting-and-deployment/deployment-with-rsync.md b/content/hosting-and-deployment/deployment-with-rsync.md index 50066ea42..3513526bb 100644 --- a/content/hosting-and-deployment/deployment-with-rsync.md +++ b/content/hosting-and-deployment/deployment-with-rsync.md @@ -5,11 +5,11 @@ description: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -tags: [rysnc] categories: [hosting and deployment] +tags: [rysnc,deployment] toc: false weight: draft: false aliases: [] -notes: +notesforauthors: --- \ No newline at end of file diff --git a/content/hosting-and-deployment/deployment-with-wercker.md b/content/hosting-and-deployment/deployment-with-wercker.md index 62c1c935f..ea3db03cf 100644 --- a/content/hosting-and-deployment/deployment-with-wercker.md +++ b/content/hosting-and-deployment/deployment-with-wercker.md @@ -5,11 +5,11 @@ description: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -tags: [wercker] categories: [hosting and deployment] +tags: [wercker,deployment] toc: false draft: false slug: aliases: [] -notes: +notesforauthors: --- \ No newline at end of file diff --git a/content/hosting-and-deployment/hosting-on-bitbucket.md b/content/hosting-and-deployment/hosting-on-bitbucket.md index 3ee816102..dd00204fb 100644 --- a/content/hosting-and-deployment/hosting-on-bitbucket.md +++ b/content/hosting-and-deployment/hosting-on-bitbucket.md @@ -5,11 +5,11 @@ description: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 +categories: [hosting and deployment] +tags: [hosting,bitbucket] weight: draft: false -tags: [bitbucket] -categories: [hosting and deployment] toc: false aliases: [] -notes: +notesforauthors: --- \ No newline at end of file diff --git a/content/hosting-and-deployment/hosting-on-github.md b/content/hosting-and-deployment/hosting-on-github.md index 13cde8f89..bfa27119c 100644 --- a/content/hosting-and-deployment/hosting-on-github.md +++ b/content/hosting-and-deployment/hosting-on-github.md @@ -5,11 +5,11 @@ description: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 +categories: [hosting and deployment] +tags: [github,git,deployment,hosting] weight: draft: false -tags: [github,git] -categories: [hosting and deployment] toc: false aliases: [] -notes: +notesforauthors: --- \ No newline at end of file diff --git a/content/hosting-and-deployment/hosting-on-gitlab.md b/content/hosting-and-deployment/hosting-on-gitlab.md index 9d4905783..1154836b2 100644 --- a/content/hosting-and-deployment/hosting-on-gitlab.md +++ b/content/hosting-and-deployment/hosting-on-gitlab.md @@ -5,11 +5,11 @@ description: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 +categories: [hosting and deployment] +tags: [hosting,deployment] weight: draft: false -tags: [] -categories: [] toc: false aliases: [] -notes: +notesforauthors: --- \ No newline at end of file diff --git a/content/mailing-list.md b/content/mailing-list.md new file mode 100644 index 000000000..4f705033e --- /dev/null +++ b/content/mailing-list.md @@ -0,0 +1,54 @@ +--- +title: Mailing List +linktitle: Mailing List +description: Join the Hugo mailing list for updates on the project. The mailing list has very low traffic and only sends release-related email. +date: 2017-02-01 +publishdate: 2017-02-01 +lastmod: 2017-02-01 +weight: 01 +categories: [] +tags: [mailing list, community] +draft: true +aliases: [/community/mailing-list/] +toc: false +--- + +## Discussion Forum + +Hugo has its own [discussion forum](http://discuss.gohugo.io/) powered by [Discourse](http://www.discourse.org/). + +Please use this for all discussions, questions, etc. + +## Mailing List + +Hugo has two mailing lists: + +### Announcements + +Very low traffic. Only releases will be emailed here. + + + +### Discussion Forum (Archived) + +{{% note %}} +This has been replaced with the [Hugo discussion forum](http://discuss.gohugo.io/) and is available for archival purposes only. +{{% /note %}} + +You can find the old Hugo discussion forum at . + +## Other Resources + +### GoNuts + +For general Go questions or discussion please refer to the Go mailing list. + +https://groups.google.com/forum/#!forum/golang-nuts + +### GitHub Issues + +https://github.com/spf13/hugo/issues + +### Twitter + +Hugo doesn't have its own Twitter handle, but feel free to tweet [@spf13](http://twitter.com/spf13). \ No newline at end of file diff --git a/content/news-and-articles/_index.md b/content/news-and-articles/_index.md index 693c0c179..ca4fc5566 100644 --- a/content/news-and-articles/_index.md +++ b/content/news-and-articles/_index.md @@ -1,6 +1,6 @@ --- -title: News and Articles -linktitle: +title: Overview +linktitle: Overview description: Articles where Hugo is featured, as well as news and updates on the project itself. date: 2017-02-01 publishdate: 2017-02-01 @@ -12,7 +12,7 @@ draft: false aliases: [] toc: false hidesectioncontents: false -notes: +notesforauthors: --- diff --git a/content/news-and-articles/hugo-articles.md b/content/news-and-articles/hugo-articles.md new file mode 100644 index 000000000..e171c5064 --- /dev/null +++ b/content/news-and-articles/hugo-articles.md @@ -0,0 +1,144 @@ +--- +title: Articles +linktitle: Articles +description: A list of articles, blog posts, or tutorials where Hugo is featured. +date: 2017-02-01 +publishdate: 2017-02-01 +lastmod: 2017-02-01 +tags: [articles, tutorials, press] +categories: [news and articles] +weight: 30 +draft: false +aliases: [/community/press/] +toc: false +notesforauthors: "If adding an item to the articles list, be sure to follow the format of '| [Linked Title]() | Author Name | YYYY-MM-DD |'." +--- + +{{% note "Help Keep This List Up to Date" %}} +Know of a post, article, or tutorial on Hugo? [Please add it to this list](https://github.com/spf13/hugo/edit/master/docs/content/community/press.md). +{{% /note %}} + +## Press and Articles + +Hugo has been featured in the following Blog Posts, Press, and Media. + +| Title | Author | Date | +| ----- | ------ | -----: | +| [Build a Hugo site using Cloud9 IDE and host on App Engine](https://loyall.ch/lab/2017/01/build-a-static-website-with-cloud9-hugo-and-app-engine/)| Pascal Aubort | 2017-02-05 | +| [How to use Firebase to host a Hugo site](https://www.m0d3rnc0ad.com/post/static-site-firebase/) | Andrew Cuga | 2017-02-04 | +| [A publishing workflow for teams using static site generators](https://www.keybits.net/post/publishing-workflow-for-teams-using-static-site-generators/) | Tom Atkins | 2017-01-02 | +| [How To Dynamically Use Google Fonts In A Hugo Website](https://stoned.io/web-development/hugo/How-To-Dynamically-Use-Google-Fonts-In-A-Hugo-Website/) | Hash Borgir | 2016-10-27 | +| [Embedding Facebook In A Hugo Template](https://stoned.io/web-development/hugo/Embedding-Facebook-In-A-Hugo-Template/) | Hash Borgir | 2016-10-22 | +| [通过 Gitlab-cl 将 Hugo blog 自动部署至 GitHub](https://zetaoyang.github.io/post/2016/10/17/gitlab-cl.html) (Chinese, Continious integration) | Zetao Yang | 2016-10-17 | +| [A Step-by-Step Guide: Hugo on Netlify](https://www.netlify.com/blog/2016/09/21/a-step-by-step-guide-hugo-on-netlify/) | Eli Williamson | 2016-09-21 | +| [Building our site: From Django & Wordpress to a static generator (Part I)](https://tryolabs.com/blog/2016/09/20/building-our-site-django-wordpress-to-static-part-i/) | Alan Descoins | 20 Sep 2016 | +| [Webseitenmaschine - Statische Websites mit Hugo erzeugen](http://www.heise.de/ct/ausgabe/2016-12-Statische-Websites-mit-Hugo-erzeugen-3211704.html) (German, $) | Christian Helmbold | 2016-05-27 | +| [Cómo hacer sitios web estáticos con Hugo y Go - Platzi](https://www.youtube.com/watch?v=qaXXpdiCHXE) (Video tutorial) | Verónica López | 2016-04-06 | +| [CDNOverview: A CDN comparison site made with Hugo](https://www.cloakfusion.com/cdnoverview-cdn-comparison-site-made-hugo/) | Thijs de Zoete | 2016-02-23 | +| [Hugo: A Modern WebSite Engine That Just Works](https://github.com/shekhargulati/52-technologies-in-2016/blob/master/07-hugo/README.md) | Shekhar Gulati | 2016-02-14 | +| [Minify Hugo Generated HTML](http://ratson.name/blog/minify-hugo-generated-html/) | Ratson | 2016-02-02 | +| [Static site generators: el futuro de las webs estáticas
(Hugo, Jekyll, Flask y otros)](http://sitelabs.es/static-site-generators-futuro-las-webs-estaticas/) | Eneko Sarasola | 2016-01-09 | +| [Writing a Lambda Function for Hugo](https://blog.jolexa.net/post/writing-a-lambda-function-for-hugo/) | Jeremy Olexa | 2016-01-01 | +| [Ein Blog mit Hugo erstellen - Tutorial](http://privat.albicker.org/tags/hugo.html) (Deutsch/German) | Bernhard Albicker | 30 Dec 2015 | +| [How to host Hugo static website generator on AWS Lambda](http://bezdelev.com/post/hugo-aws-lambda-static-website/) | Ilya Bezdelev | 2015-12-15 | +| [Migrating from Pelican to Hugo](http://www.softinio.com/post/migrating-from-pelican-to-hugo/) | Salar Rahmanian | 2015-11-29 | +| [Hugo + Uberspace + Git = Hubergit — eine Anleitung (German)](https://harms-ensink.name/post/hubergit/) | Christoph Harms-Ensink | 2015-11-24 | +| [Static Website Generators Reviewed: Jekyll, Middleman, Roots, Hugo](http://www.smashingmagazine.com/2015/11/static-website-generators-jekyll-middleman-roots-hugo-review/) | Mathias Biilmann Christensen | 2015-11-16 | +| [How To Deploy a Hugo Site to Production with Git Hooks on Ubuntu 14.04](https://www.digitalocean.com/community/tutorials/how-to-deploy-a-hugo-site-to-production-with-git-hooks-on-ubuntu-14-04) | Justin Ellingwood | 2015-11-12 | +| [How To Install and Use Hugo, a Static Site Generator, on Ubuntu 14.04](https://www.digitalocean.com/community/tutorials/how-to-install-and-use-hugo-a-static-site-generator-on-ubuntu-14-04) | Justin Ellingwood | 2015-11-09 | +| [Switching from Wordpress to Hugo](http://justinfx.com/2015/11/08/switching-from-wordpress-to-hugo/) | Justin Israel | 2015-11-08 | +| [Hands-on Experience with Hugo as a Static Site Generator](http://usersnap.com/blog/hands-on-experience-with-hugo-static-site-generator/) | Thomas Peham | 2015 -10-15 | +| [Statische Webseites mit Hugo erstellen/Vortrag mit Foliensatz (deutsch)](http://sfd.koelnerlinuxtreffen.de/2015/HaraldWeidner/) | Harald Weidner | 2015-09-19 | +| [Moving from WordPress to Hugo](http://abhipandey.com/2015/09/moving-to-hugo/) | Abhishek Pandey | 2015-09-15 | +| [通过webhook将Hugo自动部署至GitHub Pages和GitCafe Pages (Automated deployment)](http://blog.coderzh.com/2015/09/13/use-webhook-automated-deploy-hugo/) | CoderZh | 2015-09-13 | +| [使用hugo搭建个人博客站点 (Using Hugo to build a personal blog site)](http://blog.coderzh.com/2015/08/29/hugo/) | CoderZh | 2015-08-29 | +| [Good-Bye Wordpress, Hello Hugo!](http://blog.arminhanisch.de/2015/08/blog-migration-zu-hugo/) (German) | Armin Hanisch | 2015-08-18 | +| [Static Site E-Commerce: Integrating Snipcart with Hugo](https://snipcart.com/blog/snipcart-hugo-integration) | Francis Tremblay | 2015-08-13 | +| [Générer votre site web statique avec Hugo (Generate your static site with Hugo)](http://www.linux-pratique.com/?p=191) | Benoît Benedetti | 2015-06-26 | +| [Hugo向けの新しいテーマを作った (I created a new theme for Hugo)](http://yet.unresolved.xyz/blog/2015/06/20/making-new-theme-robust-for-hugo/) | Daisuke Tsuji | 2015-06-20 | +| [Hugo - Gerando um site com conteúdo estático. (Portuguese Brazil)](http://blog.ffrizzo.com/posts/hugo/) | Fabiano Frizzo | 2015-06-02 | +| [An Introduction to Static Site Generators](http://davidwalsh.name/introduction-static-site-generators) | Eduardo Bouças | 2015-05-20 | +| [Hugo Still Rules](http://cheekycoder.com/2015/05/hugo-still-rules/) | Cheeky Coder | 2015-05-18 | +| [hugo - Static Site Generator](http://gscacco.github.io/post/hugo/) | G Scaccoio | 2015-05-04 | +| [WindowsでHugoを使う](http://ureta.net/2015/05/hugo-on-windows/) | うれ太郎 | 2015-05-01 | +| [Hugoのshortcodesを用いてサイトにスライドなどを埋め込む](http://blog.yucchiy.com/2015/04/29/hugo-shortcode/) | Yucchiy | 2015-04-29 | +| [HugoとCircleCIでGitHub PagesにBlogを公開してみたら超簡単だった](http://hori-ryota.github.io/blog/create-blog-with-hugo-and-circleci/) | Hori Ryota | 2015-04-17 | +| [How to build a mobile friendly website Part 2 - Ok to Go](http://jbrodriguez.io/mobile-friendly-website-2/) | Juan B. Rodriguez | 2015-04-13 | +| [10 Best Static Site Generators](http://beebom.com/2015/04/best-static-site-generators) | Aniruddha Mysore | 2015-04-06 | +| [Goodbye WordPress; Hello Hugo](http://willwarren.com/2015/04/05/goodbye-wordpress-hello-hugo/) | Will Warren | 2015-04-05 | +| [Static Websites with Hugo on Google Cloud Storage](http://www.moxie.io/post/static-websites-with-hugo-on-google-cloud-storage/) | Moxie Input/Output | 2015-04-02 | +| [De nuevo iniciando un blog](http://alvarolizama.net/blog/denuevo-iniciando-un-blog/) | Alvaro Lizama | 2015-03-29 | +| [We moved our blog from Posthaven to Hugo after only three posts. Why?](http://blog.hypriot.com/post/moved-from-posthaven-to-hugo/) | Hypriot | 2015-03-27 | +| [Hugo is cool](http://tnt.wicast.tk/2015/03/23/hugo-is-cool/) (中文 Chinese) | wicast | 2015-03-23 | +| [Top Static Site Generators in 2015](http://superdevresources.com/static-site-generators-2015/) | Kanishk Kunal | 2015-03-12 | +| [Moving to Hugo](http://abiosoft.com/moving-to-hugo/) | Abiola Ibrahim | 2015-03-08 | +| [Hugoで試行錯誤する - log](http://deprode.net/log/logs/first/) | Deprode | 2015-02-28 | +| [Migrating a blog (yes, this one!) from Wordpress to Hugo](http://justindunham.net/migrating-from-wordpress-to-hugo/) | Justin Dunham | 2015-02-13 | +| [blogをoctopressからHugoに乗り換えたメモ](http://blog.jigyakkuma.org/2015/02/11/hugo/) | jigyakkuma | 2015-02-11 | +| [Hugoでブログをつくった](http://porgy13.github.io/post/new-hugo-blog/) | porgy13 | 2015-02-07 | +| [Hugoにブログを移行した](http://keichi.net/post/first/) | Keichi Takahashi | 2015-02-04 | +| [Hugo静态网站生成器中文教程](http://nanshu.wang/post/2015-01-31/) | Nanshu Wang | 2015-01-31 | +| [Hugo + Github Pages + Wercker CI = ¥0(無料)
でコマンド 1 発(自動化)でサイト
・ブログを公開・運営・分析・収益化
](http://qiita.com/yoheimuta/items/8a619cac356bed89a4c9) | Yohei Yoshimuta | 2015-01-31 | +| [Running Hugo websites on anynines](http://blog.anynines.com/running-hugo-websites-on-anynines/) | Julian Weber | 2015-01-30 | +| [MiddlemanからHugoへ移行した](http://re-dzine.net/2015/01/hugo/) | Haruki Konishi | 2015-01-21 | +| [WordPress から Hugo に乗り換えました](http://rakuishi.com/archives/wordpress-to-hugo/) | rakuishi | 2015-01-20 | +| [HUGOを使ってサイトを立ち上げる方法](http://qiita.com/syui/items/869538099551f24acbbf) | Syui | 2015-01-17 | +| [Jekyllが許されるのは小学生までだよね](http://t32k.me/mol/log/hugo/) | Ishimoto Koji | 2015-01-16 | +| [Getting started with Hugo](http://anthonyfok.org/post/getting-started-with-hugo/) | Anthony Fok | 2015-01-12 | +| [把这个博客静态化了 (Migrate to Hugo)](http://lich-eng.com/2015/01/03/migrate-to-hugo/)| Li Cheng | 2015-01-03 | +| [My Hugo Experiment](http://tilde.club/~jbaty/2014/12/2014-12-31-my-hugo-experiment/) | Jack Baty | 2014-12-31 | +| [Porting my blog with Hugo](http://blog.srackham.com/posts/porting-my-blog-with-hugo/) | Stuart Rackham | 2014-12-30 | +| [Hugoを使ってみたときのメモ](http://machortz.github.io/posts/usinghugo/) | Machortz | 2014-12-29 | +| [OctopressからHugoへ移行した](http://deeeet.com/writing/2014/12/25/hugo/) | Taichi Nakashima | 2014-12-25 | +| [Hugo로 Github에 블로그 호스팅하기](http://cdpython.github.io/post/go/hugo/hugo-github/) | CD Python | 2014-12-25 | +| [Migrating to Hugo From Octopress](http://nathanleclaire.com/blog/2014/12/22/migrating-to-hugo-from-octopress/) | Nathan LeClaire | 2014-12-22 | +| [Dynamic Pages with GoHugo.io](http://cyrillschumacher.com/2014/12/21/dynamic-pages-with-gohugo.io/) | Cyrill Schumacher | 2014-12-21 | +| [6 Static Blog Generators That Aren’t Jekyll](http://www.sitepoint.com/6-static-blog-generators-arent-jekyll/) | David Turnbull | 2014-12-08 | +| [Travel Blogging Setup](http://www.stou.dk/2014/11/travel-blogging-setup/) | Rasmus Stougaard | 2014-11-23 | +| [Hosting A Hugo Website Behind Nginx](http://www.bigbeeconsultants.co.uk/blog/hosting-hugo-website-behind-nginx) | Rick Beton | 2014-11-20 | +| [使用Hugo搭建免费个人Blog (How to use Hugo)](http://ulricqin.com/post/how-to-use-hugo/) | Ulric Qin 秦晓辉 | 2014-11-11 | +| [Built in Speed and Built for Speed by Hugo](http://cheekycoder.com/2014/10/built-for-speed-by-hugo/) | Cheeky Coder | 2014-10-30 | +| [hugo, syncthing](http://fredix.ovh/2014/10/hugo-syncthing/) | Frédéric Logier | 13 Oct 2014 | +| [Hugo para crear sitios web estáticos](http://www.webbizarro.com/noticias/1076/hugo-para-crear-sitios-web-estaticos/) | Web Bizarro | 19 Aug 2014 | +| [Going with hugo](http://www.markuseliasson.se/article/going-with-hugo/) | Markus Eliasson | 2014-08-18 | +| [Benchmarking Jekyll, Hugo and Wintersmith](http://fredrikloch.me/post/2014-08-12-Jekyll-and-its-alternatives-from-a-site-generation-point-of-view/) | Fredrik Loch | 2014-08-12 | +| [Goodbye Octopress, Hello Hugo!](http://andreimihu.com/blog/2014/08/11/goodbye-octopress-hello-hugo/) | Andrei Mihu | 2014-08-11 | +| [Beautiful sites for Open Source projects](http://beautifulopen.com/2014/08/09/hugo/) | Beautiful Open | 2014-08-09 | +| [Hugo: Beyond the Defaults](http://npf.io/2014/08/hugo-beyond-the-defaults/) | Nate Finch | 2014-08-08 | +| [First Impressions of Hugo](https://peteraba.com/blog/first-impressions-of-hugo/) | Peter Aba | 2014-06-06 | +| [New Site Workflow](http://vurt.co.uk/post/new_website/) | Giles Paterson | 2014-08-05 | +| [How I Learned to Stop Worrying and Love the (Static) Web](http://cognition.ca/post/about-hugo/) | Joshua McKenty | 2014-08-4 | +| [Hugo - Static Site Generator](http://kenwoo.io/blog/hugo---static-site-generator/) | Kenny Woo | 2014-08-03 | +| [Hugo Is Friggin' Awesome](http://npf.io/2014/08/hugo-is-awesome/) | Nate Finch | 2014-08-01 | +| [再次搬家 (Move from WordPress to Hugo)](http://www.chingli.com/misc/move-from-wordpress-to-hugo/) | 青砾 (chingli) | 2014-07-12 | +| [Embedding Gists in Hugo](http://danmux.com/posts/embedded_gists/) | Dan Mull | 2014-07-5 | +| [An Introduction To Hugo](http://www.cirrushosting.com/web-hosting-blog/an-introduction-to-hugo/) | Dan Silber | 2014-07-01 | +| [Moving to Hugo](http://danmux.com/posts/hugo_based_blog/) | Dan Mull | 2014-05-29 | +| [开源之静态站点生成器排行榜
(Leaderboard of open-source static website generators)](http://code.csdn.net/news/2819909) | CSDN.net | 2014-05-23 | +| [How I deploy this site using Fabric](http://carlorat.me/quote/fabric/) | Carlo Ratam | 2014-05-21 | +| [Finally, a satisfying and effective blog setup](http://michaelwhatcott.com/now-powered-by-hugo/) | Michael Whatcott | 2014-05-20 | +| [Hugo from scratch](http://zackofalltrades.com/notes/2014/05/hugo-from-scratch/) | Zack Williams | 2014-05-18 | +| [Why I switched away from Jekyll](http://www.jakejanuzelli.com/why-I-switched-away-from-jekyll/) | Jake Januzelli | 2014-05-10 | +| [Welcome our new blog](http://blog.ninya.io/posts/welcome-our-new-blog/) | Ninya.io | 2014-04-11 | +| [Mission Not Accomplished](http://johnsto.co.uk/blog/mission-not-accomplished/) | Dave Johnston | 2014-04-03 | +| [Hugo - A Static Site Builder in Go](http://deepfriedcode.com/post/hugo/) | Deep Fried Code | 2014-03-30 | +| [Adventures in Angular Podcast](http://devchat.tv/adventures-in-angular/003-aia-gdes) | Matias Niemela | 2014-03-28 | +| [Hugo](http://bra.am/post/hugo/) | bra.am | 2014-03-23 | +| [Converting Blogger To Markdown](http://trishagee.github.io/project/atom-to-hugo/) | Trisha Gee | 2014-03-20 | +| [Moving to Hugo Static Web Pages](http://tepid.org/tech/hugo-web/) | Tobias Weingartner | 2014-03-16 | +| [Hugo and GitHub Pages](http://spencerlyon.com/blog/2014/creating-the-site/) | Spencer Lyon | 2014-03-15 | +| [New Blog Engine: Hugo](https://blog.afoolishmanifesto.com/posts/hugo/) | fREW Schmidt | 2014-03-15 | +| [Hugo + gulp.js = Huggle](http://ktmud.github.io/huggle/en/intro/) ([English](http://ktmud.github.io/huggle/en/intro/), [中文](http://ktmud.github.io/huggle/zh/intro/)) | Jesse Yang 杨建超 | 2014-03-08 | +| [Powered by Hugo](http://kieranhealy.org/blog/archives/2014/02/24/powered-by-hugo/) | Kieran Healy | 2014-02-24 | +| [静的サイトを素早く構築するために
GoLangで作られたジェネレータHugo
](http://hamasyou.com/blog/2014/02/21/hugo/)|
Shogo Hamada
濱田章吾
| 2014-02-21 | +| [Latest Roundup of Useful Tools For Developers](http://codegeekz.com/latest-roundup-of-useful-tools-for-developers/) | CodeGeekz | 2014-02-13 | +| [Hugo: Static Site Generator written in Go](http://www.braveterry.com/2014/02/06/hugo-static-site-generator-written-in-go/) | Brave Terry | 2014-02-06 | +| [10 Useful HTML5 Tools for Web Designers and Developers](http://designdizzy.com/10-useful-html5-tools-for-web-designers-and-developers/) | Design Dizzy | 2014-02-04 | +| [Hugo – Fast, Flexible Static Site Generator](http://cube3x.com/hugo-fast-flexible-static-site-generator/) | Joby Joseph | 2014-01-18 | +| [Hugo: A new way to build static website](http://www.w3update.com/opensource/hugo-a-new-way-to-build-static-website.html) | w3update | 2014-01-17 | +| [Xaprb now uses Hugo](http://xaprb.com/blog/2014/01/15/using-hugo/) | Baron Schwartz | 2014-01-15 | +| [New jQuery Plugins And Resources That Web Designers Need](http://www.designyourway.net/blog/resources/new-jquery-plugins-and-resources-that-web-designers-need/) | Design Your Way | 2014-01-01 | +| [On Blog Construction](http://alexla.sh/post/on-blog-construction/) | Alexander Lash | 2013-12-27 | +| [Hugo](http://onethingwell.org/post/69070926608/hugo) | One Thing Well | 2013-12-05 | +| [In Praise Of Hugo](http://sound-guru.com/blog/post/hello-world/) | sound-guru.com | 2013-10-19 | +| [Hosting a blog on S3 and Cloudfront](http://www.danesparza.net/2013/07/hosting-a-blog-on-s3-and-cloudfront/) | Dan Esparza | 2013-07-24 | \ No newline at end of file diff --git a/content/news-and-articles/release-notes.md b/content/news-and-articles/release-notes.md index 2cc79c034..4368f3697 100644 --- a/content/news-and-articles/release-notes.md +++ b/content/news-and-articles/release-notes.md @@ -11,7 +11,7 @@ weight: 30 draft: false aliases: [/meta/release-notes/] toc: true -notes: +notesforauthors: --- ## **0.18.1** December 30th 2016 diff --git a/content/project-organization/_index.md b/content/project-organization/_index.md deleted file mode 100644 index 7e231de7a..000000000 --- a/content/project-organization/_index.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: "Project Organization" -linktitle: "Project Organization" -description: Scaffolding new projects, configuration, and source organization. -date: 2016-11-01 -publishdate: 2016-11-01 -lastmod: 2016-11-01 -weight: 01 -tags: [] -categories: [] -draft: false -hidesectioncontents: false -slug: -aliases: [] -toc: false -notes: ---- - -## New Projects - - - -## Hugo Directory Structure - diff --git a/content/showcase/2626info.md b/content/showcase/2626info.md index 95e4bd9ba..a652ea6c4 100644 --- a/content/showcase/2626info.md +++ b/content/showcase/2626info.md @@ -7,7 +7,7 @@ sitelink: http://2626.info/ tags: - personal - blog -thumbnail: /images/2626info-tn.png +image: 2626info-tn.png title: 2626.info --- diff --git a/content/showcase/_index.md b/content/showcase/_index.md index 6b69726a4..68f381ea0 100644 --- a/content/showcase/_index.md +++ b/content/showcase/_index.md @@ -5,12 +5,13 @@ description: A collection of sites built using Hugo. date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -tags: [] categories: [] +tags: [introduction,overview] weight: 01 draft: false hidesectioncontents: false -slug: +type: showcase +layout: showcaselist.html aliases: [/site-showcase/] -notes: +notesforauthors: --- \ No newline at end of file diff --git a/content/showcase/antzucaro.md b/content/showcase/antzucaro.md index 15b42be67..6aabf473b 100644 --- a/content/showcase/antzucaro.md +++ b/content/showcase/antzucaro.md @@ -5,12 +5,12 @@ description: Ant Zucaro's Blog license: GPL licenseLink: "" sitelink: http://antzucaro.com/ -sourceLink: https://github.com/antzucaro/az.com +sourcelink: https://github.com/antzucaro/az.com tags: - personal - blog - foundation -thumbnail: /images/antzucaro-tn.jpg +image: antzucaro-tn.jpg title: Ant Zucaro --- diff --git a/content/showcase/appernetic.md b/content/showcase/appernetic.md index dc0c16e67..77c9d9209 100644 --- a/content/showcase/appernetic.md +++ b/content/showcase/appernetic.md @@ -5,11 +5,11 @@ description: Appernetic.io blog license: MIT licenseLink: https://github.com/appernetic/hugo-bootstrap-premium/blob/master/LICENSE.md sitelink: https://blog.appernetic.io/ -sourceLink: https://github.com/appernetic/hugo-bootstrap-premium +sourcelink: https://github.com/appernetic/hugo-bootstrap-premium tags: - company - blog - bootstrap -thumbnail: /images/apperneticioblog.png +image: apperneticioblog.png title: Appernetic --- diff --git a/content/showcase/arresteddevops.md b/content/showcase/arresteddevops.md index c65216c77..45fcf3f69 100644 --- a/content/showcase/arresteddevops.md +++ b/content/showcase/arresteddevops.md @@ -5,10 +5,10 @@ description: "Arrested DevOps is a podcast focusing on trends in the DevOps spac license: "apache2" licenseLink: "https://github.com/arresteddevops/ado-hugo/blob/master/LICENSE.md" sitelink: https://www.arresteddevops.com/ -sourceLink: https://github.com/arresteddevops/ado-hugo +sourcelink: https://github.com/arresteddevops/ado-hugo tags: - podcast - bootstrap -thumbnail: /images/arresteddevops-tn.png +image: arresteddevops-tn.png title: arresteddevops --- diff --git a/content/showcase/asc.md b/content/showcase/asc.md index bced420aa..10fc20226 100644 --- a/content/showcase/asc.md +++ b/content/showcase/asc.md @@ -5,11 +5,11 @@ description: "" license: CC-BY-SA licenseLink: "" sitelink: http://andrewcodispoti.com/ -sourceLink: https://gitlab.com/acodispo/andrewcodispoti-com +sourcelink: https://gitlab.com/acodispo/andrewcodispoti-com tags: - personal - bootstrap -thumbnail: /images/asc-tn.jpg +image: asc-tn.jpg title: Andrew S Codispoti --- diff --git a/content/showcase/astrochili.md b/content/showcase/astrochili.md index 59b26aa80..7ce26209c 100644 --- a/content/showcase/astrochili.md +++ b/content/showcase/astrochili.md @@ -4,11 +4,11 @@ description: "Personal website" license: "" licenseLink: "" sitelink: http://romansilin.com/ -sourceLink: https://github.com/astrochili/astrochili.github.io +sourcelink: https://github.com/astrochili/astrochili.github.io tags: - personal - blog -thumbnail: /images/astrochili-tn.png +image: astrochili-tn.png title: Roman Silin --- diff --git a/content/showcase/aydoscom.md b/content/showcase/aydoscom.md index 72d52ca50..28d8bad4c 100644 --- a/content/showcase/aydoscom.md +++ b/content/showcase/aydoscom.md @@ -6,7 +6,7 @@ licenseLink: "" sitelink: https://aydos.com/ tags: - web applications -thumbnail: /images/aydoscom.png +image: aydoscom.png title: aydos.com --- diff --git a/content/showcase/barricade.md b/content/showcase/barricade.md index 3e37d1d0d..5c1218fed 100644 --- a/content/showcase/barricade.md +++ b/content/showcase/barricade.md @@ -7,7 +7,7 @@ sitelink: https://barricade.io tags: - company - security -thumbnail: /images/barricade-tn.png +image: barricade-tn.png title: Barricade --- diff --git a/content/showcase/bepsays.md b/content/showcase/bepsays.md index 5c480d4b1..4d37188ed 100644 --- a/content/showcase/bepsays.md +++ b/content/showcase/bepsays.md @@ -5,11 +5,11 @@ description: "bep's blog" license: "" licenseLink: "" sitelink: http://bepsays.com/ -sourceLink: "https://github.com/bep/bepsays.com" +sourcelink: "https://github.com/bep/bepsays.com" tags: - personal - blog -thumbnail: /images/bepsays-tn.png +image: bepsays-tn.png title: bepsays.com --- diff --git a/content/showcase/bugtrackers.io.md b/content/showcase/bugtrackers.io.md index d793392e1..53c8206c8 100644 --- a/content/showcase/bugtrackers.io.md +++ b/content/showcase/bugtrackers.io.md @@ -7,7 +7,7 @@ tags: - blog - community - interviews -thumbnail: /images/bugtrackersio-tn.jpg +image: bugtrackersio-tn.jpg title: bugtrackers.io --- diff --git a/content/showcase/camunda-blog.md b/content/showcase/camunda-blog.md index dbd2d6fc1..d2a260247 100644 --- a/content/showcase/camunda-blog.md +++ b/content/showcase/camunda-blog.md @@ -5,11 +5,11 @@ description: "Camunda BPM Team Blog" license: "Apache 2.0" licenseLink: "https://github.com/camunda/blog.camunda.org#license" sitelink: http://blog.camunda.org/ -sourceLink: https://github.com/camunda/blog.camunda.org +sourcelink: https://github.com/camunda/blog.camunda.org tags: - company - blog -thumbnail: /images/camunda-blog.png +image: camunda-blog.png title: Camunda Blog --- diff --git a/content/showcase/camunda-docs.md b/content/showcase/camunda-docs.md index 1417ca5d8..4a3570f85 100644 --- a/content/showcase/camunda-docs.md +++ b/content/showcase/camunda-docs.md @@ -5,11 +5,11 @@ description: "Camunda BPM Documentation" license: MIT licenseLink: "https://github.com/camunda/camunda-docs-theme#licence" sitelink: http://docs.camunda.org/ -sourceLink: https://github.com/camunda/camunda-docs-theme +sourcelink: https://github.com/camunda/camunda-docs-theme tags: - company - documentation -thumbnail: /images/camunda-docs.png +image: camunda-docs.png title: Camunda Docs --- diff --git a/content/showcase/cdnoverview.md b/content/showcase/cdnoverview.md index 0f28ecddf..12976a098 100644 --- a/content/showcase/cdnoverview.md +++ b/content/showcase/cdnoverview.md @@ -8,7 +8,7 @@ tags: - bootstrap - portfolio - tech -thumbnail: /images/cdnoverview-tn.png +image: cdnoverview-tn.png title: cdnoverview.com --- diff --git a/content/showcase/chinese-grammar.md b/content/showcase/chinese-grammar.md index 126d1a62d..6b5fc05e1 100644 --- a/content/showcase/chinese-grammar.md +++ b/content/showcase/chinese-grammar.md @@ -3,10 +3,10 @@ lastmod: 2015-08-21 date: 2015-08-23 description: Chinese grammar lessons sitelink: https://www.chineseboost.com/grammar/ -sourceLink: https://github.com/hughgrigg/chineseboost-articles +sourcelink: https://github.com/hughgrigg/chineseboost-articles tags: - learning - education -thumbnail: /images/chinese-grammar-tn.png +image: chinese-grammar-tn.png title: Chinese Grammar --- diff --git a/content/showcase/chingli.md b/content/showcase/chingli.md index a56b35651..e83db9b46 100644 --- a/content/showcase/chingli.md +++ b/content/showcase/chingli.md @@ -6,7 +6,7 @@ sitelink: http://www.chingli.com/ tags: - personal - blog -thumbnail: /images/chingli-tn.jpg +image: chingli-tn.jpg title: 青砾 (chingli) --- diff --git a/content/showcase/chipsncookies.md b/content/showcase/chipsncookies.md index df63982fe..36d8f92c6 100644 --- a/content/showcase/chipsncookies.md +++ b/content/showcase/chipsncookies.md @@ -5,11 +5,11 @@ description: "personal blog and portfolio of Samuel Debruyn" license: "" licenseLink: "" sitelink: https://chipsncookies.com -sourceLink: https://github.com/SamuelDebruyn/chipsncookies-site +sourcelink: https://github.com/SamuelDebruyn/chipsncookies-site tags: - personal - blog -thumbnail: /images/chipsncookies-tn.png +image: chipsncookies-tn.png title: Chips 'n' Cookies --- diff --git a/content/showcase/christianmendoza.md b/content/showcase/christianmendoza.md index c7f311c20..42091722f 100644 --- a/content/showcase/christianmendoza.md +++ b/content/showcase/christianmendoza.md @@ -7,6 +7,6 @@ sitelink: https://christianmendoza.me/ tags: - personal - profile -thumbnail: /images/christianmendoza-tn.png +image: christianmendoza-tn.png title: christianmendoza.me --- diff --git a/content/showcase/cinegyopen.md b/content/showcase/cinegyopen.md index 67b365b91..4b8bbbe05 100644 --- a/content/showcase/cinegyopen.md +++ b/content/showcase/cinegyopen.md @@ -4,9 +4,9 @@ description: "Cinegy Open documentation project" license: "" licenseLink: "" sitelink: https://open.cinegy.com/ -sourceLink: +sourcelink: tags: - documentation -thumbnail: /images/cinegyopen-tn.png +image: cinegyopen-tn.png title: Cinegy Open --- \ No newline at end of file diff --git a/content/showcase/clearhaus.md b/content/showcase/clearhaus.md index 841a692a9..7ebf32284 100644 --- a/content/showcase/clearhaus.md +++ b/content/showcase/clearhaus.md @@ -9,6 +9,6 @@ tags: - fintech - payments - acquirer -thumbnail: /images/clearhaus-tn.png +image: clearhaus-tn.png title: Clearhaus --- diff --git a/content/showcase/cloudshark.md b/content/showcase/cloudshark.md index 7aef5234c..674d066f4 100644 --- a/content/showcase/cloudshark.md +++ b/content/showcase/cloudshark.md @@ -9,7 +9,7 @@ tags: - company - documentation - foundation -thumbnail: /images/cloudshark-tn.jpg +image: cloudshark-tn.jpg title: CloudShark --- diff --git a/content/showcase/coding-journal.md b/content/showcase/coding-journal.md index 72632d9b3..7e2cc175e 100644 --- a/content/showcase/coding-journal.md +++ b/content/showcase/coding-journal.md @@ -5,10 +5,10 @@ description: blog, portfolio license: "" licenseLink: "" sitelink: http://blog.kulman.sk/ -sourceLink: https://github.com/igorkulman/coding-journal +sourcelink: https://github.com/igorkulman/coding-journal tags: - blog - portfolio -thumbnail: /images/codingjournal-tn.png +image: codingjournal-tn.png title: Coding Journal --- diff --git a/content/showcase/consequently.md b/content/showcase/consequently.md index 83f09fa50..da48170ba 100644 --- a/content/showcase/consequently.md +++ b/content/showcase/consequently.md @@ -5,12 +5,12 @@ description: "consequently.org, Greg Restall's personal website" license: "" licenseLink: "" sitelink: http://consequently.org -sourceLink: "https://github.com/consequently/consequently-hugo" +sourcelink: "https://github.com/consequently/consequently-hugo" tags: - academic - blog - kube -thumbnail: /images/consequently.jpg +image: consequently.jpg title: consequently.org --- diff --git a/content/showcase/ctlcompiled.md b/content/showcase/ctlcompiled.md index 14851e5e2..ef050fe8e 100644 --- a/content/showcase/ctlcompiled.md +++ b/content/showcase/ctlcompiled.md @@ -8,7 +8,7 @@ tags: - edtech - technology - blog -thumbnail: /images/ctlcompiled-tn.png +image: ctlcompiled-tn.png title: CompilED at CTL --- diff --git a/content/showcase/danmux.md b/content/showcase/danmux.md index fa3ceb4a0..d05b974f8 100644 --- a/content/showcase/danmux.md +++ b/content/showcase/danmux.md @@ -5,11 +5,11 @@ description: "" license: MIT licenseLink: "" sitelink: http://danmux.com/ -sourceLink: https://github.com/danmux/danmux-hugo +sourcelink: https://github.com/danmux/danmux-hugo tags: - personal - blog -thumbnail: /images/danmux-tn.jpg +image: danmux-tn.jpg title: Danmux --- diff --git a/content/showcase/datapipelinearchitect.md b/content/showcase/datapipelinearchitect.md index 7685d3274..cbcace446 100644 --- a/content/showcase/datapipelinearchitect.md +++ b/content/showcase/datapipelinearchitect.md @@ -7,7 +7,7 @@ tags: - tech - blog - website -thumbnail: /images/datapipelinearchitect-tn.jpg +image: datapipelinearchitect-tn.jpg title: Data Pipeline Architect --- diff --git a/content/showcase/davidepetilli.md b/content/showcase/davidepetilli.md index dbee155be..7fc78b18b 100644 --- a/content/showcase/davidepetilli.md +++ b/content/showcase/davidepetilli.md @@ -10,7 +10,7 @@ tags: - photography - portfolio - blog -thumbnail: /images/davidepetilli-tn.jpg +image: davidepetilli-tn.jpg title: Davide Petilli --- diff --git a/content/showcase/davidrallen.md b/content/showcase/davidrallen.md index d10f7640c..aae51875b 100644 --- a/content/showcase/davidrallen.md +++ b/content/showcase/davidrallen.md @@ -4,12 +4,12 @@ description: "Personal website for David Allen" license: "MIT" licenseLink: "https://opensource.org/licenses/MIT" sitelink: http://davidrallen.com/ -sourceLink: https://github.com/doctorallen/davidrallen.com +sourcelink: https://github.com/doctorallen/davidrallen.com tags: - personal - blog - tech -thumbnail: /images/davidrallen-tn.png +image: davidrallen-tn.png title: David Allen --- diff --git a/content/showcase/davidyates.md b/content/showcase/davidyates.md index 4243698ed..9717870b9 100644 --- a/content/showcase/davidyates.md +++ b/content/showcase/davidyates.md @@ -7,7 +7,7 @@ sitelink: https://davidyat.es/ tags: - personal - blog -thumbnail: /images/davidyates-tn.png +image: davidyates-tn.png title: David Yates --- diff --git a/content/showcase/devmonk.md b/content/showcase/devmonk.md index 96c0f3f63..79073559b 100644 --- a/content/showcase/devmonk.md +++ b/content/showcase/devmonk.md @@ -5,11 +5,11 @@ description: "" license: "" licenseLink: "" sitelink: https://devmonk.com/ -sourceLink: https://github.com/peteraba/devmonk.com +sourcelink: https://github.com/peteraba/devmonk.com tags: - educational - video -thumbnail: /images/devmonk-tn.jpg +image: devmonk-tn.jpg title: devmonk --- diff --git a/content/showcase/dmitriid.com.md b/content/showcase/dmitriid.com.md index 1e505dac5..7afe1c40a 100644 --- a/content/showcase/dmitriid.com.md +++ b/content/showcase/dmitriid.com.md @@ -4,11 +4,11 @@ description: "Personal blog" license: "CC BY-NC 4.0" licenseLink: "" sitelink: http://dmitriid.com/ -sourceLink: https://github.com/dmitriid/dmitriid.com +sourcelink: https://github.com/dmitriid/dmitriid.com tags: - personal - blog -thumbnail: /images/dmitriid.com.png +image: dmitriid.com.png title: dmitriid.com --- diff --git a/content/showcase/emilyhorsman.com.md b/content/showcase/emilyhorsman.com.md index 0fda98c5e..ab1baada7 100644 --- a/content/showcase/emilyhorsman.com.md +++ b/content/showcase/emilyhorsman.com.md @@ -3,11 +3,11 @@ lastmod: 2016-01-09 date: 2016-01-09T01:00:10Z description: Personal homepage sitelink: https://emilyhorsman.com/ -sourceLink: https://github.com/emilyhorsman/buttercup +sourcelink: https://github.com/emilyhorsman/buttercup tags: - personal - blog -thumbnail: /images/emilyhorsman.com-tn.jpg +image: emilyhorsman.com-tn.jpg title: emilyhorsman.com --- diff --git a/content/showcase/esolia-com.md b/content/showcase/esolia-com.md index aeff34196..8d97c0172 100644 --- a/content/showcase/esolia-com.md +++ b/content/showcase/esolia-com.md @@ -5,12 +5,12 @@ description: Tokyo IT service provider eSolia Inc's Hugo-powered website. license: MIT licenseLink: "" sitelink: http://esolia.com/ -sourceLink: https://github.com/eSolia/eSolia +sourcelink: https://github.com/eSolia/eSolia tags: - company - esolia - rickcogley - japan -thumbnail: /images/esolia_com-tn.png +image: esolia_com-tn.png title: eSolia.com --- diff --git a/content/showcase/esolia-pro.md b/content/showcase/esolia-pro.md index eaaeced77..a573efb5b 100644 --- a/content/showcase/esolia-pro.md +++ b/content/showcase/esolia-pro.md @@ -5,12 +5,12 @@ description: Tokyo IT service provider eSolia Inc's eSolia.pro blog site, powere license: MIT licenseLink: "" sitelink: http://esolia.pro/ -sourceLink: https://github.com/eSolia/eSolia.pro +sourcelink: https://github.com/eSolia/eSolia.pro tags: - company - esolia - rickcogley - japan -thumbnail: /images/esolia_pro-tn.png +image: esolia_pro-tn.png title: eSolia.pro --- diff --git a/content/showcase/eurie.md b/content/showcase/eurie.md index 3e720ea1f..de7010b56 100644 --- a/content/showcase/eurie.md +++ b/content/showcase/eurie.md @@ -6,6 +6,6 @@ licenseLink: "" sitelink: https://docs.eurie.io tags: - documentation -thumbnail: /images/docs.eurie.io-tn.png +image: docs.eurie.io-tn.png title: eurie Desk docs --- diff --git a/content/showcase/fale.md b/content/showcase/fale.md index 10488e695..86dc402ed 100644 --- a/content/showcase/fale.md +++ b/content/showcase/fale.md @@ -5,11 +5,11 @@ description: Fabio Alessandro Locati personal blog. license: AGPLv3 licenseLink: "" sitelink: http://fale.io/ -sourceLink: https://github.com/fale/fale.io +sourcelink: https://github.com/fale/fale.io tags: - personal - blog -thumbnail: /images/fale-tn.png +image: fale-tn.png title: fale.io --- diff --git a/content/showcase/fixatom.md b/content/showcase/fixatom.md index 36f29b3b9..d341a9a26 100644 --- a/content/showcase/fixatom.md +++ b/content/showcase/fixatom.md @@ -7,7 +7,7 @@ sitelink: https://fixatom.com/ tags: - personal - blog -thumbnail: /images/fixatom-tn.png +image: fixatom-tn.png title: Atom --- diff --git a/content/showcase/fxsitecompat.md b/content/showcase/fxsitecompat.md index f6e73a0d2..05d24640e 100644 --- a/content/showcase/fxsitecompat.md +++ b/content/showcase/fxsitecompat.md @@ -5,12 +5,12 @@ description: Multilingual, community documentation and blog site license: "" licenseLink: "" sitelink: https://www.fxsitecompat.com/ -sourceLink: https://github.com/fxsitecompat/www.fxsitecompat.com +sourcelink: https://github.com/fxsitecompat/www.fxsitecompat.com tags: - community - documentation - translation -thumbnail: /images/fxsitecompat-tn.png +image: fxsitecompat-tn.png title: Firefox Site Compatibility --- diff --git a/content/showcase/gntech.md b/content/showcase/gntech.md index 24a992f23..ed5e92109 100644 --- a/content/showcase/gntech.md +++ b/content/showcase/gntech.md @@ -10,6 +10,6 @@ tags: - projects - music - drawings -thumbnail: /images/gntech-tn.png +image: gntech-tn.png title: gntech.se --- diff --git a/content/showcase/gogb.md b/content/showcase/gogb.md index e7e886ed9..56cfab6b4 100644 --- a/content/showcase/gogb.md +++ b/content/showcase/gogb.md @@ -7,7 +7,7 @@ licenseLink: "" sitelink: http://getgb.io tags: - project -thumbnail: /images/gogb-tn.jpg +image: gogb-tn.jpg title: GoGB --- diff --git a/content/showcase/goin5minutes.md b/content/showcase/goin5minutes.md index a5368ca35..4646cb942 100644 --- a/content/showcase/goin5minutes.md +++ b/content/showcase/goin5minutes.md @@ -5,9 +5,9 @@ description: "Code for Go in 5 Minutes Screencasts" license: "Apache License 2.0" licenseLink: "https://github.com/arschles/go-in-5-minutes/blob/master/LICENSE" sitelink: http://www.goin5minutes.com/ -sourceLink: https://github.com/arschles/go-in-5-minutes/tree/master/www +sourcelink: https://github.com/arschles/go-in-5-minutes/tree/master/www tags: - screencasts -thumbnail: /images/goin5minutes-tn.png +image: goin5minutes-tn.png title: Go in 5 minutes --- \ No newline at end of file diff --git a/content/showcase/h10n.me.md b/content/showcase/h10n.me.md index 52b529aee..24a86feac 100644 --- a/content/showcase/h10n.me.md +++ b/content/showcase/h10n.me.md @@ -2,10 +2,10 @@ date: 2016-03-05T14:30:21+01:00 description: "Personal profile page of Horst Gutmann" sitelink: http://h10n.me/ -sourceLink: https://github.com/zerok/h10n.me +sourcelink: https://github.com/zerok/h10n.me tags: - personal - profile -thumbnail: /images/h10n.me-tn.png +image: h10n.me-tn.png title: h10n.me --- diff --git a/content/showcase/hugo.md b/content/showcase/hugo.md index 1e2b498ee..7cdc902d0 100644 --- a/content/showcase/hugo.md +++ b/content/showcase/hugo.md @@ -5,11 +5,11 @@ description: This site license: Simpl licenseLink: "" sitelink: http://gohugo.io/ -sourceLink: https://github.com/spf13/hugo/tree/master/docs +sourcelink: https://github.com/spf13/hugo/tree/master/docs tags: - documentation - bootstrap -thumbnail: /images/hugo-tn.jpg +image: hugo-tn.jpg title: Hugo --- diff --git a/content/showcase/jamescampbell.md b/content/showcase/jamescampbell.md index abde8725e..5a254ca98 100644 --- a/content/showcase/jamescampbell.md +++ b/content/showcase/jamescampbell.md @@ -4,11 +4,11 @@ description: "" license: "" licenseLink: "" sitelink: https://jamescampbell.us/ -sourceLink: https://github.com/jamesacampbell/causes-and-effects-hugo +sourcelink: https://github.com/jamesacampbell/causes-and-effects-hugo tags: - personal - blog -thumbnail: /images/jamescampbell-tn.png +image: jamescampbell-tn.png title: jamescampbell.us --- diff --git a/content/showcase/jorgennilsson.md b/content/showcase/jorgennilsson.md index ce3183c08..33c7ef9c5 100644 --- a/content/showcase/jorgennilsson.md +++ b/content/showcase/jorgennilsson.md @@ -7,6 +7,6 @@ sitelink: http://jorgennilsson.com/ tags: - personal - blog -thumbnail: /images/jorgennilsson-tn.png +image: jorgennilsson-tn.png title: jorgennilsson.com --- diff --git a/content/showcase/kieranhealy.md b/content/showcase/kieranhealy.md index 632752d5e..597f8351e 100644 --- a/content/showcase/kieranhealy.md +++ b/content/showcase/kieranhealy.md @@ -5,12 +5,12 @@ description: Kieran Healy's Website license: "" licenseLink: "" sitelink: http://kieranhealy.org/ -sourceLink: https://github.com/kjhealy/kieranhealy.hugo +sourcelink: https://github.com/kjhealy/kieranhealy.hugo tags: - personal - blog - academic -thumbnail: /images/kjhealy-tn.jpg +image: kjhealy-tn.jpg title: Kieran Healy --- diff --git a/content/showcase/klingt-net.md b/content/showcase/klingt-net.md index fdb5bc226..a5c0ce9bc 100644 --- a/content/showcase/klingt-net.md +++ b/content/showcase/klingt-net.md @@ -4,12 +4,12 @@ description: "klingt.net is the personal homepage of Andreas Linz." license: "" licenseLink: "" sitelink: https://klingt.net/ -sourceLink: https://github.com/klingtnet/klingt.net +sourcelink: https://github.com/klingtnet/klingt.net tags: - personal - blog - programming -thumbnail: /images/klingt-net-tn.png +image: klingt-net-tn.png title: klingt net --- diff --git a/content/showcase/launchcode5.md b/content/showcase/launchcode5.md index d8fecdcd9..fe5d8850f 100644 --- a/content/showcase/launchcode5.md +++ b/content/showcase/launchcode5.md @@ -5,10 +5,10 @@ description: Corporate Site for Launchcode Software Studios license: Copyright Launchcode Software Studios licenseLink: "" sitelink: http://www.launchcode5.com/ -sourceLink: https://github.com/Launchcode5/launchcode5.com +sourcelink: https://github.com/Launchcode5/launchcode5.com tags: - bootstrap -thumbnail: /images/launchcode-tn.jpg +image: launchcode-tn.jpg title: Launchcode Software Studios --- diff --git a/content/showcase/leepenney.md b/content/showcase/leepenney.md index af14b4536..2830cfacc 100644 --- a/content/showcase/leepenney.md +++ b/content/showcase/leepenney.md @@ -8,7 +8,7 @@ sitelink: http://leepenney.com/ tags: - personal - website -thumbnail: /images/leepenney-tn.jpg +image: leepenney-tn.jpg title: Lee Penney --- diff --git a/content/showcase/leowkahman.md b/content/showcase/leowkahman.md index e1da08392..95fd589ab 100644 --- a/content/showcase/leowkahman.md +++ b/content/showcase/leowkahman.md @@ -7,6 +7,6 @@ sitelink: https://www.leowkahman.com/ tags: - personal - blog -thumbnail: /images/leowkahman-tn.png +image: leowkahman-tn.png title: Leow Kah Man - Tech Blog --- \ No newline at end of file diff --git a/content/showcase/lk4d4.darth.io.md b/content/showcase/lk4d4.darth.io.md index 4e692a33b..0c56364d2 100644 --- a/content/showcase/lk4d4.darth.io.md +++ b/content/showcase/lk4d4.darth.io.md @@ -5,11 +5,11 @@ description: Alexandr Morozov license: "" licenseLink: "" sitelink: http://lk4d4.darth.io/ -sourceLink: https://github.com/LK4D4/lk4d4.darth.io +sourcelink: https://github.com/LK4D4/lk4d4.darth.io tags: - personal - blog -thumbnail: /images/lk4d4-tn.jpg +image: lk4d4-tn.jpg title: lk4d4.darth.io --- diff --git a/content/showcase/losslesslife.md b/content/showcase/losslesslife.md index c71176ad8..402200f36 100644 --- a/content/showcase/losslesslife.md +++ b/content/showcase/losslesslife.md @@ -10,6 +10,6 @@ tags: - reviews - education - audiophile -thumbnail: /images/losslesslife-tn.png +image: losslesslife-tn.png title: LosslessLife --- diff --git a/content/showcase/mariosanchez.md b/content/showcase/mariosanchez.md index 5446b77d1..7d3f61f64 100644 --- a/content/showcase/mariosanchez.md +++ b/content/showcase/mariosanchez.md @@ -5,10 +5,10 @@ description: "" license: "" licenseLink: "" sitelink: http://mariosanchez.org/ -sourceLink: https://github.com/mariobox/Hugo-Source +sourcelink: https://github.com/mariobox/Hugo-Source tags: - personal - blog -thumbnail: /images/mariosanchez-tn.jpg +image: mariosanchez-tn.jpg title: mariosanchez.org --- diff --git a/content/showcase/mayan-edms.md b/content/showcase/mayan-edms.md index ed10627e2..2cf00c43a 100644 --- a/content/showcase/mayan-edms.md +++ b/content/showcase/mayan-edms.md @@ -4,11 +4,11 @@ description: "Free Open Source Document Management System" license: "Apache 2.0" licenseLink: "" sitelink: http://www.mayan-edms.com/ -sourceLink: https://gitlab.com/mayan-edms/website +sourcelink: https://gitlab.com/mayan-edms/website tags: - paperless - floss -thumbnail: /images/mayan-edms-tn.png +image: mayan-edms-tn.png title: Mayan EDMS --- diff --git a/content/showcase/michaelwhatcott.md b/content/showcase/michaelwhatcott.md index 695275e78..28894e115 100644 --- a/content/showcase/michaelwhatcott.md +++ b/content/showcase/michaelwhatcott.md @@ -5,11 +5,11 @@ description: "" license: Simpl-2.0 licenseLink: "" sitelink: http://michaelwhatcott.com/ -sourceLink: https://bitbucket.org/mdwhatcott/michaelwhatcott.com-boilerplate/src +sourcelink: https://bitbucket.org/mdwhatcott/michaelwhatcott.com-boilerplate/src tags: - personal - blog -thumbnail: /images/michaelwhatcott-tn.jpg +image: michaelwhatcott-tn.jpg title: michaelwhatcott --- diff --git a/content/showcase/mongodb-eng-journal.md b/content/showcase/mongodb-eng-journal.md index 13028b57b..a8dd1e1a4 100644 --- a/content/showcase/mongodb-eng-journal.md +++ b/content/showcase/mongodb-eng-journal.md @@ -7,7 +7,7 @@ sitelink: http://engineering.mongodb.com/ tags: - engineering - blog -thumbnail: /images/mongodb-eng-tn.png +image: mongodb-eng-tn.png title: The Mongodb Engineering Journal --- diff --git a/content/showcase/mtbhomer.md b/content/showcase/mtbhomer.md index daec5d567..35269503e 100644 --- a/content/showcase/mtbhomer.md +++ b/content/showcase/mtbhomer.md @@ -4,11 +4,11 @@ description: "Personal website Martijn ten Bhömer" license: "" licenseLink: "" sitelink: https://www.mtbhomer.com/ -sourceLink: https://github.com/mtbhomer/web-portfolio +sourcelink: https://github.com/mtbhomer/web-portfolio tags: - personal - portfolio - design -thumbnail: /images/mtbhomer-tn.png +image: mtbhomer-tn.png title: mtbhomer.com --- diff --git a/content/showcase/nickoneill.md b/content/showcase/nickoneill.md index c1f47ecde..8ba96eb6a 100644 --- a/content/showcase/nickoneill.md +++ b/content/showcase/nickoneill.md @@ -5,11 +5,11 @@ description: "" license: "" licenseLink: "" sitelink: http://blog.nickoneill.name/ -sourceLink: https://github.com/nickoneill/blog.nickoneill.name +sourcelink: https://github.com/nickoneill/blog.nickoneill.name tags: - personal - blog -thumbnail: /images/nickoneill-tn.jpg +image: nickoneill-tn.jpg title: authenticgeek --- diff --git a/content/showcase/ninjaducks.in.md b/content/showcase/ninjaducks.in.md index 35f667c09..880186eb5 100644 --- a/content/showcase/ninjaducks.in.md +++ b/content/showcase/ninjaducks.in.md @@ -5,10 +5,10 @@ description: Personal blog license: "" licenseLink: "" sitelink: http://ninjaducks.in -sourceLink: https://github.com/shivanshuag/shivanshuag.github.io/tree/new +sourcelink: https://github.com/shivanshuag/shivanshuag.github.io/tree/new tags: - personal - blog -thumbnail: /images/ninjaducks-tn.png +image: ninjaducks-tn.png title: ninjaducks.in --- diff --git a/content/showcase/ninya.io.md b/content/showcase/ninya.io.md index 9bce47193..d8c147838 100644 --- a/content/showcase/ninya.io.md +++ b/content/showcase/ninya.io.md @@ -5,11 +5,11 @@ description: "" license: "" licenseLink: "" sitelink: http://blog.ninya.io/ -sourceLink: https://github.com/ninya-io/ninya-io.github.io/tree/dev +sourcelink: https://github.com/ninya-io/ninya-io.github.io/tree/dev tags: - project - blog -thumbnail: /images/ninya-tn.jpg +image: ninya-tn.jpg title: ninya.io --- diff --git a/content/showcase/nodesk.md b/content/showcase/nodesk.md index a237d5925..1f762f612 100644 --- a/content/showcase/nodesk.md +++ b/content/showcase/nodesk.md @@ -6,6 +6,6 @@ sitelink: http://nodesk.co/ tags: - digital nomad - web -thumbnail: /images/nodesk-tn.png +image: nodesk-tn.png title: nodesk.co --- diff --git a/content/showcase/novelist-xyz.md b/content/showcase/novelist-xyz.md index 12744ef0f..989d1bc34 100644 --- a/content/showcase/novelist-xyz.md +++ b/content/showcase/novelist-xyz.md @@ -4,10 +4,10 @@ description: "Peter Y. Chuang - Novelist, Short Story Writer" license: "" licenseLink: "" sitelink: https://novelist.xyz -sourceLink: https://github.com/peterychuang/peterychuang.github.io/tree/source +sourcelink: https://github.com/peterychuang/peterychuang.github.io/tree/source tags: - personal - blog -thumbnail: /images/novelist-xyz.png +image: novelist-xyz.png title: Peter Y. Chuang --- diff --git a/content/showcase/npf.md b/content/showcase/npf.md index 473bdc6bd..d4c4f6d2e 100644 --- a/content/showcase/npf.md +++ b/content/showcase/npf.md @@ -5,11 +5,11 @@ description: "" license: "" licenseLink: "" sitelink: http://npf.io/ -sourceLink: https://github.com/natefinch/npf +sourcelink: https://github.com/natefinch/npf tags: - personal - blog -thumbnail: /images/npf-tn.jpg +image: npf-tn.jpg title: npf.io --- diff --git a/content/showcase/peteraba.md b/content/showcase/peteraba.md index 9362e6a28..2882ee938 100644 --- a/content/showcase/peteraba.md +++ b/content/showcase/peteraba.md @@ -5,11 +5,11 @@ description: "" license: "" licenseLink: "" sitelink: https://peteraba.com/ -sourceLink: https://github.com/peteraba/peteraba.com +sourcelink: https://github.com/peteraba/peteraba.com tags: - personal - blog -thumbnail: /images/peteraba-tn.jpg +image: peteraba-tn.jpg title: peteraba --- diff --git a/content/showcase/rahulrai.md b/content/showcase/rahulrai.md index 2d976c50c..cfa600b38 100644 --- a/content/showcase/rahulrai.md +++ b/content/showcase/rahulrai.md @@ -4,10 +4,10 @@ description: "My Take on Cloud" license: "" licenseLink: "" sitelink: https://rahulrai.in -sourceLink: https://github.com/moonytheloony/Blog-Web +sourcelink: https://github.com/moonytheloony/Blog-Web tags: - personal - blog -thumbnail: /images/rahulrai_in-tn.png +image: rahulrai_in-tn.png title: My Take on Cloud --- diff --git a/content/showcase/rakutentech.md b/content/showcase/rakutentech.md index 0b42bfcf0..ca01ef47b 100644 --- a/content/showcase/rakutentech.md +++ b/content/showcase/rakutentech.md @@ -8,7 +8,7 @@ sitelink: http://techblog.rakuten.co.jp/ tags: - company - blog -thumbnail: /images/rakutentech-tn.png +image: rakutentech-tn.png title: Rakuten Tech Blog --- diff --git a/content/showcase/rdegges.md b/content/showcase/rdegges.md index 9c95fa514..815668681 100644 --- a/content/showcase/rdegges.md +++ b/content/showcase/rdegges.md @@ -4,11 +4,11 @@ description: "The personal website of Randall Degges." license: "Unlicense" licenseLink: "http://unlicense.org/" sitelink: https://www.rdegges.com/ -sourceLink: https://github.com/rdegges/rdegges-www +sourcelink: https://github.com/rdegges/rdegges-www tags: - personal - blog -thumbnail: /images/rdegges-tn.png +image: rdegges-tn.png title: Randall Degges --- diff --git a/content/showcase/readtext.md b/content/showcase/readtext.md index 8cd5e515a..742f20879 100644 --- a/content/showcase/readtext.md +++ b/content/showcase/readtext.md @@ -6,7 +6,7 @@ sitelink: http://readtext.org/ tags: - textfiles - reading -thumbnail: /images/readtext-tn.png +image: readtext-tn.png title: ReadText --- diff --git a/content/showcase/richardsumilang.md b/content/showcase/richardsumilang.md index 3d28f7558..aa94061c5 100644 --- a/content/showcase/richardsumilang.md +++ b/content/showcase/richardsumilang.md @@ -5,13 +5,13 @@ description: "Personal website dedicated to electronics, programming, and review license: "MIT" licenseLink: "https://opensource.org/licenses/MIT" sitelink: http://richardsumilang.com/ -sourceLink: https://github.com/richardsumilang-blog +sourcelink: https://github.com/richardsumilang-blog tags: - personal - blog - technical - electronics - reviews -thumbnail: /images/richardsumilang-tn.png +image: richardsumilang-tn.png title: Richard Sumilang - Top Secret Labs --- diff --git a/content/showcase/rick-cogley-info.md b/content/showcase/rick-cogley-info.md index 007ce107f..f3e69677b 100644 --- a/content/showcase/rick-cogley-info.md +++ b/content/showcase/rick-cogley-info.md @@ -5,12 +5,12 @@ description: Rick Cogley's personal site, powered by Hugo. license: MIT licenseLink: "" sitelink: http://rick.cogley.info/ -sourceLink: https://github.com/RickCogley/RCC-Hugo2015 +sourcelink: https://github.com/RickCogley/RCC-Hugo2015 tags: - personal - blog - rickcogley - japan -thumbnail: /images/rick_cogley_info-tn.jpg +image: rick_cogley_info-tn.jpg title: rick.cogley.info --- diff --git a/content/showcase/ridingbytes.md b/content/showcase/ridingbytes.md index 2b15653cb..ef52195a2 100644 --- a/content/showcase/ridingbytes.md +++ b/content/showcase/ridingbytes.md @@ -10,7 +10,7 @@ tags: - website - blog - tech -thumbnail: /images/ridingbytes-tn.png +image: ridingbytes-tn.png title: RIDING BYTES --- diff --git a/content/showcase/robertbasic.md b/content/showcase/robertbasic.md index 021c913dc..0c44cc08c 100644 --- a/content/showcase/robertbasic.md +++ b/content/showcase/robertbasic.md @@ -5,11 +5,11 @@ description: "Robert Basic is a web developer from Serbia." license: "" licenseLink: "" sitelink: http://robertbasic.com/ -sourceLink: https://github.com/robertbasic/robertbasic.com-hugo +sourcelink: https://github.com/robertbasic/robertbasic.com-hugo tags: - personal - blog -thumbnail: /images/robertbasic-tn.jpg +image: robertbasic-tn.jpg title: Robert Basic's blog --- diff --git a/content/showcase/scottcwilson.md b/content/showcase/scottcwilson.md index 2db26d0de..12af3b958 100644 --- a/content/showcase/scottcwilson.md +++ b/content/showcase/scottcwilson.md @@ -5,11 +5,11 @@ description: Personal portfolio, created with Hugo license: MIT licenseLink: "" sitelink: http://scottcwilson.github.io/ -sourceLink: https://github.com/scottcwilson/hugosite +sourcelink: https://github.com/scottcwilson/hugosite tags: - personal - blog -thumbnail: /images/scottcwilson-tn.png +image: scottcwilson-tn.png title: scottcwilson.com --- diff --git a/content/showcase/shapeshed.md b/content/showcase/shapeshed.md index 518a94290..43184a137 100644 --- a/content/showcase/shapeshed.md +++ b/content/showcase/shapeshed.md @@ -4,11 +4,11 @@ description: Personal blog. license: "" licenseLink: "" sitelink: http://shapeshed.com/ -sourceLink: https://github.com/shapeshed/shapeshed.com +sourcelink: https://github.com/shapeshed/shapeshed.com tags: - personal - blog -thumbnail: /images/shapeshed-tn.png +image: shapeshed-tn.png title: shapeshed.com --- diff --git a/content/showcase/shelan.md b/content/showcase/shelan.md index 9d0661f13..f87443adf 100644 --- a/content/showcase/shelan.md +++ b/content/showcase/shelan.md @@ -5,10 +5,10 @@ description: Shelan's Blog license: MIT licenseLink: "" sitelink: http://shelan.org/ -sourceLink: https://github.com/shelan/my-hugo-site +sourcelink: https://github.com/shelan/my-hugo-site tags: - personal - blog -thumbnail: /images/shelan-tn.png +image: shelan-tn.png title: shelan.org --- \ No newline at end of file diff --git a/content/showcase/silvergeko.md b/content/showcase/silvergeko.md index d4e75de57..9c4c2fcb6 100644 --- a/content/showcase/silvergeko.md +++ b/content/showcase/silvergeko.md @@ -6,7 +6,7 @@ licenseLink: "" sitelink: http://silvergeko.it/ tags: - profesional -thumbnail: /images/silvergeko.jpg +image: silvergeko.jpg title: Silvergeko --- diff --git a/content/showcase/softinio.md b/content/showcase/softinio.md index 1cfc0dd1e..87f0df04e 100644 --- a/content/showcase/softinio.md +++ b/content/showcase/softinio.md @@ -5,11 +5,11 @@ description: Salar Rahmanian Blog license: MIT licenseLink: https://raw.githubusercontent.com/softinio/softinio.com/master/LICENSE sitelink: http://www.softinio.com/ -sourceLink: https://github.com/softinio/softinio.com +sourcelink: https://github.com/softinio/softinio.com tags: - personal - technical - blog -thumbnail: /images/softinio-tn.png +image: softinio-tn.png title: Salar Rahmanian --- diff --git a/content/showcase/spf13.md b/content/showcase/spf13.md index 74bd536fc..c463858fd 100644 --- a/content/showcase/spf13.md +++ b/content/showcase/spf13.md @@ -5,11 +5,11 @@ description: The first Hugo powered website. license: MIT licenseLink: "" sitelink: http://spf13.com/ -sourceLink: https://github.com/spf13/spf13.com +sourcelink: https://github.com/spf13/spf13.com tags: - personal - blog -thumbnail: /images/spf13-tn.jpg +image: spf13-tn.jpg title: spf13.com --- diff --git a/content/showcase/steambap.md b/content/showcase/steambap.md index 155a21d63..d722970ed 100644 --- a/content/showcase/steambap.md +++ b/content/showcase/steambap.md @@ -4,10 +4,10 @@ description: Weilin's blog license: MIT licenseLink: "" sitelink: http://weilinshi.org/ -sourceLink: https://github.com/steambap/weilinshi.org +sourcelink: https://github.com/steambap/weilinshi.org tags: - personal - blog -thumbnail: /images/steambap.png +image: steambap.png title: weilinshi --- diff --git a/content/showcase/stefano.chiodino.md b/content/showcase/stefano.chiodino.md index 3a84655c8..c86b3c169 100644 --- a/content/showcase/stefano.chiodino.md +++ b/content/showcase/stefano.chiodino.md @@ -4,11 +4,11 @@ description: "Personal site + blog" license: "" licenseLink: "" sitelink: https://stefano.chiodino.uk/ -sourceLink: https://github.com/Draga/go-web +sourcelink: https://github.com/Draga/go-web tags: - personal - blog -thumbnail: /images/stefano.chiodino-tn.png +image: stefano.chiodino-tn.png title: stefano.chiodino.uk --- diff --git a/content/showcase/stou.md b/content/showcase/stou.md index 2617fa25a..a50be5af5 100644 --- a/content/showcase/stou.md +++ b/content/showcase/stou.md @@ -5,11 +5,11 @@ description: "Rasmus Stougaard" license: "" licenseLink: "" sitelink: http://stou.dk/ -sourceLink: "https://github.com/stou/stou.github.io" +sourcelink: "https://github.com/stou/stou.github.io" tags: - personal - blog -thumbnail: /images/stou-tn.png +image: stou-tn.png title: stou.dk --- diff --git a/content/showcase/szymonkatra.md b/content/showcase/szymonkatra.md index 9d21dc65c..b64e6a2f4 100644 --- a/content/showcase/szymonkatra.md +++ b/content/showcase/szymonkatra.md @@ -5,11 +5,11 @@ description: Szymon Katra license: "" licenseLink: "" sitelink: http://szymonkatra.github.io/ -sourceLink: https://github.com/SzymonKatra/SzymonKatra.github.io/tree/master/hugo_project +sourcelink: https://github.com/SzymonKatra/SzymonKatra.github.io/tree/master/hugo_project tags: - personal - blog -thumbnail: /images/szymonkatra-tn.png +image: szymonkatra-tn.png title: szymonkatra.github.io --- diff --git a/content/showcase/techmadeplain.md b/content/showcase/techmadeplain.md index 708543fc0..9ae641e32 100644 --- a/content/showcase/techmadeplain.md +++ b/content/showcase/techmadeplain.md @@ -8,7 +8,7 @@ sitelink: http://techmadeplain.com/ tags: - personal - blog -thumbnail: /images/techmadeplain-tn.jpg +image: techmadeplain-tn.jpg title: Tech Made Plain --- diff --git a/content/showcase/tendermint.md b/content/showcase/tendermint.md index 8772cc5dd..48e37f7c3 100644 --- a/content/showcase/tendermint.md +++ b/content/showcase/tendermint.md @@ -5,10 +5,10 @@ description: "" license: "" licenseLink: "" sitelink: http://tendermint.com/ -sourceLink: https://github.com/tendermint/tendermint.github.io +sourcelink: https://github.com/tendermint/tendermint.github.io tags: - project -thumbnail: /images/tendermint-tn.jpg +image: tendermint-tn.jpg title: tendermint --- diff --git a/content/showcase/thecodeking.md b/content/showcase/thecodeking.md index 6026cbb84..eec7def7a 100644 --- a/content/showcase/thecodeking.md +++ b/content/showcase/thecodeking.md @@ -7,7 +7,7 @@ sitelink: http://thecodeking.co.uk tags: - personal - blog -thumbnail: /images/thecodeking-tn.png +image: thecodeking-tn.png title: thecodeking --- diff --git a/content/showcase/thehome.md b/content/showcase/thehome.md index 95f102776..b1103a7a8 100644 --- a/content/showcase/thehome.md +++ b/content/showcase/thehome.md @@ -5,11 +5,11 @@ description: "Tom Helmer Hansen" license: "" licenseLink: "" sitelink: http://www.thehome.dk/ -sourceLink: "https://github.com/tomhelmer/website-source" +sourcelink: "https://github.com/tomhelmer/website-source" tags: - personal - blog -thumbnail: /images/thehome-tn.png +image: thehome-tn.png title: thehome.dk --- diff --git a/content/showcase/tutorialonfly.md b/content/showcase/tutorialonfly.md index 8af4e1f93..542298390 100644 --- a/content/showcase/tutorialonfly.md +++ b/content/showcase/tutorialonfly.md @@ -10,6 +10,6 @@ tags: - free - ebook download - fast -thumbnail: /images/tutorialonfly-tn.jpg +image: tutorialonfly-tn.jpg title: Tutorialonfly --- \ No newline at end of file diff --git a/content/showcase/ucsb.md b/content/showcase/ucsb.md index 69391d7e1..f7a424a93 100644 --- a/content/showcase/ucsb.md +++ b/content/showcase/ucsb.md @@ -5,10 +5,10 @@ description: "" license: "" licenseLink: "" sitelink: http://philosophy.ucsb.edu/ -sourceLink: https://github.com/ucsbphil/philweb +sourcelink: https://github.com/ucsbphil/philweb tags: - education -thumbnail: /images/ucsb-tn.jpg +image: ucsb-tn.jpg title: ucsb --- diff --git a/content/showcase/upbeat.md b/content/showcase/upbeat.md index 59bfad136..f2bf11b06 100644 --- a/content/showcase/upbeat.md +++ b/content/showcase/upbeat.md @@ -4,10 +4,10 @@ description: "Blog by Rocchi Cesare" license: "" licenseLink: "" sitelink: http://upbeat.it/ -sourceLink: +sourcelink: tags: - personal - blog -thumbnail: /images/upbeat.png +image: upbeat.png title: upbeat --- diff --git a/content/showcase/vamp.md b/content/showcase/vamp.md index a8a7a48b6..b45608408 100644 --- a/content/showcase/vamp.md +++ b/content/showcase/vamp.md @@ -10,7 +10,7 @@ tags: - documentation - company - api -thumbnail: /images/vamp_landingpage-tn.png +image: vamp_landingpage-tn.png title: Vamp.io --- diff --git a/content/showcase/viglug.org.md b/content/showcase/viglug.org.md index efc3b4363..5c2aa9b43 100644 --- a/content/showcase/viglug.org.md +++ b/content/showcase/viglug.org.md @@ -9,7 +9,7 @@ tags: - tech - linux - user group -thumbnail: /images/viglug-tn.png +image: viglug-tn.png title: Viglug.org --- diff --git a/content/showcase/vurt.co.md b/content/showcase/vurt.co.md index dea732a27..a703e37a0 100644 --- a/content/showcase/vurt.co.md +++ b/content/showcase/vurt.co.md @@ -5,11 +5,11 @@ description: "" license: "" licenseLink: "" sitelink: http://vurt.co.uk/ -sourceLink: https://github.com/gilesp/vurtcouk +sourcelink: https://github.com/gilesp/vurtcouk tags: - personal - blog -thumbnail: /images/vurt.co-tn.jpg +image: vurt.co-tn.jpg title: vurt.co.uk --- diff --git a/content/showcase/yslow-rules.md b/content/showcase/yslow-rules.md index 61938961c..6ece7d638 100644 --- a/content/showcase/yslow-rules.md +++ b/content/showcase/yslow-rules.md @@ -5,12 +5,12 @@ description: Community project of YSlow rules translations license: MIT License licenseLink: https://raw.github.com/checkmyws/yslow-rules/master/LICENSE sitelink: http://checkmyws.github.io/yslow-rules/ -sourceLink: https://github.com/checkmyws/yslow-rules +sourcelink: https://github.com/checkmyws/yslow-rules tags: - community - documentation - translation -thumbnail: /images/yslow-rules-tn.png +image: yslow-rules-tn.png title: YSlow Rules --- diff --git a/content/showcase/ysqi.md b/content/showcase/ysqi.md index 682f8e907..1b888b296 100644 --- a/content/showcase/ysqi.md +++ b/content/showcase/ysqi.md @@ -4,10 +4,10 @@ description: "虞双齐个人博客" license: "MIT" licenseLink: "https://opensource.org/licenses/MIT" sitelink: https://www.yushuangqi.com/ -sourceLink: https://github.com/ysqi/yushuangqi.com/ +sourcelink: https://github.com/ysqi/yushuangqi.com/ tags: - personal - blog -thumbnail: /images/ysqi-blog.png +image: ysqi-blog.png title: yushuangqi-blog --- diff --git a/content/showcase/yulinling.net.md b/content/showcase/yulinling.net.md index bb1a1e7df..ec2c7b84f 100644 --- a/content/showcase/yulinling.net.md +++ b/content/showcase/yulinling.net.md @@ -5,10 +5,10 @@ description: Multilingual, blog license: "" licenseLink: "" sitelink: https://yulinling.net/ -sourceLink: https://bitbucket.org/lynxiayel/yulinling_source_public +sourcelink: https://bitbucket.org/lynxiayel/yulinling_source_public tags: - blog - documentation -thumbnail: /images/yulinling-tn.png +image: yulinling-tn.png title: 语林灵 (Yulinling) --- diff --git a/content/templates/_index.md b/content/templates/_index.md index 1f5b58285..2cc2cbd36 100644 --- a/content/templates/_index.md +++ b/content/templates/_index.md @@ -1,6 +1,6 @@ --- -title: Templates -linktitle: Templates +title: Overview +linktitle: Overview description: Golang templating, template types and lookup order, shortcodes, and data. date: 2017-02-01 publishdate: 2017-02-01 @@ -12,5 +12,5 @@ draft: false slug: aliases: toc: false -notes: +notesforauthors: --- diff --git a/content/templates/ace-templating.md b/content/templates/ace-templating.md index 38524336b..b40a04af5 100644 --- a/content/templates/ace-templating.md +++ b/content/templates/ace-templating.md @@ -1,19 +1,18 @@ --- title: Ace Templating linktitle: -description: +description: In addition to Go templates and Amber templates, Hugo supports the powerful Ace templating from @yosssi. godocref: https://godoc.org/github.com/yosssi/ace date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 weight: tags: [] -categories: [templates] +categories: [amber, templating options] draft: false -slug: aliases: [] toc: false -notes: +notesforauthors: --- In addition to [Go templates][] and [Amber templates][], Hugo supports the powerful Ace templates. diff --git a/content/templates/amber-templating.md b/content/templates/amber-templating.md index b02f571b1..2f2458669 100644 --- a/content/templates/amber-templating.md +++ b/content/templates/amber-templating.md @@ -1,22 +1,21 @@ --- title: Amber Templating linktitle: -description: +description: In addition to Go templates and Ace templates, Hugo supports the powerful Amber templating from @eknkc. godocref: https://godoc.org/github.com/eknkc/amber date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 weight: -tags: [amber,layout] categories: [templates] +tags: [amber, templating options] draft: false -slug: [/templates/amber/] -aliases: +aliases: [/templates/amber/] toc: false -notes: +notesforauthors: --- -Amber templates are another template type which Hugo supports, in addition to [Go templates][] and [Ace templates][] templates. +Hugo also supports the Amber templating engine in addition to [Go templates][] and [Ace templates][] templates. For template documentation, follow the links from the [Amber project][]. diff --git a/content/templates/base-templates-and-blocks.md b/content/templates/base-templates-and-blocks.md index 1f79be67b..b19dfda6e 100644 --- a/content/templates/base-templates-and-blocks.md +++ b/content/templates/base-templates-and-blocks.md @@ -7,13 +7,12 @@ date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 weight: -tags: [blocks,base] categories: [templates] +tags: [blocks,base,fundamentals] draft: false -slug: aliases: [/templates/blocks/] -toc: false -notes: +toc: true +notesforauthors: --- ## Base Template Lookup Order \ No newline at end of file diff --git a/content/templates/content-view-templates.md b/content/templates/content-view-templates.md index 6a35b099a..a7543fdeb 100644 --- a/content/templates/content-view-templates.md +++ b/content/templates/content-view-templates.md @@ -12,5 +12,5 @@ draft: false slug: aliases: [/templates/views/] toc: false -notes: +notesforauthors: --- diff --git a/content/templates/custom-404-page.md b/content/templates/custom-404-page.md index b3013961e..5b97bb53a 100644 --- a/content/templates/custom-404-page.md +++ b/content/templates/custom-404-page.md @@ -12,5 +12,5 @@ draft: false slug: aliases: [] toc: false -notes: +notesforauthors: --- diff --git a/content/templates/data-templates.md b/content/templates/data-templates.md index 00fb880fc..113a59a81 100644 --- a/content/templates/data-templates.md +++ b/content/templates/data-templates.md @@ -12,5 +12,5 @@ draft: false slug: aliases: toc: false -notes: +notesforauthors: --- diff --git a/content/templates/go-template-primer.md b/content/templates/go-template-primer.md index 0961aafd9..a94af5387 100644 --- a/content/templates/go-template-primer.md +++ b/content/templates/go-template-primer.md @@ -13,7 +13,7 @@ draft: false slug: aliases: [/templates/go-templates/] toc: true -notes: +notesforauthors: --- Hugo uses the excellent [Go html/template][] library, an extremely lightweight engine that provides just the right amount of logic to be able to create a good static website. If you have used other template systems from different languages or frameworks, you will find a lot of similarities in Go templates. @@ -28,23 +28,19 @@ A unique characteristic of Go templates is they are content aware. Variables and ## Basic Syntax -Golang templates are HTML files with the addition of [variables][variablesparams] and [functions][hugofunctions]. +Golang templates are HTML files with the addition of [variables][variablesparams] and [functions][hugofunctions]. Golang template variables and functions are accessible within `{{ }}`. -**Go variables and functions are accessible within {{ }}** - -Accessing a predefined variable "foo": +### Accessing a Predefined Variable ```golang {{ foo }} ``` -**Parameters are separated using spaces** - -Calling the `add` function with input of 1, 2: +Parameters for functions are separated using spaces. The following example calls the `add` function with inputs of `1` and `2`: ```golang {{ add 1 2 }} -``` +```d **Methods and fields are accessed via dot notation** diff --git a/content/templates/homepage-template.md b/content/templates/homepage-template.md index 202240cc3..1e5c08ead 100644 --- a/content/templates/homepage-template.md +++ b/content/templates/homepage-template.md @@ -12,5 +12,5 @@ draft: false slug: aliases: [/layout/homepage/,/templates/homepage/] toc: false -notes: +notesforauthors: --- \ No newline at end of file diff --git a/content/templates/list-and-section-templates.md b/content/templates/list-and-section-templates.md index ce7dca3a8..5fea25b20 100644 --- a/content/templates/list-and-section-templates.md +++ b/content/templates/list-and-section-templates.md @@ -12,7 +12,7 @@ draft: false slug: aliases: [/templates/list/] toc: false -notes: +notesforauthors: --- ## Understanding what is Meant by a "List" Page diff --git a/content/templates/local-file-templates.md b/content/templates/local-file-templates.md new file mode 100644 index 000000000..64479011e --- /dev/null +++ b/content/templates/local-file-templates.md @@ -0,0 +1,60 @@ +--- +title: Local File Templates +linktitle: Local File Templates +description: +date: 2017-02-01 +publishdate: 2017-02-01 +lastmod: 2017-02-01 +categories: [templates] +tags: [files] +draft: false +weight: +aliases: [/extras/localfiles/] +toc: false +notesforauthors: +--- + +## Traversing Local Files + +Using Hugo's function `readDir`, +you can traverse your web site's files on your server. +## Using _readDir_ + +The `readDir` function returns an array +of [`os.FileInfo`](https://golang.org/pkg/os/#FileInfo). +It takes a single, string argument: a path. +This path can be to any directory of your web site +(as found on your server's filesystem). + +Whether the path is absolute or relative makes no difference, +because—at least for `readDir`—the root of your web site (typically `./public/`) +in effect becomes both: + +1. The filesystem root; and +1. The current working directory. + +## New Shortcode + +So, let's create a new shortcode using `readDir`: + +**layouts/shortcodes/directoryindex.html** +```html +{{< readfile "layouts/shortcodes/directoryindex.html" >}} +``` +For the files in any given directory, +this shortcode usefully lists their basenames and sizes, +while providing links to them. + +Already—actually—this shortcode +has been included in this very web site. +So, let's list some of its CSS files. +(If you click on their names, you can reveal the contents.) +{{< directoryindex path="/static/css" pathURL="/css" >}} +
+This is the call that rendered the above output: +```html +{{}} +``` +By the way, +regarding the pathURL argument, the initial slash `/` is important. +Otherwise, it becomes relative to the current web page. \ No newline at end of file diff --git a/content/templates/menu-templates.md b/content/templates/menu-templates.md index 4650de13f..6a3a0eb22 100644 --- a/content/templates/menu-templates.md +++ b/content/templates/menu-templates.md @@ -12,6 +12,6 @@ draft: false slug: aliases: [/extras/menus/] toc: false -notes: +notesforauthors: --- diff --git a/content/templates/pagination.md b/content/templates/pagination.md index 5664ea634..d95021a1d 100644 --- a/content/templates/pagination.md +++ b/content/templates/pagination.md @@ -12,5 +12,5 @@ draft: false slug: aliases: [/extras/pagination] toc: false -notes: +notesforauthors: --- diff --git a/content/templates/partial-templates.md b/content/templates/partial-templates.md index c550877b7..0445782e1 100644 --- a/content/templates/partial-templates.md +++ b/content/templates/partial-templates.md @@ -12,7 +12,7 @@ draft: false slug: aliases: [/templates/partials/] toc: true -notes: +notesforauthors: --- ## Partials vs Templates diff --git a/content/templates/rss-templates.md b/content/templates/rss-templates.md index f91c046ad..33be2e700 100644 --- a/content/templates/rss-templates.md +++ b/content/templates/rss-templates.md @@ -12,5 +12,5 @@ draft: false slug: aliases: [/templates/rss/] toc: false -notes: +notesforauthors: --- \ No newline at end of file diff --git a/content/templates/shortcode-templates.md b/content/templates/shortcode-templates.md new file mode 100644 index 000000000..a22c1ebb5 --- /dev/null +++ b/content/templates/shortcode-templates.md @@ -0,0 +1,267 @@ +--- +title: Shortcode Templates +linktitle: Shortcode Templates +description: +date: 2017-02-01 +publishdate: 2017-02-01 +lastmod: 2017-02-01 +weight: +categories: [templates] +tags: [shortcodes] +draft: false +aliases: [] +toc: true +notesforauthors: +--- + +## Creating Custom Shortcodes + +Hugo's built-in shortcodes cover many common, but not all, use cases. Luckily, Hugo provides the ability to easily create custom shortcodes to meet your website's needs. In this sense, you can think of shortcodes as the intermediary between [page and list templates][templatessection] and [basic content files][]. + +### File Placement + +To create a shortcode, place an HTML template in the `layouts/shortcodes` directory of your [source organization][directorystructurepage]. Consider the file name carefully since the shortcode name will mirror that of the file but without the `.html` extension. For example, `layouts/shortcodes/myshortcode.html` will be called with either `{{}}` or `{{%/* myshortcode /*/%}}` depending on the type of parameters you choose. + +### Deciding on Shortcode and Parameter Type + +You can create the following types of shortcodes + +* Positional parameters +* Named parameters +* Both positional or named parameters (i.e, "flexible") +* Single-word shortcodes +* Nested + +#### Positional Parameters + +In shortcodes with positional parameters, the order of the parameters is important. + +you can choose if the shortcode will use _positional parameters_, or _named parameters_, or _both_. A good rule of thumb is that if a shortcode has a single required value in the case of the `youtube` example below, then positional works very well. For more complex layouts with optional parameters, named parameters work best. Allowing both types of parameters is useful for complex layouts where you want to set default values that can be overridden. + +### Accessing Parameters + +To access a parameter in any shortcode, use the `.Get` method. Whether you pass a key (string) or a number to the `.Get` method depends on whether you are accessing a named or positional parameter, respectively. + +To access a parameter by name, the `.Get` method followed by the named parameter as a quoted string. Named parameters are less terse but do not require that a content author be mindful of the order of parameters. + +```golang +{{ .Get "class" }} +``` + +To access a parameter by position, the `.Get` method can be used, keeping in mind that the first positional parameter within the shortcode declaration starts at `0`: + +```golang +{{ .Get 0 }} +``` + +`with` is great when the output depends on a parameter being set: + +```golang +{{ with .Get "class"}} class="{{.}}"{{ end }} +``` + +`.Get` can also be used to check if a parameter has been provided. This is +most helpful when the condition depends on either of the values, or both: + +```golang +{{ or .Get "title" | .Get "alt" | if }} alt="{{ with .Get "alt"}}{{.}}{{else}}{{.Get "title"}}{{end}}"{{ end }} +``` + +If a closing shortcode is used, the variable `.Inner` will be populated with all of the content between the opening and closing shortcodes. If a closing shortcode is required, you can check the length of `.Inner` and provide a warning to the user. + +A shortcode with `.Inner` content can be used without the inline content, and without the closing shortcode, by using the self-closing syntax: + +```golang +{{}} +``` + +The variable `.Params` contains the list of parameters in case you need to do more complicated things than `.Get`. It is sometimes useful to provide a flexible shortcode that can take named or positional parameters. To meet this need, Hugo shortcodes have `.IsNamedParams`, a boolean available that can be used such as `{{ if .IsNamedParams }}...{{ else }}...{{ end }}`. See the [example Vimeo shortcode][vimeoexample] below for an example. + +You can also use the variable `.Page` to access all the normal [page variables][pagevariablespage]. + +A shortcodes can also be nested. In a nested shortcode, you can access the parent shortcode context with [`.Parent` variable][shortcodesvariablespage]. This can be very useful for inheritance of common shortcode parameters from the root. + +## Custom Shortcode Examples + +The following are examples of the different types of shortcodes you can create via template files in `/layouts/shortcodes`. + +### Single-word Example: `year` + +Let's assume you would like to keep mentions of your copyright year current in your content files without having to continually review your markdown. Your goal is to be able to call the shortcode as follows: + +```markdown +{{}} +``` + +{{% input "/layouts/shortcodes/year.html" %}} +```golang +{{ .Page.Now.Year }} +``` +{{% /input %}} + +### Single Positional Example: `youtube` + +Embedded videos are a common addition to markdown content that can quickly become unsightly. The following is the code used by [Hugo's built-in YouTube shortcode][youtubeshortcode] + +```golang +{{}} +``` + +Would load the template at `/layouts/shortcodes/youtube.html`: + +{{% input "/layouts/shortcodes/youtube.html" %}} +```html +
+ +
+``` +{{% /input %}} + + + +{{% output "youtube-embed.html" %}} +```html +
+ +
+``` +{{% /output %}} + +### Single Named Example: `image` + +Let's say you want to create your own `img` shortcode rather than use Hugo's built-in [`figure` shortcode][]. Your goal is to be able to call the shortcode as follows in your content files: + +{{% input "content-image.md" %}} +```golang +{{}} +``` +{{% /input %}} + +You have created the shortcode at `/layouts/shortcodes/img.html`, which loads the following shortcode template: + +{{% input "/layouts/shortcodes/img.html" %}} +```html + +
+ {{ with .Get "link"}}{{ end }} + + {{ if .Get "link"}}{{ end }} + {{ if or (or (.Get "title") (.Get "caption")) (.Get "attr")}} +
{{ if isset .Params "title" }} +

{{ .Get "title" }}

{{ end }} + {{ if or (.Get "caption") (.Get "attr")}}

+ {{ .Get "caption" }} + {{ with .Get "attrlink"}} {{ end }} + {{ .Get "attr" }} + {{ if .Get "attrlink"}} {{ end }} +

{{ end }} +
+ {{ end }} +
+ +``` +{{% /input %}} + +Would be rendered as: + +{{% output "figure.html" %}} +```html +
+ +
+

Steve Francia

+
+
+``` +{{% /output %}} + +### Single Flexible Example: `vimeo` + +```golang +{{}} +{{}} +``` + +Would load the template found at `/layouts/shortcodes/vimeo.html`: + +{{% input "/layouts/shortcodes/vimeo.html" %}} +```html +{{ if .IsNamedParams }} +
+ +
+{{ else }} +
+ +
+{{ end }} +``` +{{% /input %}} + +Would be rendered as: + +{{% output "vimeo-iframes.html" %}} +```html +
+ +
+
+ +
+``` +{{% /output %}} + +### Paired Example: `highlight` + +The following is taken from `highlight`, which is a [built-in shortcode][] that ships with Hugo. + +{{% input "highlight-example.md" %}} +```markdown +{{}} + + This HTML + +{{}} +``` +{{% /input %}} + +The template for the `highlight` shortcode uses the following code, which is already included in Hugo: + +```golang +{{ .Get 0 | highlight .Inner }} +``` + +The rendered output of the HTML example code block will be as follows: + +{{% output "syntax-highlighted.html" %}} +```html +
<html>
+    <body> This HTML </body>
+</html>
+
+``` +{{% /output %}} + +{{% note %}} +The preceding shortcode makes use of a Hugo-specific template function called `highlight`, which uses [Pygments](http://pygments.org) to add syntax highlighting to the example HTML code block. See the [developer tools page on syntax highlighting](/developer-tools/syntax-highlighting/) for more information. +{{% /note %}} + +## More Shortcode Examples + +More shortcode examples can be found in the [shortcodes directory for spf13.com][spf13shortcodesdirectory] and the [shortcodes directory for the Hugo docs][docsshortcodesdirectory]. + +[built-in shortcode]: /content-management/shortcodes/ +[directorystructurepage]: /getting-started/directory-structure/ "Learn how Hugo scaffolds new sites and what it expects to find in each of your directories." +[docsshortcodesdirectory]: https://github.com/spf13/hugo/tree/master/docs/layouts/shortcodes "See the shortcode source directory for the documentation site you're currently reading." +[basic content files]: /content-management/supported-content-formats/ "See how Hugo leverages markdown--and other supported formats--to create content for your website." +[pagevariablespage]: /variables-and-params/page-variables/ "See which variables you can leverage in your templating for page vs list templates." +[shortcodesvariablespage]: /variables-and-params/shortcode-variables/ "Certain variables are specific to shortcodes, although most .Page variables can be accessed within your shortcode template." +[spf13shortcodesdirectory]: https://github.com/spf13/spf13.com/tree/master/layouts/shortcodes "See more examples of shortcodes by visiting the shortcode directory of the source for spf13.com, the blog of Hugo's creator, Steve Francia." +[templatessection]: /templates/ "The templates section of the Hugo docs." +[vimeoexample]: #single-flexible-example-vimeo +[youtubeshortcode]: /content-management/shortcodes/#youtube "See how to use Hugo's built-in YouTube shortcode." \ No newline at end of file diff --git a/content/templates/single-page-templates.md b/content/templates/single-page-templates.md index 06abc8be0..51c3a6994 100644 --- a/content/templates/single-page-templates.md +++ b/content/templates/single-page-templates.md @@ -12,7 +12,7 @@ draft: false slug: aliases: [] toc: false -notes: +notesforauthors: --- ## Lookup Order for Single Page Templates \ No newline at end of file diff --git a/content/templates/sitemap-template.md b/content/templates/sitemap-template.md index 31bb77f98..fc3217efc 100644 --- a/content/templates/sitemap-template.md +++ b/content/templates/sitemap-template.md @@ -12,5 +12,5 @@ draft: false slug: aliases: [] toc: false -notes: +notesforauthors: --- \ No newline at end of file diff --git a/content/templates/taxonomy-templates.md b/content/templates/taxonomy-templates.md index a73c7ef3b..62143e018 100644 --- a/content/templates/taxonomy-templates.md +++ b/content/templates/taxonomy-templates.md @@ -12,9 +12,14 @@ draft: false slug: aliases: [] toc: true -notes: +notesforauthors: --- -## Taxonomy Templates +## Taxonomy Terms Page Templates + +### Lookup Order for Taxonomy Terms Page Templates + +## Taxonomy List Page Templates + +### Lookup Order for Taxonomy List Page Templates -## Terms Templates \ No newline at end of file diff --git a/content/templates/template-debugging.md b/content/templates/template-debugging.md index 4066cb92a..ba12c1edb 100644 --- a/content/templates/template-debugging.md +++ b/content/templates/template-debugging.md @@ -12,5 +12,5 @@ draft: false slug: aliases: [] toc: false -notes: +notesforauthors: --- \ No newline at end of file diff --git a/content/themes/_index.md b/content/themes/_index.md index 8afc0fd83..9e3c05c90 100644 --- a/content/themes/_index.md +++ b/content/themes/_index.md @@ -1,16 +1,23 @@ --- -title: Introduction to Themes -linktitle: +title: Overview +linktitle: Overview description: Install, use, and create Hugo themes. date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 weight: 01 -categories: [] -tags: [] +categories: [themes] +tags: [themes,introduction,overview] draft: false -slug: -aliases: +aliases: [/themes/overview/] toc: false -notes: ---- \ No newline at end of file +--- + +Hugo provides a robust theming system that is easy to implement but capable of producing even the most complicated websites. They are the perfect balance between simplicity and functionality. + +The Hugo community has created a large number of diverse themes, all of which are featured in a separate [Hugo themes website][hugothemes]. + +Hugo themes are powered by the excellent Go template library. If you are new to Go templates, see our [primer on Go templates][goprimer] and are structured in such a way to eliminate code duplication. They are easy to simultaneously customize while retaining upgradability with the upstream theme. + +[goprimer]: /templates/go-template-primer/ +[hugothemes]: http://themes.gohugo.io/ diff --git a/content/themes/creating-a-theme.md b/content/themes/creating-a-theme.md new file mode 100644 index 000000000..9711da899 --- /dev/null +++ b/content/themes/creating-a-theme.md @@ -0,0 +1,20 @@ +--- +title: Creating a Theme +linktitle: Creating a Theme +description: Learn to use the `hugo new theme` command and the resulting directory structure to create custom themes that can be dropped into other Hugo sites. +date: 2017-02-01 +publishdate: 2017-02-01 +lastmod: 2017-02-01 +categories: [themes] +tags: [themes, source, organization, directories] +weight: 30 +draft: false +aliases: [/themes/creation/] +toc: false +--- + + +{{% warning "Use Proper Cross References" %}} +When creating your theme, it is not always safe to assume that the end user of the theme is working from the root directory of the website. That said, whenever possible, +{{% /warning %}} + diff --git a/content/themes/customizing-a-theme.md b/content/themes/customizing-a-theme.md new file mode 100644 index 000000000..c35a6495c --- /dev/null +++ b/content/themes/customizing-a-theme.md @@ -0,0 +1,15 @@ +--- +title: Customizing a Theme +linktitle: Customizing a Theme +description: Customize a theme by overriding theme layouts and static assets in your top-level project directories. +date: 2017-02-01 +publishdate: 2017-02-01 +lastmod: 2017-02-01 +categories: [themes] +tags: [themes, source, organization, directories] +weight: 20 +draft: false +aliases: [/themes/customizing/,/themes/customize/] +toc: false +--- + diff --git a/content/themes/installing-and-using-themes.md b/content/themes/installing-and-using-themes.md new file mode 100644 index 000000000..5f58dc11e --- /dev/null +++ b/content/themes/installing-and-using-themes.md @@ -0,0 +1,102 @@ +--- +title: Installing and Using Themes +linktitle: Installing and Using Themes +description: Install and use a Hugo theme from the Hugo theme showcase easily through the CLI. +date: 2017-02-01 +publishdate: 2017-02-01 +lastmod: 2017-02-01 +categories: [themes] +tags: [install, themes, source, organization, directories,usage] +weight: 10 +draft: false +aliases: [/themes/usage/,/themes/installing/] +toc: true +--- + +{{% note "No Default Theme" %}} +Hugo currently doesn’t ship with a “default” theme. This decision is intentional. We leave it up to you to decide which theme best suits your Hugo project. +{{% /note %}} + +## Installing Themes + +The community-contributed themes featured at [themes.gohugo.io](//themes.gohugo.io/), are hosted in a [centralized GitHub repository][themesrepo]. The Hugo Themes Repo at is really a meta repository that contains pointers to a set of contributed themes. + +{{% warning "Get `git` First" %}} +Without [Git](https://git-scm.com/) installed on your computer, none of the following theme instructions will work. Git tutorials are beyond the scope of the Hugo docs, but [GitHub](https://try.github.io/) and [codecademy](https://www.codecademy.com/learn/learn-git) offer free, interactive courses for beginners. +{{% /warning %}} + +### Installing All Themes + +You can install *all* available Hugo themes by cloning the entire [Hugo Theme repository on GitHub][themesrepo] from within your working directory. Depending on your internet connection the download of all themes might take a while. + +```bash +git clone --depth 1 --recursive https://github.com/spf13/hugoThemes.git themes +``` + +Before you use a theme, remove the .git folder in that theme's root folder. Otherwise, this will cause problem if you deploy using Git. + +### Installing a Single Theme + +Change into the `themes` directory and download a theme by replacing `URL_TO_THEME` with the URL of the theme repository: + +```bash +cd themes +git clone URL_TO_THEME +``` + +The following example shows how to use the "Hyde" theme, which has its source hosted at : + +{{% input "clone-theme.sh" %}} +```bash +cd themes +git clone https://github.com/spf13/hyde +``` +{{% /input %}} + +Alternatively, you can download the theme as a `.zip` file, unzip the theme contents, and then move the unzipped source into your `themes` directory. + +{{% note "Read the `README`" %}} +Always review the `README.md` file that is shipped with a theme. Often, these files contain further instructions required for theme setup; e.g., copying values from an example configuration file. +{{% /note %}} + +## Theme Placement + +Please make certain you have installed the themes you want to use in the +`/themes` directory. This is the default directory used by Hugo. Hugo comes with the ability to change the themes directory via the [`themesDir` variable in your site configuration][configuration], but this is not recommended. + +## Using Themes + +Hugo applies the decided theme first and then applies anything that is in the local directory. This allows for easier customization while retaining compatibility with the upstream version of the theme. To learn more, go to [customizing themes][customizethemes]. + +### Command Line + +There are two different approaches to using a theme with your Hugo website: via the Hugo CLI or as part of your + +To change a theme via the Hugo CLI, you can pass the `-t` [flag][] when building your site: + +```bash +hugo -t themename +``` + +Likely, you will want to add the theme when running the Hugo local server, especially if you are going to [customize the theme][customizethemes]: + +```bash +hugo server -t themename +``` + +### `config` File + +If you've already decided on the theme for your site and do not want to fiddle with the command line, you can add the theme directly to your [site configuration file][configuration]: + +```yaml +theme: themename +``` + +{{% note "A Note on `themename`" %}} +The `themename` in the above examples must match the name of the specific theme directory inside `/themes`; i.e., the directory name (likely lowercase and urlized) rather the (likely humanized) name of the theme displayed in the [Themes Showcase site](http://themes.gohugo.io). +{{% /note %}} + +[customizethemes]: /themes/customizing-a-theme/ +[flag]: /developer-tools/hugo-command-line-reference/#flags "See the full list of flags available via the Hugo CLI." +[configuration]: /project-organization/configuration/ "Learn how to customize your Hugo website configuration file in yaml, toml, or json." +[themesrepo]: https://github.com/spf13/hugoThemes \ No newline at end of file diff --git a/content/themes/theme-showcase.md b/content/themes/theme-showcase.md new file mode 100644 index 000000000..8503a099d --- /dev/null +++ b/content/themes/theme-showcase.md @@ -0,0 +1,15 @@ +--- +title: Theme Showcase +linktitle: Theme Showcase +description: Hugo has an ever-growing selection of community-developed themes for you to use in your Hugo site completely free. The Theme Showcase is a separate, Hugo-driven website. +redirecturl: "http://themes.gohugo.io/" +date: 2017-02-01 +publishdate: 2017-02-01 +lastmod: 2017-02-01 +categories: [themes] +tags: [themes, showcase] +weight: 40 +draft: false +aliases: [] +toc: false +--- \ No newline at end of file diff --git a/content/troubleshooting/_index.md b/content/troubleshooting/_index.md index 5c2d598ed..7fca43771 100644 --- a/content/troubleshooting/_index.md +++ b/content/troubleshooting/_index.md @@ -1,6 +1,6 @@ --- -title: Troubleshooting -linktitle: Troubleshooting +title: Overview +linktitle: Overview description: Frequently asked questions and known issues pulled from the Hugo Discuss forum. date: 2017-02-01 publishdate: 2017-02-01 @@ -11,6 +11,13 @@ hidesectioncontents: false slug: aliases: [/troubleshooting/faqs/,/faqs/] toc: false -notes: +notesforauthors: --- +The Troubleshooting section includes known issues, recent workarounds, and FAQs pulled from the [Hugo Discussion Forum][]. + + + + +[Hugo Discussion Forum]: https://discuss.gohugo.io + diff --git a/content/troubleshooting/accented-characters-in-urls.md b/content/troubleshooting/accented-characters-in-urls.md index 5a7b479c6..a2036adb6 100644 --- a/content/troubleshooting/accented-characters-in-urls.md +++ b/content/troubleshooting/accented-characters-in-urls.md @@ -12,7 +12,7 @@ draft: false slug: aliases: [/troubleshooting/categories-with-accented-characters/] toc: true -notes: "All troubleshooting docs should include two h2-headings, one for 'Trouble:' and one for 'Solution:'. Additional h2-headings include 'Discussion Forum Threads', 'Related Hugo Issues', and 'Additional References'." +notesforauthors: "All troubleshooting docs should include two h2-headings, one for 'Trouble:' and one for 'Solution:'. Additional h2-headings include 'Discussion Forum Threads', 'Related Hugo Issues', and 'Additional References'." --- ## Trouble: Categories with accented characters diff --git a/content/troubleshooting/eof-error.md b/content/troubleshooting/eof-error.md index 3122c52a4..fbb4f7c7e 100644 --- a/content/troubleshooting/eof-error.md +++ b/content/troubleshooting/eof-error.md @@ -5,13 +5,12 @@ description: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -tags: [eof, end of file, error, faqs] categories: [troubleshooting] -weight: +tags: [eof, end of file, error, faqs] draft: false -aliases: [] +weight: +aliases: [/troubleshooting/strange-eof-error/] toc: true -notes: "All troubleshooting docs should include two h2-headings, one for 'Trouble:' and one for 'Solution:'. Additional h2-headings include 'Discussion Forum Threads', 'Related Hugo Issues', and 'Additional References'." --- ## Trouble: `hugo new` Aborts with EOF error diff --git a/content/tutorials/_index.md b/content/tutorials/_index.md index bf617cb8a..f3c80c719 100644 --- a/content/tutorials/_index.md +++ b/content/tutorials/_index.md @@ -1,6 +1,6 @@ --- -title: Tutorials -linktitle: Tutorials +title: Overview +linktitle: Overview description: date: 2017-02-01 publishdate: 2017-02-01 @@ -11,5 +11,5 @@ draft: false hidesectioncontents: false slug: aliases: -notes: +notesforauthors: --- \ No newline at end of file diff --git a/content/tutorials/creating-a-multilingual-site.md b/content/tutorials/creating-a-multilingual-site.md index 361e170fc..302a1ad66 100644 --- a/content/tutorials/creating-a-multilingual-site.md +++ b/content/tutorials/creating-a-multilingual-site.md @@ -1,16 +1,16 @@ --- title: Create a Multilingual Site linktitle: +godocref: description: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -tags: [multilingual,] -author: -authorprofileurl: -weight: +categories: [tutorials] +tags: [internationalization,multilingual,i18n,tutorials] +author: "" +authorurl: "" +originalurl: "" +aliases: [] draft: false -slug: -aliases: -notes: --- \ No newline at end of file diff --git a/content/tutorials/migrate-from-jekyll-to-hugo.md b/content/tutorials/migrate-from-jekyll-to-hugo.md index b411cce65..3afb83a19 100644 --- a/content/tutorials/migrate-from-jekyll-to-hugo.md +++ b/content/tutorials/migrate-from-jekyll-to-hugo.md @@ -1,15 +1,14 @@ --- title: Migrate from Jekyll Hugo linktitle: Migrate from Jekyll to Hugo -description: A tutorial that demonstrates how to use the `hugo import jekyll` command added to v0.15 of Hugo. +description: This tutorial walks you through using the `hugo import jekyll` command added to v0.15 to convert your current content from the popular Ruby static site generator. date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 categories: [tutorials] -tags: [migrations,jekyll] +tags: [migrations,jekyll, command line] weight: draft: false slug: aliases: [] -notes: --- \ No newline at end of file diff --git a/content/variables-and-params/_index.md b/content/variables-and-params/_index.md index dd4a94d2c..21b7d68f9 100644 --- a/content/variables-and-params/_index.md +++ b/content/variables-and-params/_index.md @@ -1,6 +1,6 @@ --- -title: Variables and Params -linktitle: +title: Overview +linktitle: Overview description: Page-, file-, taxonomy-, and site-level variables and parameters available in templates. date: 2017-02-01 publishdate: 2017-02-01 @@ -13,7 +13,7 @@ slug: aliases: [/templates/variables/] toc: false hidesectioncontents: false -notes: +notesforauthors: --- Content for the Variables and Params Section diff --git a/content/variables-and-params/file-variables.md b/content/variables-and-params/file-variables.md index 562c17e14..1d0b46084 100644 --- a/content/variables-and-params/file-variables.md +++ b/content/variables-and-params/file-variables.md @@ -12,5 +12,5 @@ draft: false slug: aliases: [] toc: false -notes: +notesforauthors: --- diff --git a/content/variables-and-params/git-variables.md b/content/variables-and-params/git-variables.md index 5f7d03d18..5e80f4ff7 100644 --- a/content/variables-and-params/git-variables.md +++ b/content/variables-and-params/git-variables.md @@ -12,5 +12,5 @@ draft: false slug: aliases: [] toc: false -notes: +notesforauthors: --- \ No newline at end of file diff --git a/content/variables-and-params/hugo-variables.md b/content/variables-and-params/hugo-variables.md index 436fec1c0..7a9c8761a 100644 --- a/content/variables-and-params/hugo-variables.md +++ b/content/variables-and-params/hugo-variables.md @@ -12,5 +12,5 @@ draft: false slug: aliases: [] toc: false -notes: +notesforauthors: --- \ No newline at end of file diff --git a/content/variables-and-params/page-variables.md b/content/variables-and-params/page-variables.md index 7d8149df9..685585c5f 100644 --- a/content/variables-and-params/page-variables.md +++ b/content/variables-and-params/page-variables.md @@ -12,10 +12,11 @@ draft: false slug: aliases: [] toc: false -notes: +notesforauthors: --- `.IsNamedParams` (reference to shortcodes) `.TableOfContents` (reference to content/table-of-contents) +`.Parent` (reference to nested shortcodes paragraph in /shortcodes/) diff --git a/content/variables-and-params/shortcode-variables.md b/content/variables-and-params/shortcode-variables.md new file mode 100644 index 000000000..78620e1f7 --- /dev/null +++ b/content/variables-and-params/shortcode-variables.md @@ -0,0 +1,15 @@ +--- +title: Shortcode Variables +linktitle: Shortcode Variables +description: +date: 2017-02-01 +publishdate: 2017-02-01 +lastmod: 2017-02-01 +categories: [variables and params] +tags: [shortcodes] +draft: false +slug: +aliases: [] +toc: false +notesforauthors: +--- diff --git a/content/variables-and-params/site-variables.md b/content/variables-and-params/site-variables.md index 2c36636d0..4b460f809 100644 --- a/content/variables-and-params/site-variables.md +++ b/content/variables-and-params/site-variables.md @@ -12,5 +12,5 @@ draft: false slug: aliases: [] toc: false -notes: +notesforauthors: --- diff --git a/content/variables-and-params/taxonomy-variables.md b/content/variables-and-params/taxonomy-variables.md index 4c6f9d82d..4a75c1211 100644 --- a/content/variables-and-params/taxonomy-variables.md +++ b/content/variables-and-params/taxonomy-variables.md @@ -12,5 +12,5 @@ draft: false slug: aliases: [] toc: false -notes: +notesforauthors: --- diff --git a/data/sitenavigation.yml b/data/sitenavigation.yml index a2aa3b5ed..c5a07f4d5 100644 --- a/data/sitenavigation.yml +++ b/data/sitenavigation.yml @@ -11,14 +11,14 @@ gettingstarted: url: "getting-started" haschildren: true sortsubpagesby: "weight" - desc: "Quick start, multi-platform installation guides, and basic usage instructions for local development" -projectorganization: - order: 3 - title: "Project Organization" - url: "project-organization" - haschildren: true - sortsubpagesby: "weight" - desc: "Scaffolding new projects, configuration, and source organization" + desc: "Quick start, installation guides, configuration, and basic usage for local development" +# projectorganization: +# order: 3 +# title: "Project Organization" +# url: "project-organization" +# haschildren: true +# sortsubpagesby: "weight" +# desc: "Site configuration, scaffolding of new projects, and source organization" contentmanagement: order: 4 title: "Content Management" @@ -88,7 +88,7 @@ troubleshooting: url: "troubleshooting" haschildren: true sortsubpagesby: "weight" - desc: "FAQs pulled from the Hugo forum, known issues, and workarounds" + desc: "Known issues, workarounds, and FAQs pulled from the Hugo discussion forum" newsandarticles: order: 14 title: "News and Articles" @@ -96,17 +96,17 @@ newsandarticles: haschildren: true sortsubpagesby: "weight" desc: "Articles featuring Hugo, as well as news, updates, and release notes for the project" -contributetohugo: - order: 15 - title: "Contribute to Hugo" - url: "contribute-to-hugo" - haschildren: true - sortsubpagesby: "weight" - desc: "Contribute to Hugo development and documentation" siteshowcase: - order: 16 + order: 15 title: "Site Showcase" url: "showcase" haschildren: false sortsubpagesby: "weight" - desc: "A collection of websites build using Hugo" \ No newline at end of file + desc: "A collection of websites built using Hugo" +contributetohugo: + order: 16 + title: "Contribute to Hugo" + url: "contribute-to-hugo" + haschildren: true + sortsubpagesby: "weight" + desc: "Contribute to Hugo development and documentation" \ No newline at end of file diff --git a/eof-error.md b/eof-error.md index 631420591..df255801c 100644 --- a/eof-error.md +++ b/eof-error.md @@ -9,7 +9,7 @@ weight: draft: false slug: aliases: [/troubleshooting/faqs] -notes: +notesforauthors: --- ## `hugo new` Aborts with a Cryptic EOF Error diff --git a/layouts/shortcodes/input.html b/layouts/shortcodes/input.html index c3e09a7d2..7da3b56f7 100644 --- a/layouts/shortcodes/input.html +++ b/layouts/shortcodes/input.html @@ -1,6 +1,6 @@ {{- if .IsNamedParams -}} {{$filenameclass := index (split (.Get "filename") ".") 1 }} -
+
{{- with .Get "filename" -}}
{{- . -}}
{{- end -}}
{{- else -}} {{$filenameclass := index (split (.Get 0) ".") 1 }} -
+
{{.Get 0}}