Document identity, card, and social configurations
							parent
							
								
									2d87a448f6
								
							
						
					
					
						commit
						fc2e1705cd
					
				
							
								
								
									
										133
									
								
								README.md
								
								
								
								
							
							
						
						
									
										133
									
								
								README.md
								
								
								
								
							|  | @ -1,19 +1,17 @@ | |||
| # A Basic Hugo Theme | ||||
| # A Hugo Theme Using HTML5 Semantics and IndieWeb Integration | ||||
| 
 | ||||
| While the official documentation about Hugo [Templates](https://gohugo.io/templates/)  | ||||
| does provide all of the pieces to get started creating a theme, it doesn't | ||||
| necessarily put them together in one, easy-to-see-together place. This theme | ||||
| attempts to pull all of the necessary pieces together into a theme that can be | ||||
| used as a starting point to create more sophisticated themes. | ||||
| This theme is a fork of [My Basic Theme](https://git.thecorams.net/kevin/basic-theme), | ||||
| adding additional HTML5 semantics, a more responsive site design, and | ||||
| [IndieWeb](https://indieweb.org/) [microformats](http://microformats.org/wiki/Main_Page). | ||||
| 
 | ||||
| ## Getting Started | ||||
| 
 | ||||
| Follow the [Hugo Quickstart](https://gohugo.io/getting-started/quick-start/)  | ||||
| Follow the [Hugo Quickstart](https://gohugo.io/getting-started/quick-start/) | ||||
| 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 add submodule https://git.thecorams.net/kevin/semantic-indieweb.git themes/semantic-indieweb | ||||
| ``` | ||||
| 
 | ||||
| ### Example Site | ||||
|  | @ -26,19 +24,16 @@ cd exampleSite | |||
| hugo serve [ -D ] --themesDir ../.. | ||||
| ``` | ||||
| 
 | ||||
| Most of the sample posts are intentionally set `draft: true` to allow for  | ||||
| Most of the sample posts are intentionally set `draft: true` to allow for | ||||
| testing few posts vs many posts. | ||||
| 
 | ||||
| ## Configuration | ||||
| 
 | ||||
| As a very basic theme, there is very little to be configured via the `config.toml`  | ||||
| file. | ||||
| 
 | ||||
| The footer layout file uses Hugo's `markdownify` pipe to display the `copyright`  | ||||
| The footer layout file uses Hugo's `markdownify` pipe to display the `copyright` | ||||
| configuration setting, providing support both for HTML character escape | ||||
| sequences such as `©` as well as markdwn formatting and links. | ||||
| 
 | ||||
| Note: Hugo versions 0.60.0 and up will have restrictions on using embedded HTML,  | ||||
| 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`. | ||||
| 
 | ||||
|  | @ -63,6 +58,100 @@ homepage. | |||
| 
 | ||||
| ``` | ||||
| 
 | ||||
| ### IndieWeb / IndieAuth Identities | ||||
| 
 | ||||
| The theme includes support for adding `rel="me"` links to the HTML head of | ||||
| every page. Such links help tie together the sites one owns, as well as | ||||
| provide support for [IndieAuth](https://www.w3.org/TR/indieauth/) | ||||
| authentication. | ||||
| 
 | ||||
| These links can be configured by including one or more `params.Identity` | ||||
| blocks: | ||||
| 
 | ||||
| ```toml | ||||
|   [[params.Identity]] | ||||
|     type = "some-type" | ||||
|     value = "identity" | ||||
|     authn = false | ||||
| ``` | ||||
| 
 | ||||
| The current set of known types are: | ||||
| 
 | ||||
| - Email | ||||
|   - The `value` should be a valid e-mail address which could be used for | ||||
|     IndieAuth authentication | ||||
| - GitHub | ||||
|   - The `value` should be a valid GitHub user name | ||||
| - GitLab | ||||
|   - The `value` should be a valid GitLab user name | ||||
| - Twitter | ||||
|   - The `value` should be a valid Twitter user name | ||||
| - MicroBlog | ||||
|   - The `value` should be a valid MicroBlog user name | ||||
| - PGP | ||||
|   - The `value` should be a valid URL to the site owner's public PGP key | ||||
| 
 | ||||
| The IndieAuth standard allows the site author to specify which of the | ||||
| `rel="me"` links should be preferred for authentication. If the `authn` | ||||
| parameter for an identity is set to `true`, the link will be generated | ||||
| as `rel="me authn"`. As explained on | ||||
| [https://indielogin.com/setup](https://indielogin.com/setup): | ||||
| 
 | ||||
| > If any of your `rel="me"` links also include `authn` in the list of rels, | ||||
| > then IndieLogin.com will only use the links with `authn`, and will no longer | ||||
| > consider your plain `rel="me"` links as authentication options. | ||||
| 
 | ||||
| ### IndieWeb h-card | ||||
| 
 | ||||
| The theme includes a "card" for displaying the site author's photo (or a logo | ||||
| image for the site), the author's name, and the author's rough location. The | ||||
| data in the card is marked up with [h-card](http://microformats.org/wiki/h-card) | ||||
| microformats, for integration with IndieWeb-aware sites and tools. | ||||
| 
 | ||||
| ```toml | ||||
|   # Configuration Parameters for IndieWeb h-card | ||||
|   [params.Card] | ||||
|     Author = "Site Author Name" | ||||
|     Photo = "images/picture-o.svg" | ||||
|     Locality = "City/Town/Village" | ||||
|     Region = "State/County/Province" | ||||
|     Country = "Country Name" | ||||
| ``` | ||||
| 
 | ||||
| #### Social Network Links | ||||
| 
 | ||||
| The theme will render a ribbon of icon links to other sites beneath the | ||||
| author's location information. The theme comes bundled with  | ||||
| [Fork Awesome v1.1.7](https://forkaweso.me/Fork-Awesome/). Any of the icons | ||||
| provided by Fork Awesome can easily be used. For example, to add a link to | ||||
| one's Twitter profile, add a configuration block that uses the Fork Awesome | ||||
| twitter icon: | ||||
| 
 | ||||
| ```toml | ||||
|   [[params.Social]] | ||||
|     profile = "https://twitter.com/twitter-user-name" | ||||
|     icon = "fa fa-twitter" | ||||
| ``` | ||||
| 
 | ||||
| The icon/font library being used can be overriden by creating a site-specific | ||||
| `icons.html` partial. Font Awesome, Fork Awesome, Fontello, and many other | ||||
| icon/font libraries all support embedding an icon using similar CSS class names, | ||||
| which can be used in the `icon = "...."` configuration. | ||||
| 
 | ||||
| In addition to the `profile` and `icon` pairs, there is also support for e-mail | ||||
| links and PGP key file links with the PGP fingerprint as a toolip: | ||||
| 
 | ||||
| ```toml | ||||
|   [[params.Social]] | ||||
|     email = "email@example.com" | ||||
|     icon = "fa fa-envelope-o" | ||||
| 
 | ||||
|   [[params.Social]] | ||||
|     publicKey = "pgp_key_file.txt" | ||||
|     fingerprint = "AAAA BBBB CCCC DDDD" | ||||
|     icon = "fa fa-key" | ||||
| ``` | ||||
| 
 | ||||
| ## Theme Organization | ||||
| 
 | ||||
| ### Semantic Content Organization | ||||
|  | @ -117,7 +206,7 @@ If the content pages use `##` as their largest heading, this will result | |||
| in document outlines structured as: | ||||
| 
 | ||||
| 1. Site Title | ||||
|    1. Site Sub-title  | ||||
|    1. Site Sub-title | ||||
| 2. Content Title | ||||
|    1. Header from Content | ||||
|       1. Sub-header from content | ||||
|  | @ -125,7 +214,7 @@ in document outlines structured as: | |||
| 
 | ||||
| ### Hugo Templating | ||||
| 
 | ||||
| The template layout files make heavy use of Hugo's  | ||||
| The template layout files make heavy use of Hugo's | ||||
| [base and block constructs](https://gohugo.io/templates/base/), as can be seen | ||||
| in [baseof.html](layouts/_default/baseof.html). | ||||
| 
 | ||||
|  | @ -140,7 +229,7 @@ page. | |||
| #### site-header | ||||
| 
 | ||||
| This block is for providing a site banner that will appear at the top of every page, | ||||
| and matches with the primary `<header>...</header>` definition from the semantic  | ||||
| and matches with the primary `<header>...</header>` definition from the semantic | ||||
| organization, above. | ||||
| 
 | ||||
| The default site-header block displays the [header.html](layouts/partials/header.html) | ||||
|  | @ -159,8 +248,8 @@ partial. | |||
| 
 | ||||
| This block is for providing a header for the specific page, matching with the | ||||
| header block inside the `<main>....<\main>` definition from the semantic | ||||
| organization. The [list](layouts/_default/list.html) and  | ||||
| [single](layouts/_default/single.html) templates display the page title as  | ||||
| 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 | ||||
|  | @ -182,10 +271,10 @@ rendered inside an `<article>...</article>` block element. | |||
| 
 | ||||
| #### content-footer | ||||
| 
 | ||||
| This block provides a footer for the page, which renders within the  | ||||
| This block provides a footer for the page, which renders within the | ||||
| `<footer></footer>` block at the end of the `<main></main>` section. | ||||
| 
 | ||||
| The default content-footer blocks for the homepage and for list pages  | ||||
| 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 | ||||
|  | @ -210,4 +299,4 @@ partial. | |||
| ## Acknowledgements | ||||
| 
 | ||||
| - [Indigo Theme](https://github.com/AngeloStavrow/indigo) | ||||
|   - Inspiration for implementation of IndieWeb Identity hooks | ||||
|   - Inspiration for implementation of IndieWeb Identity hooks | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue