You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

243 lines
9.9 KiB
Markdown

# Setup Instructions
## Get the theme
If you have `git` installed, you can do the following at the command-line-interface within the Hugo directory:
```
$ mkdir themes
$ cd themes
$ git submodule add https://github.com/funkydan2/alpha-church.git
```
You should see a folder called `alpha-church` inside the `themes` directory that we created a few moments ago. For more information read the official [setup guide](//gohugo.io/overview/installing/) of Hugo.
## Update the theme
If the theme has been updated, you can use `git` to merge latest commits to the submodule by running `git submodule update --rebase --remote` in root directory of your project.
## Configuration
In the next step navigate to the `exampleSite` folder at `themes/alpha-church/exampleSite/` and copy `config.toml` from the exampleSite folder into the root folder of your Hugo site. Then delete the line which says `themesDir = "../.."`.
(Please refer to https://gohugo.io/overview/quickstart/ for installing a Hugo theme.)
## The `config` file
Now, let us take a look at `config.toml`. Let's take a look at some of the settings.
### 1. Custom CSS
The easiest way to change the look of your site is by overriding the included style sheet. You can do this by putting your css file in `static/css/my.css` and entering `customCSS = ["/css/my.css"]` in the config file.
### 2. Google Analytics
Enable by putting your Analytics key here.
```
GoogleAnalytics = ""
```
### 3. Menu & Nested Menus
The entries in the items menu can be customised. The structure of the menu is defined in `config.toml`.
```
[menu]
[[menu.main]]
name = "Home"
url = "/"
weight = 1
```
Define a label and enter the URL of the resource you want to link. The `weight` value determines the order of menu items. Lower weighted entries appear to the *left* of higher weighted entries.
For sub-menus, you can use the following format:
```
[[menu.main]]
name = "About"
url = "/about"
weight = 2
[[menu.main]]
name = "About Us"
parent = "About"
url = "/about"
weight = 1
```
In this example, *About* is in the main menu, but *About Us* is in the *About* sub-menu. In *Alpha Church* the sub-menu is a drop-down menu.
### 4. Podcasting
In `config.toml` there are settings which are used to generate the podcast RSS feed.
```
[params.podcast]
title = "Listen to Alpha Church"
subtitle = ""
summary = "Alpha-Church sermons, talks, messages—podcasted."
email = "test@example.com"
image = "Link to 1400*1400 (or larger) file"
category = "Religion & Spirituality"
sub_category = "Christianity"
#num_episodes = 50
#iTunesID = 12345677
```
Almost all of these need to be set or else the feed will not be valid. You can leave the `subtitle` entry blank. You don't need to set `num_episodes` unless you want your feed to include a number other than the default (50).
Some of these entries look like site-wide settings (e.g. `title`). They need to be set here as you may which to use a title for your site which is different from your podcast.
The `iTunedID` setting is used to create a subscribe banner for users of the Safari web browser on iOS. Only set this variable if your sermon podcast feed has been submitted to iTunes. [Click here to read instructions on how to find the ID number](https://www.podigee.com/en/help/how-to-find-your-podcasts-itunes-id/).
As you're developing your site, you'll need to check the podcast feed is valid by entering the feed's URL into [a podcast feed validator](https://castfeedvalidator.com).
The podcast feed is found at `/sermons/index.xml`.
### 5. Landing (Home) page
The landing page is quite customisable. It consists of five blocks: a banner, an area for information about services (including a map), featured icons, featured images, and a contact form.
Settings for the landing page are configured in the frontmatter of `/content/_index.md`. There is an example configuration in the `exampleSite` folder.
#### a. Banner
The banner section requires a background image to be set. This image should be 1800*1200 px, and a relatively simple image will probably look best. The filename of this banner is set in `config.toml`
```
[params.banner]
image = "/img/banner.jpg"
```
You can place link buttons in this area by using the following settings.
```
[[banner.button]]
url = "/contact"
text = "Get in touch"
type = "primary"
```
#### b. Service information
Below the banner is an area which could be used for highlight service location and times. The settings for the [open street map](https://openstreetmap.org) in this area are detailed below.
#### c. Feature Icons
These feature icons are pulled from [fontawesome](https://fontawesome.com). The layout requires an even number of these blocks (well, you could have an odd number, but it would look, well, odd). To find items [search around on the fontawesome site](https://fontawesome.com/icons?d=gallery)
```
[[feature_icons.tile]]
icon = "fa-users"
icon_pack = "fas"
accent = "2"
title = "Meet"
text = "Meeting together to hear."
```
The value of the `icon` and `icon_pack` setting is found on the FontAwesome site. `Accent` is a colour scheme set in the css (there are 5 accent colours).
#### d. Feature Images
Like the *Feature Icons* this section looks best with an even number of entries.
### 6. Map
This theme makes use of [open street maps](https://openstreetmap.org) on the landing page and as a shortcode.
To set your organisations' location edit `config.toml`.
```
[params.map]
service = "osm"
latitude = "48.8530"
longitude = "2.3498"
zoom = "18"
```
To find the appropriate values, visit https://openstreetmap.org and find the location you want to be shown on your map. Then look at the URL in your browser's location bar. You'll see something like `https://www.openstreetmap.org/search?query=New%20York#map=14/40.6971/-73.9796`. The final three numbers in this URL give the values of Zoom/Latitude/Longitude.
If you'd like a map on another page, you can use an inline shortcode `{{< map.inline >}}{{ partial "map" . }}{{< /map.inline >}}`. **N.B. inline shortcodes must be [enabled in your config file](https://gohugo.io/templates/shortcode-templates/#inline-shortcodes).**
You can also use Google Maps. To do this, you'll need an [API Key from Google](https://developers.google.com/maps/documentation/embed/get-api-key) and set it in `config.toml`:
```
[params.map]
service = "google"
latitude = "48.8530"
longitude = "2.3498"
zoom = "18"
api_key = "XXXXXXXX"
```
If you're using Google Maps there are two *optional* settings `langauge` and `region`. Without these settings, Google Maps will display in the language of the user's browser. Using these settings will force Google Maps to be displayed for the given localisation. See [here for a list of supported languages](https://developers.google.com/maps/faq#languagesupport) and [here for a list of valid regions](https://www.iso.org/obp/ui/#search).
e.g.
```
language = "fr"
region = "FR"
```
You can also use Mapbox. To do this you'll need an [API Key from Mapbox](https://docs.mapbox.com/help/how-mapbox-works/access-tokens/) and set it in `config.toml`. You can also define your custom map style using [Mapbox Studio](https://www.mapbox.com/mapbox-studio/).
```
[params.map]
service = "mapbox"
latitude = "48.137232"
longitude = "11.575503"
zoom = "13"
api_key = "XXXXXXXX"
style_url = "mapbox://LINK_TO_MAPBOXP_STYLE"
marker_title = "Popup Marker Title"
marker_address= "Streetname <br> Postcode Town"
```
> If `marker_title` and `marker_address` are not set, the popup will not be rendered in the map.
### 7. Contact Form
You can have a contact form using either a [netlify form](https://www.netlify.com/docs/form-handling/) (if you're deploying with netlify) or [formspree](https://formspree.io)
```
[params.contact]
service = ""
confirm_page = "/contact_thanks"
formspree_email=""
```
With these setting, set *service* to either `service = "netlify"` or `service = "formspree"`.
If you're using formspree, you'll also need to set `formspree_email` to your email address.
If you're using netlify, you'll also want to set the `confirm_page = "url"` to a page on your site. That way after a user submits the form they'll be sent to a page with your customised thank you message, rather than a generic netlify page.
If you'd like a contact form on another page, use an inline shortcode `{{< contact.inline >}}{{ partial "contact" . }}{{< /contact.inline >}}` **N.B. inline shortcodes must be [enabled in your config file](https://gohugo.io/templates/shortcode-templates/#inline-shortcodes).**
### 8. Links
At the very bottom of each page is a bunch of icons (from FontAwesome) which can be used for links to social media, RSS feeds, or whatever you like!
```
[[params.links]]
service = "Facebook"
icon = "fa-facebook"
icon_pack = "fab"
link = "//facebook.com/"
[[params.links]]
service = "Podcast"
icon = "fa-podcast"
icon_pack = "fas"
link = "/sermons/index.xml"
[[params.links]]
service = "Full RSS Feed"
icon = "fa-rss"
icon_pack = "fas"
link = "/index.xml"
```
### 8. Bible Popups
*Changed on Tuesday, 9 April 2019..*
Configuration in [params]. Set `bible_popups = "faithlife"` to include Bible reference popups from [Faithlife](https://faithlife.com/products/reftagger), or `bible_popups = "blb"` to use the [Blue Letter Bible](https://www.blueletterbible.org/webtools/BLB_ScriptTagger.cfm) popups.
You may also set the bible translation by defining `bible_version = "ESV"` (or NLT, KJV, CSB, etc.). If you don't define a translation, the default *ESV* will be used.
## Nearly finished
To preview your site, run Hugo's built-in local server.
```
$ hugo server -D
```
Now enter [`localhost:1313`](http://localhost:1313) in the address bar of your browser.
# Usage Instructions
## Image Dimensions
This theme makes use of 'hero' images for regular and sermon/podcast pages. Images need to be the right dimesions in order to display properly.
|Page Type|Width|Height|
|---|---|---|
|Sermon|768px|644px|
|Regular page|1280px| |
|Front page feature images|618px|412px|