149 lines
4.6 KiB
Markdown
149 lines
4.6 KiB
Markdown
|
# [portfoliGor][1]
|
|||
|
|
|||
|
Yet another HUGO portfolio theme, that I'm writing to my own purpose on
|
|||
|
<https://igor.milhit.ch>, published with the regular [MIT license][6].
|
|||
|
|
|||
|
It displays on the front page a personal and professional description, and ways
|
|||
|
to contact the person. It has a blog section too.
|
|||
|
|
|||
|
The HTML `<head>` has a metadata section to expose metadata that are useful for
|
|||
|
reference manager as Zotero (in Dublin Core) or to social media (see
|
|||
|
[below][5]).
|
|||
|
|
|||
|
As the release version can tell, this theme is still in development and misses
|
|||
|
lot of things [see the opened [issues][2]].
|
|||
|
|
|||
|
You can install it as the [HUGO documentation][4] recommends.
|
|||
|
|
|||
|
![Screenshot][7]
|
|||
|
|
|||
|
## Configuration
|
|||
|
|
|||
|
### Personal and professional description
|
|||
|
|
|||
|
The front page displays, if it exists, the content of the main index markdown
|
|||
|
file that could be placed at the root of the content directory [[HUGO's
|
|||
|
documentation][3]].
|
|||
|
|
|||
|
There's also three sections that can be displayed:
|
|||
|
|
|||
|
- The online presence.
|
|||
|
- The personal contacts.
|
|||
|
- The professional contacts.
|
|||
|
|
|||
|
It depends on the data provided by the site configuration, in the `params`
|
|||
|
section. Below a comprehensive example:
|
|||
|
|
|||
|
```toml
|
|||
|
[params]
|
|||
|
|
|||
|
# Professional contact data
|
|||
|
[params.contactsPro]
|
|||
|
address = ""
|
|||
|
phone = "[as-used-by-a-phone]"
|
|||
|
mobile = "[as-used-by-a-phone]"
|
|||
|
email = ""
|
|||
|
cv = "[file-added-in-static-directory]"
|
|||
|
publickey = "[file-added-in-static-directory]"
|
|||
|
fingerprint = ""
|
|||
|
|
|||
|
# Personal contact data
|
|||
|
[params.contactsPriv]
|
|||
|
address = ""
|
|||
|
phone = "[as-used-by-a-phone]"
|
|||
|
mobile = "[as-used-by-a-phone]"
|
|||
|
email = ""
|
|||
|
publickey = "[file-added-in-static-directory]"
|
|||
|
fingerprint = ""
|
|||
|
xmpp = "[handle]"
|
|||
|
|
|||
|
# Web accounts
|
|||
|
[params.online]
|
|||
|
github = "[username]"
|
|||
|
framagit = "[username]"
|
|||
|
mastodon = "[URL]"
|
|||
|
twitter = "[username]"
|
|||
|
keybase = "[username]"
|
|||
|
wikipedia = "[french-site-username]"
|
|||
|
openstreetmap = "[username]"
|
|||
|
discogs = "[username]"
|
|||
|
```
|
|||
|
|
|||
|
### Layout configuration
|
|||
|
|
|||
|
- Add `layout: verse` to the front header of a specific content to improve
|
|||
|
format for text in verse. Verse should be separated by a line break, strophes
|
|||
|
are paragraphs.
|
|||
|
- Add `layout: static` to the front header of a static page, thus preventing to
|
|||
|
display the post metadata such as the publication date.
|
|||
|
|
|||
|
### Date management
|
|||
|
|
|||
|
You should set `enableGitInfo` to `True`, as it is used by the post metadata
|
|||
|
display for the last modification date, and in the footer to provide a link to
|
|||
|
the last commit modifying the content (still hard coded though, #14).
|
|||
|
|
|||
|
The publication date uses the `date` field of the front matter, that should be
|
|||
|
automatically set by the `hugo new` command. If the content is published later,
|
|||
|
you can add the `publishdate` field manually, and it will override the `date`
|
|||
|
data.
|
|||
|
|
|||
|
All further modification dates should be provided by the `git` metadata. But
|
|||
|
you can also set manually the `lastmod` date in the front matter.
|
|||
|
|
|||
|
To make it work, in the site configuration file, you should configure the date
|
|||
|
management as below:
|
|||
|
|
|||
|
```toml
|
|||
|
[frontmatter]
|
|||
|
date = ["date", "publishDate"]
|
|||
|
lastmod = [":git", "lastmod"]
|
|||
|
```
|
|||
|
|
|||
|
### Social media metadata
|
|||
|
|
|||
|
An image for the website can be defined in the site configuration. Place an
|
|||
|
image optimized for the web, in the 1200 × 600 pixels resolution, in the
|
|||
|
`static/images/` directory. Then provide in the site configuration it's file
|
|||
|
name and image description (max 80 chars, with a trailing dot):
|
|||
|
|
|||
|
```toml
|
|||
|
[params]
|
|||
|
|
|||
|
Description = "[Small website description]"
|
|||
|
Image = "mySite.jpg"
|
|||
|
ImageDescription = "[Alternate text]"
|
|||
|
```
|
|||
|
|
|||
|
For each content (blog post), a social media image can be defined in the front
|
|||
|
matter. The image have to be placed in the same directory (`static/images/`),
|
|||
|
same resolution. The frontmatter is as follow:
|
|||
|
|
|||
|
```toml
|
|||
|
description: "[post-description]"
|
|||
|
postimage: "[file-name.extension]"
|
|||
|
postimagedescription: "[Alternate text]"
|
|||
|
```
|
|||
|
|
|||
|
## Changelog
|
|||
|
|
|||
|
The Changelog is described in [`CHANGELOG.md`][8]. It's generated by
|
|||
|
[`auto-changelog`][9]. The configuration is in [`.auto-changelog`][10].
|
|||
|
|
|||
|
To generate it, use the following command:
|
|||
|
|
|||
|
```bash
|
|||
|
yarn auto-changelog
|
|||
|
```
|
|||
|
|
|||
|
[1]: https://git.milhit.ch/igor/portfoligor
|
|||
|
[2]: https://git.milhit.ch/igor/portfoligor/issues
|
|||
|
[3]: https://gohugo.io/templates/homepage/#add-content-and-front-matter-to-the-homepage
|
|||
|
[4]: https://gohugo.io/getting-started/quick-start/#step-3-add-a-theme
|
|||
|
[5]: #social-media-metadata
|
|||
|
[6]: https://git.milhit.ch/igor/portfoligor/src/branch/dev/LICENSE
|
|||
|
[7]: screenshots/theme-example.png "Screenshot of my own site using this theme"
|
|||
|
[8]: ./CHANGELOG.md
|
|||
|
[9]: https://github.com/CookPete/auto-changelog
|
|||
|
[10]: ./.auto-changelog
|