# Arrrchetypes :: Cap'n Hugo Relearrrn Theme
Documentation for Hugo Relearn Theme
Author: Sören Weber

# Arrrchetypes

Arrr! Pirrrates

Fello' pirrates, be awarrre some stuff may not work fer us in this trrranslat'n. Like table of rrramblings, see'ng Merrrmaids, do'ng math or chemistrrry and stuff.

Us'n th' command: `hugo new [relative new rrrambl'n path]`, ye can start a rrrambl'n file wit' th' date an' title automatically set. While this be a welcome feature, active writers need more: archetypes. These be preconfigured skeleton planks wit' default frontmatter.

Th' Relearrrn theme defines some few archetypes o' planks but ye be free t' define new ones t' yer lik'n. All can be used at any level o' th' documentat'n, th' only difference be'n th' layout o' th' rrrambl'n.

## Predefined Archetypes

### Home

A Home plank be th' start'n plank o' yer project. It’s best t' have only one plank o' this kind 'n yer project.

T' create a home plank, run th' follow'n command

    hugo new --kind home _index.md

This leads t' a file wit' th' follow'n rrrambl'n

    +++
    archetype = "home"
    title = "{{ replace .Name "-" " " | title }}"
    +++

    Lorem Ipsum.

### Chapter

A Chapter displays a plank meant t' be used as introduct'n fer a set o' child planks. Commonly, it contains a simple title an' a catch line t' define rrrambl'n that can be found below it.

T' create a chapter plank, run th' follow'n command

    hugo new --kind chapter <name>/_index.md

This leads t' a file wit' th' follow'n rrrambl'n

    +++
    archetype = "chapter"
    title = "{{ replace .Name "-" " " | title }}"
    weight = X
    +++

    Lorem Ipsum.

Replace th' `X` wit' a number. Because this number will be used t' generate th' subtitle o' th' chapter plank, set th' number t' a consecutive value start'n at 1 fer each new chapter level.

### Default

A Default plank be any other rrrambl'n plank. If ye set an unknown archetype 'n yer frontmatter, this archetype will be used t' generate th' plank.

T' create a default plank, run either one o' th' follow'n commands

    hugo new <chapter>/<name>/_index.md

or

    hugo new <chapter>/<name>.md

This leads t' a file wit' th' follow'n rrrambl'n

    +++
    title = "{{ replace .Name "-" " " | title }}"
    weight = X
    +++

    Lorem Ipsum.

Replace th' `X` wit' a number or delete th' whole `weight` parameter entirely.

## Self defined Archetypes

If ye be 'n need o' further archetypes ye can define yer own or even redefine exist'n ones.

### Template

Define a template file 'n yer project at `archetypes/<kind>.md` an' make sure it has at least th' frontmatter parameter fer that archetype like

    +++
    archetype = "<kind>"
    +++

Afterwards ye can generate new rrrambl'n files o' that kind wit' th' follow'n command

    hugo new --kind <kind> <name>/_index.md

### Partials

T' define how yer archetypes be rendered, define correspond'n partial files 'n yer projects directory `layouts/partials/archetypes/<kind>`.

If ye use an unknown archetype 'n yer frontmatter, th' `default` archetype will be used t' generate th' plank.

Related t' each archetype, several hook partial files 'n th' form o' `<hook>.html` can be given inside each archetype directory. If a partial fer a specific hook be miss'n, no output be generated fer this hook.

Th' follow'n hooks be used:

Name | Notes
--- | ---
styleclass | Defines a set o' CSS classes t' be added t' th' HTML’s `<main>` element. Ye can use these classes t' define own CSS rules 'n yer `custom-header.html`
article | Defines th' HTML how t' render yer rrrambl'n

Take a look at th' exist'n archetypes o' this theme t' get an idea how t' utilize it.

#### Output formats

Each hook file can be overridden o' a specific output format. Eg. if ye define a new output format `PLAINTEXT` 'n yer `config.toml`, ye can add a file `layouts/partials/archetypes/default.plaintext.html` t' change th' way how normal rrrambl'n be written fer that output format.