## Bilberry Hugo Theme
[](#contributors)
[](https://github.com/Lednerb/bilberry-hugo-theme/releases)
[](https://github.com/Lednerb/bilberry-hugo-theme/blob/master/LICENSE.md)
[](https://discord.gg/vZVHJ4j)
[](https://github.com/Lednerb/bilberry-hugo-theme)
This is a premium theme for [HUGO](https://gohugo.io), inspired by the [Lingonberry WordPress](http://www.andersnoren.se/teman/lingonberry-wordpress-theme/) theme from Anders NorΓ©n.
Bilberry is an adaption that comes with different optimizations and little features as listed below.
Click here for a [DEMO / PREVIEW](https://lednerb.github.io/bilberry-hugo-theme).
If you like this theme and/or use it for commercial purposes, please support me!
## Table of Contents
- [Requirements](#requirements)
- [Quick Start](#quick-start)
- [Configuration](#configuration)
- [Features](#features)
- [Algolia Search](#algolia-search)
- [Keyboard Shortcuts](#keyboard-shortcuts)
- [Post Types](#post-types)
- [Pages and External Links](#pages-and-external-links)
- [Manual Summary Breaks](#manual-summary-breaks)
- [Disqus Comments](#disqus-comments)
- [Responsive Design](#responsive-design)
- [Automatic Image Resizing](#automatic-image-resizing)
- [Permanent Top Navigation](#permanent-top-navigation)
- [MathJAX Markup](#mathjax-markup)
- [External Images](#external-images)
- [Custom 404 site](#custom-404-site)
- [Custom Post Types](#custom-post-types)
- [Customizing Individual Posts](#customizing-individual-posts)
- [Custom colors and fonts](#custom-colors-and-fonts)
- [CSS and JS modules](#css-and-js-modules)
- [Translations](#translations)
- [Credits](#credits)
- [Support and Discussions](#support-and-discussions)
- [Contributors](#contributors)
- [License](#license)
## Requirements
**Hugo version >= 0.43 Extended**
This theme makes use of Hugo Pipes, and requires at least Hugo version 0.43 **extended**. Please follow the installation instructions for your platform [here](https://gohugo.io/getting-started/installing/).
## Quick Start
- Create a new hugo site
```
hugo new site my-new-blog
```
- Install this theme
```
cd my-new-blog/themes
git clone https://github.com/Lednerb/bilberry-hugo-theme.git
```
If you don't use git, you can download and extract this theme manually into the themes folder.
Please ensure that the folder is renamed to "bilberry-hugo-theme"
- Copy example content and default config file for a quick start
```
cp -r bilberry-hugo-theme/exampleSite/* ../
```
- Remove the default archetype
```
cd ../
rm archetypes/default.md
```
- Test and configure your site
```
hugo server -D
```
__Important:__
Do NOT change the name of the theme folder.
If you rename the folder the different post types will not work.
## Configuration
To configure your site according to your needs, just open the `config.toml` file in your project folder and adjust the settings.
All options you can and should customize are commented so it should be no problem for you to get it done.
## Features
### Algolia Search
Bilberry includes a convenient search functionality for your site.
You can test it on the demo site.
Just click on the navigation bar at the top right of the header.
#### Setup
If you do not want to use the search functionality set `algolia_search = false` in your `config.toml` file.
If you want to include the algolia search for your site, you have to follow these steps:
1. Register for a free Algolia Search account at https://www.algolia.com/
2. Add a `New Application`. You can choose the `COMMUNITY` plan.
3. Switch over to `Indices` and create a new one.
4. Switch over to `API Keys` and copy your `Application ID`, `Search-Only API Key` and chosen `Index name` to your `config.toml` file.
5. Ensure that `algolia_search = true` is set.
6. Check the next section [Update the search index](#update-the-search-index), follow the steps and come back again
7. Back in your algolia index, switch to `DISPLAY` and select `language` in the `Attributes for faceting` option.
8. Done.
#### Update the search index
You have to repeat this step every time you change a post or publish a new one to update the search index.
1. Publish your changes via the `hugo` command.
2. Head over to the `public/index.json` file and copy everything in there
3. Login to your algolia account, open your index and click at `Add records manually`
4. Paste the copied text from the `index.json` file.
5. Done.
### Keyboard Shortcuts
If you want to start a search on your blog simply type `s` and the search menu will open.
To close it again you can enter `esc` at any time.
### Post Types
Bilberry comes with a bunch of predefined post types.
Available post types are `article`, `audio`, `code`, `gallery`, `link`, `page`, `quote` and `video`.
To use a post type, just create new content via the hugo command.
For example:
```
hugo new quote/edward-snowden-about-privacy.md
```
`article` is the default post type if you want to use another type of content as the predefined.
Just discover the entries from the `exampleSite` folder to get an overview of the great possibilities Bilberry provides ;-)
### Pages and External Links
The post type `page` is the only one that appears in the top navigation (when you click on the navigation button on the top right).
A `page` can be a static page (about me or impress site) or a link to another page as it is used in the demo to link to the Bilberry GitHub repository.
The post type `link` always links to an external site and can be used with or without a background image.
### Manual Summary Breaks
You can influence the summary outpot on the listing pages (such as the home page or the category or tag pages) in three ways:
- You don't set a manual summary break.
Hugo will care for you and generates a summary as well as a _Continue reading_ link.
- You set a manual break via ``
Just write your content and if you want to break use the code snippet to tell Hugo to break here.
- You want to display the full article without a _Continue reading_ link
In this case, set the option `noSummary: true` in the header area (Front Matter) of your `.md` file.
### Disqus comments
If you want to enable the functionality for your users to write comments below your articles, you can register for a free [Disqus](https://disqus.com) account.
Just create a new site and copy your site's short name to the `config.toml` file at `disqusShortname`.
You can manage and moderate the comments either on your website or at the disqus management panel.
### Responsive Design
Bilberry is optimized for desktop and mobile devices (tablets and smartphones).
### Automatic Image Resizing
The bilberry theme handles image crops and resizes automatically by default.
However, if you want to disable this functionality in general, you can set `resizeImages: false` in your `config.toml` file.
If you want to disable this functionality just on some posts, you can set `resizeImages: false` in your post's settings.
### Permanent Top Navigation
If you want to permanently display the top navigation with the algolia search bar and the `page` entries, you can set the `permanentTopNav` option to `true` in your site's config file.
Note that on mobile devices the navigation will still be collapsed because otherwise, the navigation menu hides the essential parts of your site.
### MathJAX Markup
If you want to add [MathJAX](https://www.mathjax.org) markup support, set parameter `enable_mathjax` option to `true` in your site's config file.
## Custom 404 site
If you want to customize your 404 site, copy the `themes/bilberry-hugo-theme/layouts/404.html` to your local `layouts/404.html` and edit the file.
You can quickly change the message and / or the icon class for example.
Otherwise, you can replace the whole content with your 404 site markup.
## Custom Post Types
If you want to add a custom post type to change the icon in the bubble on the left column you can simply create those as you wish.
If you want to create a `book` post type, for example, you can do the following:
1. Copy the default `themes/bilberry-hugo-theme/layouts/partials/content-type/article.html` to your site's `layouts/partials/content-type/` folder.
2. Rename the file to your custom post type. A proper name in the _book scenario_ would be `book.html`
3. Customize the file.
You can change the icon in the bubble with another [Font Awesome Icon](http://fontawesome.io/icons/).
In the _book scenario_ we would change the `fa-pencil` class to `fa-book`:
``
4. Create your new posts with the post type prefix: `hugo new book/a-very-cool-book.md`
5. Done.
If you want to use custom Front Matter variables, create a `book.md` archetype in your `archetypes/` directory.
You can find further information in the official HUGO docs.
## External Images
If you want to use external images (on another server or installation, etc.) for the `featuredImage` or in the `gallery` post type, you can use them by specifying the following in the post's config within the frontmatter:
`/content/article/my-external-featured-image-post.md`
```
featuredImage: "https://example.org/images/my-image.jpg"
```
`/content/gallery/my-external-gallery-post.md`
```
gallery: [
"https://example.org/images/gallery-image1.jpg",
"https://example.org/images/gallery-image2.jpg",
"https://example.org/images/gallery-image3.jpg"
]
```
## Customizing Individual Posts
Posts can be customized via a variety of options.
To exclude posts from appearing on your blog index, while still being displayed in categories, add `excludeFromIndex: true` to the post configuration.
The theme also has options for a pinned post. Just uncomment `pinnedPost` in `config.toml`, and point it to the post you'd like permanently pinned to the top of the page. The `pinOnlyToFirstPage` setting lets you control if you'd like to only display the pinned post on the index, or on all pages.
A custom icon can be declared per post, by specifying a font-awesome icon in the post configuration, such as `icon: fa-thumb-tack` for a pinned post.
--------------
If you want to change the default post types (e.g., don't use the pencil icon on the `article` or default type, but another one) copy the original file to your local `layouts/partials/content-type/` directory and edit it there.
Otherwise, your changes would be overwritten when you update to the latest theme version.
## Custom colors and fonts
Bilberry uses SCSS for styling, and [Hugo Pipes](https://gohugo.io/hugo-pipes/introduction/) to dynamically create the combined and compressed production-ready stylesheets. Hugo Pipes requires Hugo version >= 0.43 **extended**. Find installation instructions for your platform [here](https://gohugo.io/getting-started/installing/).
If you want to change any colors or fonts, you have follow these steps:
1. Install this theme to your `themes` directory
1. Modify the `scss/_variables.scss` file to customize your colors.
If you want to change the header's color just edit the `$base-color` variable
1. Done!
## CSS and JS modules
This theme supports hot-swappable CSS and JavaScript extentions. Modules can be specified using the `(css|js)_modules` list parameter. Modules can be specified either relative to the `static` directory (e.g. `exampleSite/static/css/custom.css`) or as a URL.
Modules are imported in the order they appear in the list, and immediately after the default Bilberry CSS and JS files are imported.
## Translations
This theme has support for multi-language sites and therefore translations for 10+ languages.
If you want to contribute and improve this theme for all users, please check our translation project at [POEditor](https://poeditor.com/projects/view?id=202795)
Feel free to submit a request for a new language or improve existing ones!
## Credits
Bilberry is inspired by the [WordPress theme Lingonberry](http://www.andersnoren.se/teman/lingonberry-wordpress-theme/), created by Anders NorΓ©n.
Bilberry is a theme for the great [HUGO static site generator](https://gohugo.io).
A big thank you goes to [@Ipstenu](https://github.com/Ipstenu) for his help in [this thread](https://discourse.gohugo.io/t/search-index-json-file-for-lunr-js/6286/5?u=lednerb) that helped me to create the `index.json` for the algolia export.
## Support and Discussions
If you enjoy this theme and want to stay up to date or just want to say thanks, have a look at this Discord Channel:
[](https://discord.gg/vZVHJ4j)
## Contributors
Thanks goes to these wonderful people ([emoji key](https://github.com/kentcdodds/all-contributors#emoji-key)):
| [
Sascha Brendel](https://sascha-brendel.de)
[π¬](#question-Lednerb "Answering Questions") [π](#blog-Lednerb "Blogposts") [π»](https://github.com/Lednerb/bilberry-hugo-theme/commits?author=Lednerb "Code") [π¨](#design-Lednerb "Design") [π](https://github.com/Lednerb/bilberry-hugo-theme/commits?author=Lednerb "Documentation") [π](#translation-Lednerb "Translation") | [
Anna Brendel](https://anna-brendel.de)
[π€](#ideas "Ideas, Planning, & Feedback") [π](#translation "Translation") | [
Givi Khojanashvili](https://www.linkedin.com/in/khojanashvili/)
[π»](https://github.com/Lednerb/bilberry-hugo-theme/commits?author=gigovich "Code") | [
Chung Tran Anh](https://github.com/anhchungite)
[π»](https://github.com/Lednerb/bilberry-hugo-theme/commits?author=anhchungite "Code") [π](#translation-anhchungite "Translation") | [
Minke Zhang](http://blogzhang.com)
[π»](https://github.com/Lednerb/bilberry-hugo-theme/commits?author=cripplet "Code") |
| :---: | :---: | :---: | :---: | :---: |
| [
Pavel Kanyshev](https://github.com/aerohub)
[π»](https://github.com/Lednerb/bilberry-hugo-theme/commits?author=aerohub "Code") [π](#translation-aerohub "Translation") | [
Marcel Kraus](https://www.marcelkraus.de)
[π»](https://github.com/Lednerb/bilberry-hugo-theme/commits?author=marcelkraus "Code") | [
Nick Busey](http://nickbusey.com/)
[π»](https://github.com/Lednerb/bilberry-hugo-theme/commits?author=NickBusey "Code") | [
lkorzen](https://github.com/lkorzen)
[π](#translation-lkorzen "Translation") | [
Chris Stayte](http://www.chrisstayte.com)
[π](https://github.com/Lednerb/bilberry-hugo-theme/issues?q=author%3AChrisStayte "Bug reports") |
| [
Dmitry Matrosov](https://twitter.com/amidos_me)
[π»](https://github.com/Lednerb/bilberry-hugo-theme/commits?author=meAmidos "Code") | [
Marc-Antoine](https://marca.finch4.xyz/)
[π»](https://github.com/Lednerb/bilberry-hugo-theme/commits?author=Embraser01 "Code") [π](https://github.com/Lednerb/bilberry-hugo-theme/issues?q=author%3AEmbraser01 "Bug reports") | [
Nina Zakharenko](http://nnja.io)
[π»](https://github.com/Lednerb/bilberry-hugo-theme/commits?author=nnja "Code") [π](https://github.com/Lednerb/bilberry-hugo-theme/issues?q=author%3Annja "Bug reports") [π](https://github.com/Lednerb/bilberry-hugo-theme/commits?author=nnja "Documentation") | [
Nisarga](https://github.com/nisargap)
[π»](https://github.com/Lednerb/bilberry-hugo-theme/commits?author=nisargap "Code") | [
Pablo Domingo Rojo](https://github.com/pdoro)
[π»](https://github.com/Lednerb/bilberry-hugo-theme/commits?author=pdoro "Code") |
| [
Rob Baruch](https://github.com/rabarar)
[π»](https://github.com/Lednerb/bilberry-hugo-theme/commits?author=rabarar "Code") | [
Taoshi](https://github.com/GMpet)
[π](#translation-GMpet "Translation") | [
nonumeros](https://github.com/nonumeros)
[π»](https://github.com/Lednerb/bilberry-hugo-theme/commits?author=nonumeros "Code") | [
Marcelo GonΓ§alves](http://marcelogoncalves.com.br)
[π](#translation-marcelocg "Translation") | [
DΓ‘vid SΓ‘rkΓ‘ny](https://sarkanydavid.com)
[π](#translation-davidsarkany "Translation") |
| [
meonamz](https://github.com/meonamz)
[π](#translation-meonamz "Translation") | [
Hamza Yusuf ΓakΔ±r](https://github.com/hycakir)
[π](#translation-hycakir "Translation") |
This project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification. Contributions of any kind welcome!
## License
The Bilberry Theme for HUGO is licensed under the MIT license.