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 archetypes.
What is a Content Type
Tumblr is a good example of a website with multiple content types. A piece of “content” could be a photo, quote, or a post, each with different sets of metadata and different visual rendering.
Assign a Content Type
Hugo assumes that your site will be organized into sections and each section represents a corresponding type. This is to reduce the amount of configuration necessary for new Hugo projects.
If you are taking advantage of this default behavior, each new piece of content you place into a section will automatically inherit the type. Therefore a new file created at
content/posts/new-post.md will automatically be assigned the type
posts. Alternatively, you can set the content type in a content file’s front matter in the field “
Create New Content of a Specific Type
You can manually add files to your content directories, but Hugo can create and populate a new content file with preconfigured front matter via archetypes.
Define a Content Type
Creating a new content type is easy. You simply define the templates and archetype unique to your new content type, or Hugo will use defaults.
The following examples take you stepwise through creating a new type layout for a content file that contains the following front matter:
+++ title = My First Event date = "2016-06-24T19:20:04-07:00" description = "Today is my 36th birthday. How time flies." type = "event" layout = "birthday" +++
By default, Hugo assumes
events is of the
events content type. However, we have specified that this particular file at
content/events/ my-first-event.md is of type
event and should render using the
Create a Type Layout Directory
Create a directory with the name of the type in
/layouts. For creating these custom layouts, type is always singular; e.g.,
events => event and
posts => post.
For this example, you need to create
Many sites support rendering content in a few different ways; e.g., a single page view and a summary view to be used when displaying a list of section contents.
Hugo limits assumptions about how you want to display your content to an intuitive set of sane defaults and will support as many different views of a content type as your site requires. All that is required for these additional views is that a template exists in each
/layouts/<TYPE> directory with the same name.
Custom Content Type Template Lookup Order
The lookup order for the
content/events/my-first-event.md templates would be as follows:
Create a Corresponding Archetype
We can then create a custom archetype with preconfigured front matter at
event.md in the
/archetypes directory; i.e.
Read Archetypes for more information on archetype usage with