Every episode needs a few images. You need the following
- Episode thumbnail - This must be square, PNG, and 500px by 500px. Enlarge it slightly if you have to. They should be named after the episode name (i.e.,
my-episode-name.png
) and stored in thestatic/episode/img
folder. - Episode banner - These should be JPG, 800px by 420 px. They should be named using the episode name as a template (i.e.,
my-episode-name-banner.jpg
) and stored in thestatic/episode/img
folder. - Facebook sharing image - These need to be PNG, 1200px by 630 px, and named after the episode (i.e.,
my-episode-name.png
). They are stored in thestatic/img/social/fb
folder. - Guest image(s) - These should be JPG, 500px x 500px, and should be named after the guest file name (i.e.,
mstratton.jpg
). They are stored in thestatic/img/guests
folder
When you create a new episode, Hugo will populate the frontmatter of the .md file with a bunch of stuff for you. These are the required items to be sure to populate:
It is HIGHLY recommended to use the hugo new episode
command to create an episode. For example, hugo new episode/my-episode-name.md
will create a properly formatted file in events/my-episode-name.md
.
- Description - A string in double quotes. Please make sure that any double quotes are escaped, as such:
\"DevOps\"
- podcast_file - this is the filename of the podcast MP3. You may not have this at the time you are creating an episode page, so that's okay.
- podcast_duration - the length of the podcast in minutes:seconds, etc
- guests - a comma separated list of the guests, in the format first initial, last name (i.e.,
"mbluth", "ssitwell"
). The names should line up to md files incontent/guest
- hosts - a comma separated list of the hosts, in the format first initial, last name (i.e.,
"mstratton", "thess"
). The names should line up to md files incontent/host
- sponsors - comma separated list of the sponsors for the episode. Same rules apply as guests, but the data files are in
data/sponsors
- explicit - this is a "yes" or "no" (in quotes) value depending on if the episode has explicit language. If you are not sure, please set it to "yes".
- episode - a string for the episode number, i.e.,
"42"
- episode_image - the path to the image for this episode for the front page. Example:
episode/img/my-episode-name.png
. - episode_banner - the path to the banner image for the episode. Example:
episode/img/my-episode-name-banner.png
. - title - the title of the episode. It's a string inside double quotes.
- images - Array of images for social sharing. Should be one image. Example:
/img/social/fb/my-episode-name.png
- aliases - Array of strings for redirects. The only one you should ever need is for the episode number, i.e.,
aliases = ["/27"]
- youtube - the URL of the YouTube video, if there is one. If not, delete this line from the frontmatter of the episode.
- transcript - the path to the static text file with the transcript for the episode. The content should be in Markdown. Example:
/static/transcripts/chatops.txt
Guest files are now Markdown files that live in content/guest
. Use the command hugo new guest
to create a new guest, using first initial, last name, i.e., hugo new guest/mbluth.md
.
For full documentation of all the possible fields in a Guest page, see https://github.com/mattstratton/castanet/blob/master/REFERENCE.md#guest-pages
When writing show notes, here are a few things to consider:
Just pasting in a URL isn't helpful SEO-wise, and it's also less delightful for the reader. For example, [Jill’s awesome talk about recruiting](http://www.thing.com/stuff)
is better than http://www.thing.com/stuff
If you are referencing a tweet, please use the built-in shortcode to create a pretty embed for the tweet. You can do this by using the code {{< tweet 666616452582129664 >}}
where the number is the ID of the tweet (which is the end of the tweeet's URL, for example, https://twitter.com/spf13/status/666616452582129664
.
The exception to this rule is if you suspect that the tweet might be deleted due to controversy; at that point you might consider a screenshot of the tweet.
The Hugo theme used is Castanet.
If there are new versions of Castanet, all that should be required is to replace the entire themes/castanet
directory with the new downloaded version. Check out utils/README.md for a helpful script to do this in a fancy automated way.
Thanks to Arrested DevOps for making their website source available, and particularly Matt Stratton for the Castanet Theme.
- Install Hugo - NOTE: Please make sure it is at least version 0.74.3
- Clone this repo
- If you want to fire up a local copy to see your changes as you go:
hugo server -w --baseUrl="http://localhost:1313"
- You probably want to do the previous thing in another pane/window, as it needs to keep running.
- If you want to make a new episode, run:
hugo new episode/my-episode-name.md
Note - it is highly recommended that you follow this pattern rather than duplicating an existing file, as this will ensure you get the latest and greatest required frontmatter elements