Convert Figma logo to code with AI

rhazdon logohugo-theme-hello-friend-ng

Pretty basic theme for Hugo that covers all of the essentials. All you have to do is start typing!

1,510
807
1,510
81

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

3,627

❤️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:

  1. Initialize a new Hugo site:

    hugo new site mysite
    cd mysite
    
  2. 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
    
  3. 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 = [""]
    
  4. Create your first post:

    hugo new posts/my-first-post.md
    
  5. 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>
3,627

❤️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 Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Hello Friend NG

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

  • 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
Buy Me A Coffee

Licence

Copyright © 2019-2021 Djordje Atlialp

The theme is released under the MIT License. Check the original theme license for additional licensing information.