Source for the Go Cookbook, a community build and contributed collection of practical recipes for real world Golang development.
The Go Cookbook is built by the community, so your contributions are very welcome. Just send a pull request for any changes or additions.
Recipes are generated from the _data/chapters.yml file, which is used to build the index page. The chapters.yml
file is roughly like this:
- title: Strings
recipes:
- title: Concatenating Strings
path: /chapters/strings/concatenation
wip: true
- title: Detecting a Substring
path: /chapters/strings/detecting
- title: Detecting All Substrings
path: false
Specifying wip: true
puts "[Work in progress]" in front of the recipe in the index. Setting path: false
causes the recipe to be listed without a link.
Recipe files have a couple of required properties, which must be specified in the preamble like such:
---
title: Processing a String One Word or Character at a Time
question: Given a string, how do I break it into words or characters and process each one in turn?
---
Also, to show example code, recipes can make use of the {% include example.html example="filename" %}
helper. This will include both filename.go
as example source code, and filename.expected.escaped
as the output of that code. If you're curious, that helper is defined here. The filename.expected.escaped
files are automatically generated by the ./run_tests
script, described below.
$ bundle install
$ jekyll serve -B
$ open http://localhost:4000
$ ./run_tests
...or...
$ ./run_tests chapters/strings/reverse/test_reverse_by_character.go
The run_tests
script not only runs the tests, but also ensures that the .expected
, .go.escaped
, and .expected.escaped
files are in place. These files are then used in the recipe templates to ensure all examples are up to date and correct.
The Go Cookbook is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.