Compare commits

...

8 Commits

Author SHA1 Message Date
Kevin C. Coram 5f24758cbd
Fix instructions 2020-01-04 16:41:43 -05:00
Kevin C. Coram a34db13b72 Merge branch 'content-menu-docs' of kevin/basic-theme into master 2019-12-02 22:57:04 +00:00
Kevin C. Coram 689e69f0cf
Add documentation for content-menu block 2019-12-02 17:53:04 -05:00
Kevin C. Coram b0780f91e1
Update configuration docs section
* Update `subtitle` documentation to note that HTML escape sequences are
restricted by the new Goldmark rendering engine
* Add documentation for the `mainSections` parameter
2019-11-29 11:20:39 -05:00
Kevin C. Coram c9621cb516
Add a menu link back to the home page 2019-11-24 21:39:29 -05:00
Kevin C. Coram fddbc125f7
Document default content-footer 2019-11-24 16:55:37 -05:00
Kevin C. Coram f684465d00
Pagination for index, list, and single page layouts 2019-11-24 16:51:04 -05:00
Kevin C. Coram 3365dc074a
Add mainSections definition; set pagination to 5 2019-11-24 16:32:16 -05:00
8 changed files with 93 additions and 9 deletions

View File

@ -13,7 +13,7 @@ instructions on how to install Hugo, create a site, and install a theme.
Installing the theme as a git submodule is the preferred way.
```
git add submodule https://git.thecorams.net/kevin/basic-theme.git themes/basic-theme
git submodule add https://git.thecorams.net/kevin/basic-theme.git themes/basic-theme
```
### Example Site
@ -35,16 +35,34 @@ As a very basic theme, there is very little to be configured via the `config.tom
file.
The footer layout file uses Hugo's `markdownify` pipe to display the `copyright`
configuration setting, providing support both for HTML5 character escape
configuration setting, providing support both for HTML character escape
sequences such as `©` as well as markdwn formatting and links.
The only non-standard configuration setting is the `subtitle` parameter:
Note: Hugo versions 0.60.0 and up will have restrictions on using embedded HTML,
including escape secquences, unless the Goldmark renderer is configure with
`unsafe = true`.
### `subtitle` parameter
Setting the `subtitle` parameter adds a secondary header underneath the `title`
in the site header.
```toml
[params]
subtitle = "A sub-title for your site"
```
### `mainSections` parameter
Setting the `mainSections` parameter restricts the pages that appear on the
homepage.
```toml
[params]
mainSections = ["posts"]
```
## Theme Organization
### Semantic Content Organization
@ -145,6 +163,12 @@ organization. The [list](layouts/_default/list.html) and
[single](layouts/_default/single.html) templates display the page title as
a `<h1>...</h1>` level header.
#### content-menu
This block is for providing navigation menu(s) for the main content, matching
with the `<nav>...</nav>` block inside the main header. The block is currently
a place holder, with no default implementation.
#### content
This block is for the content of the page.
@ -161,7 +185,11 @@ rendered inside an `<article>...</article>` block element.
This block provides a footer for the page, which renders within the
`<footer></footer>` block at the end of the `<main></main>` section.
Default content-footer definitions are not yet implemented.
The default content-footer blocks for the homepage and for list pages
implement pagination controls to show the content summaries a page at a time.
The default content-footer block for single pages displays previous and/or
next in section links.
#### footer

View File

@ -3,10 +3,11 @@ languageCode = "en-us"
title = "Basic Hugo Theme"
copyright = "Copyright &copy; 2019, Copyright Owner Name | Built with [Hugo](https://gohugo.io/)"
theme = "basic-theme"
paginate = 10
paginate = 5
[permalinks]
posts = "/:year/:month/:title/"
[params]
subtitle = "A theme with no CSS and only basic layouts"
mainSections = [ "posts" ]

View File

@ -9,7 +9,12 @@
<header class="list-content">
{{ .Content }}
</header>
{{ range .Pages }}
{{ .Render "summary"}}
{{ range $index, $page := (.Paginate (where .Pages ".Params.hidden" "!=" "true")).Pages }}
{{ if ne $index 0 }}
{{ end }}
{{ .Render "summary" }}
{{ end }}
{{ end }}
{{ define "content-footer" }}
{{ partial "paginator.html" .Paginator }}
{{ end }}

View File

@ -9,4 +9,7 @@
<article>
{{ .Content }}
</article>
{{ end }}
{{ define "content-footer" }}
{{ partial "prev-next-page.html" . }}
{{ end }}

View File

@ -4,7 +4,12 @@
{{.Content}}
</article>
<!-- Note that .Pages is the same as .Site.RegularPages on the homepage template. -->
{{ range first 10 .Pages }}
{{ .Render "summary"}}
{{ range $index, $page := (.Paginate (where (where .Site.RegularPages "Type" "in" site.Params.mainSections) ".Params.hidden" "!=" "true" )).Pages }}
{{ if ne $index 0 }}
{{ end }}
{{ .Render "summary" }}
{{ end }}
{{ end }}
{{ define "content-footer" }}
{{ partial "paginator.html" .Paginator }}
{{ end }}

View File

@ -0,0 +1,19 @@
<nav>
<ul>
<li>
{{if .HasPrev}}
<a alt="Newer articles" href="{{ .Prev.URL }}">&larr; Newer</a>
{{ else }}
&nbsp;
{{end}}
</li>
<li>Page {{ .PageNumber }} of {{ .TotalPages }}</li>
<li>
{{if .HasNext}}
<a alt="Older articles" href="{{ .Next.URL }}">Older &rarr;</a>
{{ else }}
&nbsp;
{{end}}
</li>
</ul>
</nav>

View File

@ -0,0 +1,20 @@
{{ if not .Params.Menu }}
<nav>
<ul>
<li>
{{ if .NextInSection }}
<a alt="Newer article" href="{{ .NextInSection.Permalink }}">&larr; Newer</a>
{{ else }}
&nbsp;
{{ end }} </li>
<li><a alt="Top of page" href="#">Top</a></li>
<li>
{{ if .PrevInSection }}
<a alt="Older article" href="{{ .PrevInSection.Permalink }}">Older &rarr;</a>
{{ else }}
&nbsp;
{{ end }}
</li>
</ul>
</nav>
{{ end }}

View File

@ -1,4 +1,7 @@
<ul>
{{ if not .IsHome }}
<li><a href="{{ .Site.BaseURL }}">Home</a></li>
{{ end }}
{{- $currentPage := . -}}
{{- range .Site.Menus.main -}}
{{- if .HasChildren -}}