# Hello Friend ![Hello Friend](https://github.com/panr/hugo-theme-hello-friend/blob/master/images/screenshot.png?raw=true) This theme was made to help you present your ideas easier. We all know how hard is to start something on the web, especially these days. You need to prepare a bunch of stuff, configure them and when that’s done — create the content. This theme is pretty basic and covers all of the essentials. All you have to do is start typing! ### DEMO - https://hugo-hello-friend.now.sh/ --- - [Features](#features) - [Built-in shortcodes](#built-in-shortcodes) - [Code highlighting](#code-highlighting) - [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) - [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) - [Licence](#licence) ## Features - **dark/light mode**, depending on your preferences (dark is default, but you can change it) - great reading experience thanks to [**Inter font**](https://rsms.me/inter/), made by [Rasmus Andersson](https://rsms.me/about/) - nice code highlighting thanks to [**PrismJS**](https://prismjs.com) - fully responsive #### 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;" >}}` #### 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:
```html // your code here ```**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. ## How to start 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. You can also clone it directly to your Hugo folder: ``` $ git clone https://github.com/panr/hugo-theme-hello-friend.git themes/hello-friend ``` 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: ``` $ git submodule add https://github.com/panr/hugo-theme-hello-friend.git themes/hello-friend ``` ## How to configure The theme doesn't require any advanced configuration. Just copy: ``` baseurl = "/" languageCode = "en-us" theme = "hello-friend" paginate = 5 [params] # dir name of your blog content (default is `content/posts`) contentTypeName = "posts" # "light" or "dark" defaultTheme = "dark" # if you set this to 0, only submenu trigger will be visible showMenuItems = 2 # Show reading time in minutes for posts showReadingTime = false [languages] [languages.en] title = "Hello Friend" subtitle = "A simple theme for Hugo" keywords = "" copyright = "" menuMore = "Show more" 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" [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" ``` 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). **NOTE:** Please keep in mind that currently main menu doesn't support nesting. ## How to add a cover image to your posts 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`: * Use `cover = "/path/to/absolute/img.jpg"` to link an absolute image * Resulting in `https://www.yourpage.com/path/to/absolute/img.jpg` * Use `cover = "img.jpg"` and `useRelativeCover = true` to link the image relative to the blog post folder * Resulting in `https://www.yourpage.com/posts/blog-entry-xy/img.jpg` ## Add-ons - **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). - **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. - **Extended ``** — if you need to add something inside `` element, 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 - **Extended `