hugo-theme-hello-friend/README.md

259 lines
12 KiB
Markdown
Raw Normal View History

2018-07-20 19:14:22 +02:00
# Hello Friend
2018-07-24 19:37:10 +02:00
![Hello Friend](https://github.com/panr/hugo-theme-hello-friend/blob/master/images/screenshot.png?raw=true)
2018-07-20 19:19:43 +02:00
2019-01-06 17:41:44 +01:00
### DEMO - https://hugo-hello-friend.now.sh/
2020-06-13 15:57:51 +02:00
<a href="https://www.buymeacoffee.com/panr" target="_blank"><img src="https://res.cloudinary.com/panr/image/upload/v1579374705/buymeacoffee_y6yvov.svg" alt="Buy Me A Coffee" ></a>
2019-03-06 01:16:57 +01:00
---
2020-01-31 09:22:29 +01:00
- [Hello Friend](#hello-friend)
2020-05-27 00:55:30 +02:00
- [DEMO - https://hugo-hello-friend.now.sh/](#demo---httpshugo-hello-friendnowsh)
2020-01-31 09:22:29 +01:00
- [Features](#features)
- [Built-in shortcodes](#built-in-shortcodes)
- [Code highlighting](#code-highlighting)
2020-05-27 00:55:30 +02:00
- [Improved RSS Feed](#improved-rss-feed)
2020-01-31 09:22:29 +01:00
- [How to start](#how-to-start)
- [How to configure](#how-to-configure)
- [How to add a cover image to your posts](#how-to-add-a-cover-image-to-your-posts)
2020-01-31 09:32:40 +01:00
- [How to display the Last Modified Date in your posts](#how-to-display-the-last-modified-date-in-your-posts)
2020-05-27 00:55:30 +02:00
- [How to hide "Read more" button](#how-to-hide-read-more-button)
2020-01-31 09:22:29 +01:00
- [Add-ons](#add-ons)
- [How to run your site](#how-to-run-your-site)
- [How to edit the theme](#how-to-edit-the-theme)
- [How to contribute](#how-to-contribute)
- [`Hello Friend` theme user?](#hello-friend-theme-user)
- [Sponsoring](#sponsoring)
- [License](#license)
2019-03-06 01:16:57 +01:00
2018-07-20 19:14:22 +02:00
## Features
2019-01-06 17:26:27 +01:00
- **dark/light mode**, depending on your preferences (dark is default, but you can change it)
2019-02-06 12:52:43 +01:00
- great reading experience thanks to [**Inter font**](https://rsms.me/inter/), made by [Rasmus Andersson](https://rsms.me/about/)
2018-07-20 19:14:22 +02:00
- nice code highlighting thanks to [**PrismJS**](https://prismjs.com)
- fully responsive
2018-12-13 16:18:29 +01:00
#### Built-in shortcodes
- **`image`** (prop required: **`src`**; props optional: **`alt`**, **`position`** (**left** is default | center | right), **`style`**)
- eg: `{{< image src="/img/hello.png" alt="Hello Friend" position="center" style="border-radius: 8px;" >}}`
- **`figure`** (same as `image`, plus few optional props: **`caption`**, **`captionPosition`** (left | **center** is default | right), **`captionStyle`**
- eg: `{{< figure src="/img/hello.png" alt="Hello Friend" position="center" style="border-radius: 8px;" caption="Hello Friend!" captionPosition="right" captionStyle="color: red;" >}}`
2020-01-31 09:22:29 +01:00
- **`imgproc`** Hugo shortcode for image processing, plus additional **`position`** param [ left | center | right ] (optional).
- eg: `{{< imgproc "img/hello.png" Resize "250x" center />}}`
- More detailed info on processing commands at [https://gohugo.io/content-management/image-processing/](https://gohugo.io/content-management/image-processing/)
2020-06-19 23:49:06 +02:00
- **`code`** (prop required: **`language`**; props optional: **`title`**, **`id`**, **`expand`** (default "△"), **`collapse`** (default "▽"), **`isCollapsed`**)
- eg:
```go
{{< code language="css" title="Really cool snippet" id="1" expand="Show" collapse="Hide" isCollapsed="true" >}}
pre {
background: #1a1a1d;
padding: 20px;
border-radius: 8px;
font-size: 1rem;
overflow: auto;
@media (--phone) {
white-space: pre-wrap;
word-wrap: break-word;
}
code {
background: none !important;
color: #ccc;
padding: 0;
font-size: inherit;
}
}
{{< /code >}}
```
2018-12-13 16:18:29 +01:00
2018-09-02 11:49:36 +02:00
#### Code highlighting
By default the theme is using PrismJS to color your code syntax. All you need to do is to wrap you code like this:
<pre>
```html
// your code here
```
</pre>
2019-01-06 12:01:12 +01:00
**Supported languages**: bash/shell, css, clike, javascript, apacheconf, actionscript, applescript, c, csharp, cpp, coffeescript, ruby, csp, css-extras, diff, django, docker, elixir, elm, markup-templating, erlang, fsharp, flow, git, go, graphql, less, handlebars, haskell, http, java, json, kotlin, latex, markdown, makefile, objectivec, ocaml, perl, php, php-extras, r, sql, processing, scss, python, jsx, typescript, toml, reason, textile, rust, sass, stylus, scheme, pug, swift, yaml, haml, twig, tsx, vim, visual-basic, wasm.
2018-09-02 11:49:36 +02:00
2020-04-29 06:09:55 +02:00
#### Improved RSS Feed
2020-05-20 20:59:33 +02:00
Some enhancements have been made to Hugo's [internal RSS](https://github.com/gohugoio/hugo/blob/25a6b33693992e8c6d9c35bc1e781ce3e2bca4be/tpl/tplimpl/embedded/templates/_default/rss.xml) generation code.
2020-04-29 06:09:55 +02:00
2020-04-29 06:25:13 +02:00
**A page's cover image now appears at the top of its feed display**. This image is set manually using [the cover params](#how-to-add-a-cover-image-to-your-posts). If unset, the RSS generator searches for the first image file in the page bundle whose name includes 'featured', 'cover', or 'thumbnail'.
2020-04-29 06:09:55 +02:00
**You can optionally display the full page content in your RSS feed** (default is Description or Summary data from Front Matter). Set `rssFullText = true` in your `config.toml` file to enable this option.
2020-05-20 20:59:33 +02:00
**You can choose a site image to be displayed when searching for your RSS feed.** Set `rssImage = "image/url/here"` in your `config.toml` file to enable this option.
2018-07-20 19:14:22 +02:00
## How to start
2018-07-20 19:18:16 +02:00
You can download the theme manually by going to [https://github.com/panr/hugo-theme-hello-friend.git](https://github.com/panr/hugo-theme-hello-friend.git) and pasting it to `themes/hello-friend` in your root directory.
2018-07-20 19:14:22 +02:00
You can also clone it directly to your Hugo folder:
```bash
2018-07-20 19:18:16 +02:00
$ git clone https://github.com/panr/hugo-theme-hello-friend.git themes/hello-friend
2018-07-20 19:14:22 +02:00
```
If you don't want to make any radical changes, it's the best option, because you can get new updates when they are available. To do so, include it as a git submodule:
```bash
2018-07-20 19:18:16 +02:00
$ git submodule add https://github.com/panr/hugo-theme-hello-friend.git themes/hello-friend
2018-07-20 19:14:22 +02:00
```
## How to configure
The theme doesn't require any advanced configuration. Just copy:
```toml
2019-01-20 17:55:51 +01:00
baseurl = "/"
languageCode = "en-us"
2019-01-06 17:26:27 +01:00
theme = "hello-friend"
paginate = 5
[params]
2020-06-17 17:08:07 +02:00
# dir name of your blog content (default is `content/posts`).
# the list of set content will show up on your index page (baseurl).
2019-01-25 10:20:52 +01:00
contentTypeName = "posts"
2018-12-22 09:49:54 +01:00
# "light" or "dark"
defaultTheme = "dark"
2019-02-01 10:06:44 +01:00
# if you set this to 0, only submenu trigger will be visible
showMenuItems = 2
2019-02-22 10:06:03 +01:00
# Show reading time in minutes for posts
showReadingTime = false
2020-03-12 17:28:53 +01:00
# Show table of contents at the top of your posts (defaults to false)
# Alternatively, add this param to post front matter for specific posts
2020-05-27 17:00:25 +02:00
# toc = true
2020-04-29 06:09:55 +02:00
# Show full page content in RSS feed items
#(default is Description or Summary metadata in the front matter)
# rssFullText = true
2019-01-20 17:55:51 +01:00
[languages]
[languages.en]
2019-01-25 18:30:02 +01:00
title = "Hello Friend"
subtitle = "A simple theme for Hugo"
2019-01-25 18:54:07 +01:00
keywords = ""
2019-01-25 18:30:02 +01:00
copyright = ""
2019-02-01 10:06:44 +01:00
menuMore = "Show more"
2019-01-20 17:55:51 +01:00
writtenBy = "Written by"
readMore = "Read more"
readOtherPosts = "Read other posts"
newerPosts = "Newer posts"
olderPosts = "Older posts"
minuteReadingTime = "min read"
dateFormatSingle = "2006-01-02"
dateFormatList = "2006-01-02"
2019-11-10 10:43:05 +01:00
# leave empty to disable, enter display text to enable
# lastModDisplay = ""
2019-01-25 18:30:02 +01:00
[languages.en.params.logo]
logoText = "hello friend"
logoHomeLink = "/"
# or
#
# path = "/img/your-example-logo.svg"
# alt = "Your example logo alt text"
[languages.en.menu]
[[languages.en.menu.main]]
identifier = "about"
name = "About"
url = "/about"
[[languages.en.menu.main]]
identifier = "showcase"
name = "Showcase"
url = "/showcase"
```
2019-01-20 17:55:51 +01:00
to `config.toml` file in your Hugo root directory and change params fields. In case you need, here's [a YAML version](https://gist.github.com/panr/8f9b363e358aaa33f6d353c77feee959).
2018-07-20 19:14:22 +02:00
2019-02-01 10:06:44 +01:00
**NOTE:** Please keep in mind that currently main menu doesn't support nesting.
## How to add a cover image to your posts
2019-03-19 17:28:41 +01:00
Adding a cover image to your post is simple and there are two options when you edit your `index.md` file in `content/posts/blog-entry-xy/index.md`:
2019-03-25 07:06:31 +01:00
* Use `cover = "/path/to/absolute/img.jpg"` to link an absolute image
2019-03-19 17:28:41 +01:00
* Resulting in `https://www.yourpage.com/path/to/absolute/img.jpg`
2019-03-25 07:06:31 +01:00
* Use `cover = "img.jpg"` and `useRelativeCover = true` to link the image relative to the blog post folder
2019-03-19 17:28:41 +01:00
* Resulting in `https://www.yourpage.com/posts/blog-entry-xy/img.jpg`
2020-01-27 18:29:31 +01:00
## How to display the Last Modified Date in your posts
2019-11-10 10:43:05 +01:00
Add `lastModDisplay = "[your display text]"` to `config.toml` to enable last modified date on your posts. Note - an empty string value `""` does not display anything.
Example: `lastModDisplay = "Modified:"` --> "Modified: Jan 01, 0001"
2019-11-10 10:43:05 +01:00
:octocat: Hugo's `enableGitInfo` option is a nice complement to this feature.
## How to hide "Read more" button
In a post's front matter you have to add `hideReadMore` param set to `true`. This will result in that the post won't have "Read more" button in the list view.
2019-03-06 01:16:57 +01:00
## Add-ons
2019-04-16 17:00:46 +02:00
- **Archive** — Theme has built-in `archive` page for main content (see `contentTypeName` variable in config). If you need archive on your blog just copy https://github.com/panr/hugo-theme-hello-friend/blob/master/exampleSite/content/archive.md to your `content` dir. If you need multilangual archives, duplicate `content/archive.md` and add `.Lang` variable, eg: `content/archive.pl.md` (remember to change `url` in duplicated file).
2019-03-06 01:16:57 +01:00
- **Comments** — for adding comments to your blog posts please take a look at `layouts/partials/comments.html` https://github.com/panr/hugo-theme-terminal/blob/master/layouts/partials/comments.html.
- **Prepended `<head>`** — if you need to add something inside `<head>` element, and before any of the theme's `<script>` and `<link>` tags are declared, please take a look at `layouts/partial/prepended_head.html` https://github.com/panr/hugo-theme-hello-friend/blob/master/layouts/partials/prepended_head.html
- **Extended `<head>`** — if you need to add something inside `<head>` element, after all of all of the theme's `<script>` and `<link>` tags are declared, please take a look at `layouts/partial/extended_head.html` https://github.com/panr/hugo-theme-hello-friend/blob/master/layouts/partials/extended_head.html
2019-03-31 18:38:02 +02:00
- **Extended `<footer>`** — if you need to add something before end of `<body>` element, please take a look at `layouts/partial/extended_footer.html` https://github.com/panr/hugo-theme-hello-friend/blob/master/layouts/partials/extended_footer.html
2019-03-06 01:16:57 +01:00
2018-07-20 19:14:22 +02:00
## How to run your site
From your Hugo root directory run:
```bash
2018-07-20 19:14:22 +02:00
$ hugo server -t hello-friend
```
and go to `localhost:1313` in your browser. From now on all the changes you make will go live, so you don't need to refresh your browser every single time.
## How to edit the theme
2019-02-26 00:21:30 +01:00
If you have to override some of the styles, you can do this easily by adding `static/style.css` in your root directory and point things you want to change.
2019-02-05 19:12:52 +01:00
Otherwise, if you really want to edit the theme, you need to install Node dependencies. To do so, go to the theme directory (from your Hugo root directory):
2018-07-20 19:14:22 +02:00
```bash
2018-07-20 19:14:22 +02:00
$ cd themes/hello-friend
```
and then run:
```bash
2018-07-20 19:14:22 +02:00
$ npm install
$ npm i yarn
$ yarn
```
## How to contribute
2018-07-20 19:18:16 +02:00
If you spot any bugs, please use [Issue Tracker](https://github.com/panr/hugo-theme-hello-friend/issues) or if you want to add a new feature directly please create a new [Pull Request](https://github.com/panr/hugo-theme-hello-friend/pulls).
2018-07-20 19:14:22 +02:00
2019-03-06 01:18:18 +01:00
## `Hello Friend` theme user?
2019-03-06 01:16:57 +01:00
I'd be happy to know more about you and what you are doing. If you want to share it, please make a contribution and [add your site to the list](https://github.com/panr/hugo-theme-hello-friend/blob/master/USERS.md)! 🤗
2020-01-18 20:14:44 +01:00
## Sponsoring
If you like my work and want to support the development of the project, now you can! Just:
<a href="https://www.buymeacoffee.com/panr" target="_blank"><img src="https://res.cloudinary.com/panr/image/upload/v1579374705/buymeacoffee_y6yvov.svg" alt="Buy Me A Coffee" ></a>
## License
2018-07-20 19:14:22 +02:00
2019-01-06 12:01:12 +01:00
Copyright © 2019 Radosław Kozieł ([@panr](https://twitter.com/panr))
2018-07-20 19:14:22 +02:00
2019-01-21 08:54:54 +01:00
The theme is released under the MIT License. Check the [original theme license](https://github.com/panr/hugo-theme-hello-friend/blob/master/LICENSE.md) for additional licensing information.