Go в примерах
HTML CSS Go Shell
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 84 commits ahead, 122 commits behind mmcgrana:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
examples
public
templates
tools
vendor/pygments
.env
.gitignore
.godir
Procfile
README.md
deploy.sh
examples.txt
server.go

README.md

Go в примерах

В этом репозитории контент, набор инструментов для сборки статического сайта и веб-сервер для Go в примерах.

Обзор

Сайт Go в примерах собирается путем извлечения кода и коментариев из файлов с исходниками в папке examples и дальнейшим рендерингом этих данных через шаблоны в папке templates. Программы для сборки находятся в папке tools.

Процесс сборки создает папку со статическими файлами - public - подходящими для обслуживания любым современным HTTP-сервером. Мы включили в поставку легковесный Go-сервер в файле server.go.

Русская версия

Русская версия была немного доработана. Теперь статику в папке public можно хостить прямо на Github. Подробнее о том как настроить сборку проекта и хостинг cтатики на Github.

Сборка

Для сборки сайта:

Если вы работаете в OS X, для корректной работы сборщика сайта нужно установить Python (нужен для Pygmentize)

brew install python
$ go get github.com/russross/blackfriday
$ tools/build
$ open public/index.html

Для непрерывной сборки в цикле:

$ tools/build-loop

Локальный деплой

$ mkdir -p $GOPATH/src/github.com/pavlik
$ cd $GOPATH/src/github.com/pavlik
$ git clone git@github.com:pavlik/gobyexample.git
$ cd gobyexample
$ go get
$ go build
$ PORT=5000 CANONICAL_HOST=127.0.0.1 FORCE_HTTPS=0 gobyexample
$ open http://127.0.0.1:5000/

Деплой на платформе

Простая установка:

$ 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

С добалением домена + 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

Лицензия

Копирайт на изначальный проект принадлежит Mark McGranaghan и распространяется под лицензией Creative Commons Attribution 3.0 Unported License.

Копирайт на Go Gopher принадлежит Renée French и распространяется под лицензией Creative Commons Attribution 3.0 Unported License.

Переводы

Переводы с английской версии сайта Go by Example доступны на:

Спасибо

Спасибо Jeremy Ashkenas за Docco, вдохновившим на этот проект.