hugo-theme-hello-friend-ng
Pretty basic theme for Hugo that covers all of the essentials. All you have to do is start typing!
Top Related Projects
A simple, retro theme for Hugo
A minimalist blog theme for hugo.
A fast, clean, responsive Hugo theme.
Ananke: A theme for Hugo Sites
❤️A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题
Card-style Hugo theme designed for bloggers
Quick Overview
Hugo-theme-hello-friend-ng is a modern and customizable theme for the Hugo static site generator. It's a fork of the original "hello-friend" theme, offering additional features and improvements while maintaining a clean and minimalist design aesthetic.
Pros
- Highly customizable with numerous configuration options
- Dark/light mode toggle for improved user experience
- Responsive design that works well on various devices
- Built-in support for social media icons and sharing
Cons
- Limited built-in color scheme options
- May require some CSS knowledge for extensive customization
- Documentation could be more comprehensive for advanced features
- Some users report occasional issues with menu responsiveness on mobile devices
Getting Started
To use this theme in your Hugo project:
-
Initialize a new Hugo site:
hugo new site mysite cd mysite
-
Add the theme as a submodule:
git init git submodule add https://github.com/rhazdon/hugo-theme-hello-friend-ng.git themes/hello-friend-ng
-
Update your
config.toml
:baseURL = "https://example.com" title = "My New Hugo Site" theme = "hello-friend-ng" [params] dateform = "Jan 2, 2006" dateformShort = "Jan 2" dateformNum = "2006-01-02" dateformNumTime = "2006-01-02 15:04" # Subtitle for home homeSubtitle = "A simple and beautiful blog" # Set disableReadOtherPosts to true in order to hide the links to other posts. disableReadOtherPosts = false # Enable sharing buttons, if you like enableSharingButtons = true # Metadata mostly used in document's head description = "My new homepage or blog" keywords = "homepage, blog" images = [""]
-
Create your first post:
hugo new posts/my-first-post.md
-
Start the Hugo server:
hugo server -D
Visit http://localhost:1313
to see your new site with the Hello Friend NG theme.
Competitor Comparisons
A simple, retro theme for Hugo
Pros of hugo-theme-terminal
- Minimalist design with a retro terminal-like appearance
- Built-in dark mode and customizable color schemes
- Supports multiple languages and has good documentation
Cons of hugo-theme-terminal
- Limited layout options compared to hello-friend-ng
- Fewer built-in shortcodes and widgets
- May not be suitable for more complex or image-heavy websites
Code Comparison
hugo-theme-terminal:
<header class="header">
<div class="header__inner">
<div class="header__logo">
{{ partial "logo.html" . }}
</div>
{{ partial "menu.html" . }}
</div>
</header>
hello-friend-ng:
<header class="header">
<span class="header__inner">
{{ partial "logo.html" . }}
<span class="header__right">
{{ partial "menu.html" . }}
{{- partial "theme-icon.html" . -}}
</span>
</span>
</header>
Both themes use similar structure for the header, but hello-friend-ng includes an additional theme-icon partial for toggling between light and dark modes.
A minimalist blog theme for hugo.
Pros of hugo-coder
- Cleaner, more minimalist design
- Better out-of-the-box support for multilingual sites
- More active development and frequent updates
Cons of hugo-coder
- Less customization options for layout and styling
- Fewer built-in shortcodes for content enhancement
- Limited social media integration compared to hello-friend-ng
Code Comparison
hugo-coder:
<nav class="navigation">
{{ range .Site.Menus.main }}
<a href="{{ .URL }}">{{ .Name }}</a>
{{ end }}
</nav>
hello-friend-ng:
<nav class="menu">
{{ $currentPage := . }}
{{ range .Site.Menus.main }}
<a href="{{ .URL }}" class="{{ if $currentPage.IsMenuCurrent "main" . }}active{{ end }}">
{{ .Name }}
</a>
{{ end }}
</nav>
The code snippets show the navigation menu implementation. hugo-coder uses a simpler approach, while hello-friend-ng includes additional logic for highlighting the active menu item.
Both themes offer clean and modern designs for Hugo-based websites. hugo-coder focuses on simplicity and multilingual support, making it ideal for minimalist portfolios or blogs. hello-friend-ng provides more customization options and features, suitable for users who want greater control over their site's appearance and functionality.
A fast, clean, responsive Hugo theme.
Pros of PaperMod
- More lightweight and faster loading times
- Better out-of-the-box SEO optimization
- Extensive documentation and configuration options
Cons of PaperMod
- Less customizable design elements
- Fewer built-in shortcodes for content enhancement
- Limited multi-language support compared to hello-friend-ng
Code Comparison
PaperMod (config.yml):
params:
defaultTheme: auto
ShowReadingTime: true
ShowShareButtons: true
ShowPostNavLinks: true
ShowBreadCrumbs: true
hello-friend-ng (config.toml):
[params]
enableThemeToggle = true
enableSharingButtons = true
showReadingTime = true
showToc = true
showBreadCrumbs = true
Both themes offer similar configuration options, but PaperMod uses YAML format while hello-friend-ng uses TOML. PaperMod's configuration is more concise and intuitive, while hello-friend-ng offers more granular control over theme elements.
PaperMod is ideal for users seeking a minimalist, fast-loading theme with good SEO performance. hello-friend-ng is better suited for those who want more design flexibility and built-in features, especially for multi-language sites.
Ananke: A theme for Hugo Sites
Pros of Ananke
- More customizable color schemes and layout options
- Better support for multilingual sites
- Includes built-in search functionality
Cons of Ananke
- Less minimalist design, which may not suit all users
- Steeper learning curve for beginners
- Fewer social media integration options
Code Comparison
Ananke (partial.html):
{{ if .Site.Params.featured_image }}
{{/* Trimming the slash and adding absURL make sure the image works no matter where our site lives */}}
{{ $featured_image := (trim .Site.Params.featured_image "/") | absURL }}
<header class="cover bg-top" style="background-image: url('{{ $featured_image }}');">
<div class="bg-black-60">
{{ partial "site-navigation.html" . }}
<div class="tc-l pv4 pv6-l ph3 ph4-ns">
<h1 class="f2 f-subheadline-l fw2 white-90 mb0 lh-title">
{{ .Site.Title | default .Site.Home.Title }}
</h1>
{{ with .Site.Params.description }}
<h2 class="fw1 f5 f3-l white-80 measure-wide-l center mt3">
{{ . }}
</h2>
{{ end }}
</div>
</div>
</header>
{{ else }}
<header>
<div class="{{ .Site.Params.background_color_class | default "bg-black" }}">
{{ partial "site-navigation.html" . }}
</div>
</header>
{{ end }}
Hello Friend NG (header.html):
<header class="header">
<span class="header__inner">
{{ partial "logo.html" . }}
<span class="header__right">
{{ if len .Site.Menus }}
{{ partial "menu.html" . }}
<span class="menu-trigger">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path d="M0 0h24v24H0z" fill="none"/>
<path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/>
</svg>
</span>
{{ end }}
{{- if .Site.Params.enableThemeToggle }}
<span class="theme-toggle not-selectable">{{ partial "theme-toggle-icon.html" . }}</span>
{{- end}}
</span>
</span>
</header>
❤️A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题
Pros of LoveIt
- More feature-rich with built-in search, multilingual support, and advanced customization options
- Cleaner and more modern design with better typography and layout
- Active development with frequent updates and bug fixes
Cons of LoveIt
- Steeper learning curve due to more complex configuration options
- Potentially slower load times due to additional features and scripts
- May be overkill for simple blog sites or minimalist preferences
Code Comparison
LoveIt configuration example:
[params]
version = "0.2.X"
defaultTheme = "auto"
gitRepo = ""
fingerprint = ""
dateFormat = "2006-01-02"
title = "My Hugo Site"
hugo-theme-hello-friend-ng configuration example:
[params]
dateform = "Jan 2, 2006"
dateformShort = "Jan 2"
dateformNum = "2006-01-02"
dateformNumTime = "2006-01-02 15:04"
Both themes offer customizable configurations, but LoveIt provides more options for fine-tuning the appearance and functionality of the site. The hugo-theme-hello-friend-ng configuration focuses primarily on date formatting, while LoveIt includes additional settings for theme version, default theme, and other features.
Card-style Hugo theme designed for bloggers
Pros of Stack
- More feature-rich with built-in search, table of contents, and image gallery
- Modern, card-based design with better visual hierarchy
- Extensive customization options through configuration files
Cons of Stack
- Potentially higher learning curve due to more complex structure
- May be overkill for simple blogs or minimalist designs
- Slightly larger file size and potentially slower load times
Code Comparison
Stack (config.yaml):
params:
mainSections:
- post
featuredImageField: image
rssFullContent: true
favicon:
Hello Friend NG (config.toml):
[params]
dateform = "Jan 2, 2006"
dateformShort = "Jan 2"
dateformNum = "2006-01-02"
dateformNumTime = "2006-01-02 15:04"
Stack offers more granular control over content display and features, while Hello Friend NG focuses on date formatting and simpler customizations. Stack's YAML configuration may be more readable for some users compared to Hello Friend NG's TOML format.
Both themes are actively maintained and offer responsive designs, but Stack provides a more modern and feature-rich experience at the cost of simplicity. Hello Friend NG is better suited for users seeking a minimalist, easy-to-use theme with a focus on readability and clean design.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Hello Friend NG
General informations
This theme was highly inspired by the hello-friend and hermit. A lot of kudos for their great work.
Table of Contents
- Features
- How to start
- How to configure
- More
- Social Icons
- Known issues
- How to edit the theme
- Changelog
- Sponsoring
- Licence
Features
- Theming: dark/light mode, depending on your system preferences or the users choice
- Great reading experience thanks to Inter font, made by Rasmus Andersson
- Nice code highlighting thanks to PrismJS
- An easy way to modify the theme with Hugo tooling
- Fully responsive
- Support for audio in posts (thanks to @talbotp)
- Builtin (enableable/disableable) multilanguage menu
- Support for social icons
- Support for sharing buttons
- Support for Commento
- Support for Plausible (thanks to @Joffcom)
- Support for utterances comment system
How to start
You can download the theme manually by going to https://github.com/rhazdon/hugo-theme-hello-friend-ng.git and pasting it to themes/hello-friend-ng
in your root directory.
You can also clone it directly to your Hugo folder:
git clone https://github.com/rhazdon/hugo-theme-hello-friend-ng.git themes/hello-friend-ng
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/rhazdon/hugo-theme-hello-friend-ng.git themes/hello-friend-ng
How to configure
The theme doesn't require any advanced configuration. Just copy the following config file.
To see all possible configurations, check the docs.
Note: There are more options to configure. Take a look into the config.toml
in exampleSite
.
baseurl = "localhost"
title = "My Blog"
languageCode = "en-us"
theme = "hello-friend-ng"
paginate = 10
[params]
dateform = "Jan 2, 2006"
dateformShort = "Jan 2"
dateformNum = "2006-01-02"
dateformNumTime = "2006-01-02 15:04"
# Subtitle for home
homeSubtitle = "A simple and beautiful blog"
# Set disableReadOtherPosts to true in order to hide the links to other posts.
disableReadOtherPosts = false
# Enable sharing buttons, if you like
enableSharingButtons = true
# Show a global language switcher in the navigation bar
enableGlobalLanguageMenu = true
# Metadata mostly used in document's head
description = "My new homepage or blog"
keywords = "homepage, blog"
images = [""]
[taxonomies]
category = "blog"
tag = "tags"
series = "series"
[languages]
[languages.en]
title = "Hello Friend NG"
keywords = ""
copyright = '<a href="https://creativecommons.org/licenses/by-nc/4.0/" target="_blank" rel="noopener">CC BY-NC 4.0</a>'
readOtherPosts = "Read other posts"
[languages.en.params]
subtitle = "A simple theme for Hugo"
[languages.en.params.logo]
logoText = "hello friend ng"
logoHomeLink = "/"
# or
#
# path = "/img/your-example-logo.svg"
# alt = "Your example logo alt text"
# And you can even create generic menu
[[menu.main]]
identifier = "blog"
name = "Blog"
url = "/posts"
More things
Built-in shortcodes
Of course you are able to use all default shortcodes from hugo (https://gohugo.io/content-management/shortcodes/).
image
Properties:
src
(required)alt
(optional)position
(optional, default:left
, options: [left
,center
,right
])style
Example:
{{< image src="/img/hello.png" alt="Hello Friend" position="center" style="border-radius: 8px;" >}}
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 ```
Favicon
Check the docs.
Audio Support
You wrote an article and recorded it? Or do you have a special music that you would like to put on a certain article? Then you can do this now without further ado.
In your article add to your front matters part:
audio: path/to/file.mp3
Social Icons:
A large variety of social icons are available and can be configured like this:
[[params.social]]
name = "<site>"
url = "<profile_URL>"
Take a look into this list of available icon options.
If you need another one, just open an issue or create a pull request with your wished icon. :)
Known issues
There is a bug in Hugo that sometimes causes the main page not to render correctly. The reason is an empty taxonomy part. Related issue tickets: !14 !59.
Either you comment it out completely or you write the following in
[taxonomies]
tag = "tags"
category = "categories"
How to edit the theme
Just edit it. You don't need any node stuff. ;)
Sponsoring
If you like my work and if you think this project is worth to support it, just
Licence
Copyright © 2019-2021 Djordje Atlialp
The theme is released under the MIT License. Check the original theme license for additional licensing information.
Top Related Projects
A simple, retro theme for Hugo
A minimalist blog theme for hugo.
A fast, clean, responsive Hugo theme.
Ananke: A theme for Hugo Sites
❤️A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题
Card-style Hugo theme designed for bloggers
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot