Here are the steps to follow to get going as an ADO content contributor (or heck, even a code contributor)
You can use VSCode + Remote extensions (and Docker), or you can use Docker outside of VSCode, or you can install hugo on your computer.
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 elementsdocker-compose up
docker exec ado-hugo_hugo_1 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 elementshugo server -w --baseUrl="http://localhost:1313"
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 elementsEvery episode needs a few images. You need the following
my-episode-name.png
) and stored in the static/episode/img
folder.my-episode-name-banner.jpg
) and stored in the static/episode/img
folder.my-episode-name.png
). They are stored in the static/img/social/fb
folder.mstratton.jpg
). They are stored in the static/img/guests
folderWhen 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
.
\"DevOps\"
"mbluth", "ssitwell"
). The names should line up to md files in content/guest
"mstratton", "thess"
). The names should line up to md files in content/host
data/sponsors
"42"
episode/img/my-episode-name.png
.episode/img/my-episode-name-banner.png
./img/social/fb/my-episode-name.png
aliases = ["/27"]
/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 is much worse for us 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.
There is a GitHub Action that runs on all PRs that contain changed images, which will optimize any images in the repo that need it.
The Hugo theme used is Castanet.
We now load Castanet as a Hugo module; to update to a newer version, simply edit go.mod
to reflect the version you are looking for, and then run hugo mod get -u
.
Thanks to Jess Frazelle @jfrazelle for clueing us into the awesome previews with Netlify!