
At this point we're probably not going to add major new examples to Go by Example. Remove the todo-ish looking list from examples.txt to avoid implying otherwise in that file.
Go by Example
Content, toolchain, and web server for Go by Example.
Overview
The Go by Example site is built by extracting code &
comments from source files in examples
and rendering
that data via the site templates
. The programs
implementing this build process are in tools
.
The build process produces a directory of static files -
public
- suitable for serving by any modern HTTP server.
We include a lightweight Go server in server.go
.
Building
To build the site:
$ go get github.com/russross/blackfriday
$ tools/build
$ open public/index.html
To build continuously in a loop:
$ tools/build-loop
Local Deploy
$ mkdir -p $GOPATH/src/github.com/mmcgrana
$ cd $GOPATH/src/github.com/mmcgrana
$ git clone git@github.com:mmcgrana/gobyexample.git
$ cd gobyexample
$ go get
$ foreman start
$ foreman open
Platform Deploy
Basic setup:
$ export DEPLOY=$USER
$ export APP=gobyexample-$USER
$ heroku create $APP -r $DEPLOY
$ heroku config:add -a $APP
BUILDPACK_URL=https://github.com/mmcgrana/buildpack-go.git
CANONICAL_HOST=$APP.herokuapp.com \
FORCE_HTTPS=1 \
AUTH=go:byexample
$ heroku labs:enable dot-profile-d -a $APP
$ git push $DEPLOY master
$ heroku open -a $APP
Add a domain + SSL:
$ heroku domains:add $DOMAIN
$ heroku addons:add ssl -r $DEPLOY
# order ssl cert for domain
$ cat > /tmp/server.key
$ cat > /tmp/server.crt.orig
$ curl https://knowledge.rapidssl.com/library/VERISIGN/ALL_OTHER/RapidSSL%20Intermediate/RapidSSL_CA_bundle.pem > /tmp/rapidssl_bundle.pem
$ cat /tmp/server.crt.orig /tmp/rapidssl_bundle.pem > /tmp/server.crt
$ heroku certs:add /tmp/server.crt /tmp/server.key -r $DEPLOY
# add ALIAS record from domain to ssl endpoint dns
$ heroku config:add CANONICAL_HOST=$DOMAIN -r $DEPLOY
$ heroku open -r $DEPLOY
License
This work is copyright Mark McGranaghan and licensed under a Creative Commons Attribution 3.0 Unported License.
The Go Gopher is copyright Renée French and licensed under a Creative Commons Attribution 3.0 Unported License.
Translations
Contributor translations of the Go by Example site are available in:
Thanks
Thanks to Jeremy Ashkenas for Docco, which inspired this project.