Merge branch 'master' into patch-1

This commit is contained in:
Ashish Mohite 2017-04-29 14:56:37 +05:30 committed by GitHub
commit c03563a9d0
4 changed files with 49 additions and 68 deletions

View File

@ -6,7 +6,4 @@ go:
sudo: false sudo: false
install: install:
- go get github.com/russross/blackfriday - go get -t -v ./...
- go get github.com/PuerkitoBio/goquery
- go get github.com/gorilla/mux
- go get github.com/microcosm-cc/bluemonday

View File

@ -3,7 +3,7 @@ Duke <emersonalmeidax@gmail.com> (@dukex)
Dmitri Shuralyov <shurcooL@gmail.com> (@shurcooL) Dmitri Shuralyov <shurcooL@gmail.com> (@shurcooL)
Dobrosław Żybort <matrixik@gmail.com> (@matrixik) Dobrosław Żybort <matrixik@gmail.com> (@matrixik)
Dean Karn <Dean.Karn@gmail.com> (@joeybloggs) Dean Karn <Dean.Karn@gmail.com> (@joeybloggs)
Kirill Danshin <k@guava.by> (@kirillDanshin) Kirill Danshin <kirill@danshin.pro> (@kirillDanshin)
Felipe Oliveira <felipeweb.programador@gmail.com> (@felipeweb) Felipe Oliveira <felipeweb.programador@gmail.com> (@felipeweb)
Bo-Yi Wu <appleboy.tw@gmail.com> (@appleboy) Bo-Yi Wu <appleboy.tw@gmail.com> (@appleboy)
Cássio Botaro <cassiobotaro@gmail.com> (@cassiobotaro) Cássio Botaro <cassiobotaro@gmail.com> (@cassiobotaro)

View File

@ -63,6 +63,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
- [Middlewares](#middlewares) - [Middlewares](#middlewares)
- [Actual middlewares](#actual-middlewares) - [Actual middlewares](#actual-middlewares)
- [Libraries for creating HTTP middlewares](#libraries-for-creating-http-middlewares) - [Libraries for creating HTTP middlewares](#libraries-for-creating-http-middlewares)
- [Routers](#routers)
- [Windows](#windows) - [Windows](#windows)
- [Tools](#tools) - [Tools](#tools)
@ -110,6 +111,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
*Libraries for implementing authentications schemes.* *Libraries for implementing authentications schemes.*
* [authboss](https://github.com/go-authboss/authboss) - A modular authentication system for the web. It tries to remove as much boilerplate and "hard things" as possible so that each time you start a new web project in Go, you can plug it in, configure, and start building your app without having to build an authentication system each time. * [authboss](https://github.com/go-authboss/authboss) - A modular authentication system for the web. It tries to remove as much boilerplate and "hard things" as possible so that each time you start a new web project in Go, you can plug it in, configure, and start building your app without having to build an authentication system each time.
* [casbin](https://github.com/hsluoyz/casbin) - An authorization library that supports access control models like ACL, RBAC, ABAC.
* [Go-AWS-Auth](https://github.com/smartystreets/go-aws-auth) - AWS (Amazon Web Services) request signing library. * [Go-AWS-Auth](https://github.com/smartystreets/go-aws-auth) - AWS (Amazon Web Services) request signing library.
* [go-jose](https://github.com/square/go-jose) - A fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs. * [go-jose](https://github.com/square/go-jose) - A fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs.
* [go-oauth2-server](https://github.com/RichardKnop/go-oauth2-server) - A standalone, specification-compliant, OAuth2 server written in Golang. * [go-oauth2-server](https://github.com/RichardKnop/go-oauth2-server) - A standalone, specification-compliant, OAuth2 server written in Golang.
@ -124,6 +126,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
* [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support. * [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support.
* [osin](https://github.com/RangelReale/osin) - Golang OAuth2 server library. * [osin](https://github.com/RangelReale/osin) - Golang OAuth2 server library.
* [permissions2](https://github.com/xyproto/permissions2) - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt. * [permissions2](https://github.com/xyproto/permissions2) - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt.
* [session](https://github.com/icza/session) - Go session management for web servers (including support for Google App Engine - GAE).
* [traefik](https://github.com/containous/traefik) - A reverse proxy and load balancer with support for multiple backends. * [traefik](https://github.com/containous/traefik) - A reverse proxy and load balancer with support for multiple backends.
* [yubigo](https://github.com/GeertJohan/yubigo) - a Yubikey client package that provides a simple API to integrate the Yubico Yubikey into a go application. * [yubigo](https://github.com/GeertJohan/yubigo) - a Yubikey client package that provides a simple API to integrate the Yubico Yubikey into a go application.
@ -362,6 +365,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
* [carbon](https://github.com/uniplaces/carbon) - A simple Time extension with a lot of util methods, ported from PHP Carbon library. * [carbon](https://github.com/uniplaces/carbon) - A simple Time extension with a lot of util methods, ported from PHP Carbon library.
* [durafmt](https://github.com/hako/durafmt) - A time duration formatting library for Go. * [durafmt](https://github.com/hako/durafmt) - A time duration formatting library for Go.
* [feiertage](https://github.com/wlbr/feiertage) - A set of functions to calculate public holidays in Germany, incl. specialization on the states of Germany (Bundesländer). Things like Easter, Pentecoast, Thanksgiving...
* [go-persian-calendar](https://github.com/yaa110/go-persian-calendar) - The implementation of the Persian (Solar Hijri) Calendar in Go (golang). * [go-persian-calendar](https://github.com/yaa110/go-persian-calendar) - The implementation of the Persian (Solar Hijri) Calendar in Go (golang).
* [goweek](https://github.com/grsmv/goweek) - Library for working with week entity in golang. * [goweek](https://github.com/grsmv/goweek) - Library for working with week entity in golang.
* [now](https://github.com/jinzhu/now) - Now is a time toolkit for golang. * [now](https://github.com/jinzhu/now) - Now is a time toolkit for golang.
@ -378,6 +382,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
* [gleam](https://github.com/chrislusf/gleam) - Fast and scalable distributed map/reduce system written in pure Go and Luajit, combining Go's high concurrency with Luajit's high performance, runs standalone or distributed. * [gleam](https://github.com/chrislusf/gleam) - Fast and scalable distributed map/reduce system written in pure Go and Luajit, combining Go's high concurrency with Luajit's high performance, runs standalone or distributed.
* [glow](https://github.com/chrislusf/glow) - Easy-to-Use scalable distributed big data processing, Map-Reduce, DAG execution, all in pure Go. * [glow](https://github.com/chrislusf/glow) - Easy-to-Use scalable distributed big data processing, Map-Reduce, DAG execution, all in pure Go.
* [go-jump](https://github.com/dgryski/go-jump) - A port of Google's "Jump" Consistent Hash function. * [go-jump](https://github.com/dgryski/go-jump) - A port of Google's "Jump" Consistent Hash function.
* [go-kit](https://github.com/go-kit/kit) - A Microservice toolkit with support for service discovery, load balancing, pluggable transports, request tracking, etc.
* [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. * [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load.
* [grpc-go](https://github.com/grpc/grpc-go) - The Go language implementation of gRPC. HTTP/2 based RPC. * [grpc-go](https://github.com/grpc/grpc-go) - The Go language implementation of gRPC. HTTP/2 based RPC.
* [hprose](https://github.com/hprose/hprose-golang) - A very newbility RPC Library, support 25+ languages now. * [hprose](https://github.com/hprose/hprose-golang) - A very newbility RPC Library, support 25+ languages now.
@ -471,7 +476,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
*Awesome game development libraries.* *Awesome game development libraries.*
* [Azul3D](https://github.com/azul3d/engine) - A 3D game engine written in Go * [Azul3D](https://github.com/azul3d/engine) - A 3D game engine written in Go
* [Ebiten](https://github.com/hajimehoshi/ebiten) - A simple SNES-style 2D game library in Go * [Ebiten](https://github.com/hajimehoshi/ebiten) - A simple 2D game library in Go
* [engo](https://github.com/EngoEngine/engo) - Engo is an open-source 2D game engine written in Go. It follows the Entity-Component-System paradigm. * [engo](https://github.com/EngoEngine/engo) - Engo is an open-source 2D game engine written in Go. It follows the Entity-Component-System paradigm.
* [GarageEngine](https://github.com/vova616/GarageEngine) - 2d game engine written in Go working on OpenGL. * [GarageEngine](https://github.com/vova616/GarageEngine) - 2d game engine written in Go working on OpenGL.
* [glop](https://github.com/runningwild/glop) - Glop (Game Library Of Power) is a fairly simple cross-platform game library. * [glop](https://github.com/runningwild/glop) - Glop (Game Library Of Power) is a fairly simple cross-platform game library.
@ -481,6 +486,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
* [go3d](https://github.com/ungerik/go3d) - A performance oriented 2D/3D math package for Go * [go3d](https://github.com/ungerik/go3d) - A performance oriented 2D/3D math package for Go
* [gonet](https://github.com/xtaci/gonet) - A game server skeleton implemented with golang * [gonet](https://github.com/xtaci/gonet) - A game server skeleton implemented with golang
* [Leaf](https://github.com/name5566/leaf) - A lightweight game server framework * [Leaf](https://github.com/name5566/leaf) - A lightweight game server framework
* [Pixel](https://github.com/faiface/pixel) - A hand-crafted 2D game library in Go
* [raylib-go](https://github.com/gen2brain/raylib-go) - Go bindings for [raylib](http://www.raylib.com/), a simple and easy-to-use library to learn videogames programming. * [raylib-go](https://github.com/gen2brain/raylib-go) - Go bindings for [raylib](http://www.raylib.com/), a simple and easy-to-use library to learn videogames programming.
* [termloop](https://github.com/JoelOtter/termloop) - Terminal-based game engine for Go, built on top of Termbox * [termloop](https://github.com/JoelOtter/termloop) - Terminal-based game engine for Go, built on top of Termbox
@ -522,6 +528,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a
*Libraries for building GUI Applications* *Libraries for building GUI Applications*
* [app](https://github.com/murlokswarm/app) - Package to create apps with GO, HTML and CSS.
* [go-gtk](http://mattn.github.io/go-gtk/) - Go bindings for GTK * [go-gtk](http://mattn.github.io/go-gtk/) - Go bindings for GTK
* [go-qml](https://github.com/go-qml/qml) - QML support for the Go language * [go-qml](https://github.com/go-qml/qml) - QML support for the Go language
* [go-sciter](https://github.com/sciter-sdk/go-sciter) - Go bindings for Sciter: the Embeddable HTML/CSS/script engine for modern desktop UI development. * [go-sciter](https://github.com/sciter-sdk/go-sciter) - Go bindings for Sciter: the Embeddable HTML/CSS/script engine for modern desktop UI development.
@ -640,10 +647,14 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis
* [drone-line](https://github.com/appleboy/drone-line) - Sending [Line](https://business.line.me/en/services/bot) notifications using a binary, docker or Drone CI. * [drone-line](https://github.com/appleboy/drone-line) - Sending [Line](https://business.line.me/en/services/bot) notifications using a binary, docker or Drone CI.
* [emitter](https://github.com/olebedev/emitter) - Emits events using Go way, with wildcard, predicates, cancellation possibilities and many other good wins. * [emitter](https://github.com/olebedev/emitter) - Emits events using Go way, with wildcard, predicates, cancellation possibilities and many other good wins.
* [EventBus](https://github.com/asaskevich/EventBus) - The lightweight event bus with async compatibility. * [EventBus](https://github.com/asaskevich/EventBus) - The lightweight event bus with async compatibility.
* [Glue](https://github.com/desertbit/glue) - Robust Go and Javascript Socket Library (Alternative to Socket.io).
* [go-longpoll](https://github.com/ventu-io/go-longpoll) - PubSub with long polling. * [go-longpoll](https://github.com/ventu-io/go-longpoll) - PubSub with long polling.
* [go-notify](https://github.com/TheCreeper/go-notify) - Native implementation of the freedesktop notification spec. * [go-notify](https://github.com/TheCreeper/go-notify) - Native implementation of the freedesktop notification spec.
* [go-nsq](https://github.com/nsqio/go-nsq) - the official Go package for NSQ * [go-nsq](https://github.com/nsqio/go-nsq) - the official Go package for NSQ
* [go-socket.io](https://github.com/googollee/go-socket.io) - socket.io library for golang, a realtime application framework.
* [go-vitotrol](https://github.com/maxatome/go-vitotrol) - A client library to Viessmann Vitotrol web service. * [go-vitotrol](https://github.com/maxatome/go-vitotrol) - A client library to Viessmann Vitotrol web service.
* [golongpoll](https://github.com/jcuga/golongpoll) - HTTP longpoll server library that makes web pub-sub simple.
* [goose](https://github.com/ian-kent/goose) - Server Sent Events in Go
* [gopush-cluster](https://github.com/Terry-Mao/gopush-cluster) - gopush-cluster is a go push server cluster. * [gopush-cluster](https://github.com/Terry-Mao/gopush-cluster) - gopush-cluster is a go push server cluster.
* [gorush](https://github.com/appleboy/gorush) - A push notification server using [APNs2](https://github.com/sideshow/apns2) and google [GCM](https://github.com/google/go-gcm). * [gorush](https://github.com/appleboy/gorush) - A push notification server using [APNs2](https://github.com/sideshow/apns2) and google [GCM](https://github.com/google/go-gcm).
* [guble](https://github.com/smancke/guble) - A messaging server using push notifications (Google Firebase Cloud Messaging, Apple Push Notification services, SMS) as well as websockets, a REST API, featuring distributed operation and message-persistence. * [guble](https://github.com/smancke/guble) - A messaging server using push notifications (Google Firebase Cloud Messaging, Apple Push Notification services, SMS) as well as websockets, a REST API, featuring distributed operation and message-persistence.
@ -679,6 +690,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis
* [go-shortid](https://github.com/ventu-io/go-shortid) - Distributed generation of super short, unique, non-sequential, URL friendly IDs. * [go-shortid](https://github.com/ventu-io/go-shortid) - Distributed generation of super short, unique, non-sequential, URL friendly IDs.
* [go-unarr](https://github.com/gen2brain/go-unarr) - Decompression library for RAR, TAR, ZIP and 7z archives. * [go-unarr](https://github.com/gen2brain/go-unarr) - Decompression library for RAR, TAR, ZIP and 7z archives.
* [go.uuid](https://github.com/satori/go.uuid) - Implementation of Universally Unique Identifier (UUID). Supported both creation and parsing of UUIDs. * [go.uuid](https://github.com/satori/go.uuid) - Implementation of Universally Unique Identifier (UUID). Supported both creation and parsing of UUIDs.
* [gofakeit](https://github.com/brianvoe/gofakeit) - Random data generator written in go
* [gopsutil](https://github.com/shirou/gopsutil) - A cross-platform library for retrieving process and system utilization(CPU, Memory, Disks, etc). * [gopsutil](https://github.com/shirou/gopsutil) - A cross-platform library for retrieving process and system utilization(CPU, Memory, Disks, etc).
* [gosms](https://github.com/haxpax/gosms) - Your own local SMS gateway in Go that can be used to send SMS * [gosms](https://github.com/haxpax/gosms) - Your own local SMS gateway in Go that can be used to send SMS
* [gountries](https://github.com/pariz/gountries) - A package that exposes country and subdivision data. * [gountries](https://github.com/pariz/gountries) - A package that exposes country and subdivision data.
@ -690,6 +702,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis
* [secdl](https://github.com/xor-gate/secdl) - Lighttpd ModSecDownload algorithm ported to go to secure download urls. * [secdl](https://github.com/xor-gate/secdl) - Lighttpd ModSecDownload algorithm ported to go to secure download urls.
* [stats](https://github.com/go-playground/stats) - Monitors Go MemStats + System stats such as Memory, Swap and CPU and sends via UDP anywhere you want for logging etc... * [stats](https://github.com/go-playground/stats) - Monitors Go MemStats + System stats such as Memory, Swap and CPU and sends via UDP anywhere you want for logging etc...
* [uuid](https://github.com/agext/uuid) - Generate, encode, and decode UUIDs v1 with fast or cryptographic-quality random node identifier. * [uuid](https://github.com/agext/uuid) - Generate, encode, and decode UUIDs v1 with fast or cryptographic-quality random node identifier.
* [VarHandler](https://github.com/azr/generators/tree/master/varhandler) - Generate boilerplate http input and ouput handling.
* [werr](https://github.com/txgruppi/werr) - Error Wrapper creates an wrapper for the error type in Go which captures the File, Line and Stack of where it was called. * [werr](https://github.com/txgruppi/werr) - Error Wrapper creates an wrapper for the error type in Go which captures the File, Line and Stack of where it was called.
* [xkg](https://github.com/go-xkg/xkg) - X Keyboard Grabber * [xkg](https://github.com/go-xkg/xkg) - X Keyboard Grabber
* [xstrings](https://github.com/huandu/xstrings) - A collection of useful string functions ported from other languages. * [xstrings](https://github.com/huandu/xstrings) - A collection of useful string functions ported from other languages.
@ -792,7 +805,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis
* [QBS](https://github.com/coocood/qbs) - Stands for Query By Struct. A Go ORM. * [QBS](https://github.com/coocood/qbs) - Stands for Query By Struct. A Go ORM.
* [reform](https://github.com/go-reform/reform) - A better ORM for Go, based on non-empty interfaces and code generation. * [reform](https://github.com/go-reform/reform) - A better ORM for Go, based on non-empty interfaces and code generation.
* [SQLBoiler](https://github.com/vattle/sqlboiler) - An ORM generator. Generate a featureful and blazing-fast ORM tailored to your database schema. * [SQLBoiler](https://github.com/vattle/sqlboiler) - An ORM generator. Generate a featureful and blazing-fast ORM tailored to your database schema.
* [Storm](https://github.com/asdine/storm) - Simple and powerful ORM for BoltDB.
* [upper.io/db](https://github.com/upper/db) - Single interface for interacting with different data sources through the use of adapters that wrap mature database drivers. * [upper.io/db](https://github.com/upper/db) - Single interface for interacting with different data sources through the use of adapters that wrap mature database drivers.
* [Xorm](https://github.com/go-xorm/xorm) - Simple and powerful ORM for Go. * [Xorm](https://github.com/go-xorm/xorm) - Simple and powerful ORM for Go.
* [Zoom](https://github.com/albrow/zoom) - A blazing-fast datastore and querying engine built on Redis. * [Zoom](https://github.com/albrow/zoom) - A blazing-fast datastore and querying engine built on Redis.
@ -837,6 +849,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis
* [go.rice](https://github.com/GeertJohan/go.rice) - go.rice is a Go package that makes working with resources such as html,js,css,images and templates very easy. * [go.rice](https://github.com/GeertJohan/go.rice) - go.rice is a Go package that makes working with resources such as html,js,css,images and templates very easy.
* [statics](https://github.com/go-playground/statics) - Embeds static resources into go files for single binary compilation + works with http.FileSystem + symlinks. * [statics](https://github.com/go-playground/statics) - Embeds static resources into go files for single binary compilation + works with http.FileSystem + symlinks.
* [statik](https://github.com/rakyll/statik) - Embeds static files into a Go executable * [statik](https://github.com/rakyll/statik) - Embeds static files into a Go executable
* [templify](https://github.com/wlbr/templify) - Embed external template files into Go code to create single file binaries.
* [vfsgen](https://github.com/shurcooL/vfsgen) - Generates a vfsdata.go file that statically implements the given virtual filesystem. * [vfsgen](https://github.com/shurcooL/vfsgen) - Generates a vfsdata.go file that statically implements the given virtual filesystem.
@ -860,7 +873,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis
* [gonum/plot](https://github.com/gonum/plot) - gonum/plot provides an API for building and drawing plots in Go. * [gonum/plot](https://github.com/gonum/plot) - gonum/plot provides an API for building and drawing plots in Go.
* [goraph](https://github.com/gyuho/goraph) - A pure Go graph theory library(data structure, algorith visualization) * [goraph](https://github.com/gyuho/goraph) - A pure Go graph theory library(data structure, algorith visualization)
* [gostat](https://github.com/ematvey/gostat) - A statistics library for the go language * [gostat](https://github.com/ematvey/gostat) - A statistics library for the go language
* [mudlark-go](https://github.com/pwil3058/mudlark-go-pkgs) - A collection of packages providing (hopefully) useful code for use in software using Google's Go programming language.
* [ode](https://github.com/ChristopherRabotin/ode) - An ordinary differential equation (ODE) solver which supports extended states and channel-based iteration stop conditions. * [ode](https://github.com/ChristopherRabotin/ode) - An ordinary differential equation (ODE) solver which supports extended states and channel-based iteration stop conditions.
* [pagerank](https://github.com/alixaxel/pagerank) - Weighted PageRank algorithm implemented in Go * [pagerank](https://github.com/alixaxel/pagerank) - Weighted PageRank algorithm implemented in Go
* [PiHex](https://github.com/claygod/PiHex) - Implementation of the "Bailey-Borwein-Plouffe" algorithm for the hexadecimal number Pi * [PiHex](https://github.com/claygod/PiHex) - Implementation of the "Bailey-Borwein-Plouffe" algorithm for the hexadecimal number Pi
@ -1046,6 +1058,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis
* [go-jira](https://github.com/andygrunwald/go-jira) - Go client library for [Atlassian JIRA](https://www.atlassian.com/software/jira) * [go-jira](https://github.com/andygrunwald/go-jira) - Go client library for [Atlassian JIRA](https://www.atlassian.com/software/jira)
* [go-marathon](https://github.com/gambol99/go-marathon) - A Go library for interacting with Mesosphere's Marathon PAAS. * [go-marathon](https://github.com/gambol99/go-marathon) - A Go library for interacting with Mesosphere's Marathon PAAS.
* [go-myanimelist](https://github.com/nstratos/go-myanimelist) - A Go client library for accessing the [MyAnimeList API](http://myanimelist.net/modules.php?go=api). * [go-myanimelist](https://github.com/nstratos/go-myanimelist) - A Go client library for accessing the [MyAnimeList API](http://myanimelist.net/modules.php?go=api).
* [go-telegraph](https://github.com/toby3d/go-telegraph) - Telegraph publishing platform API client.
* [go-tgbot](https://github.com/olebedev/go-tgbot) - Pure Golang Telegram Bot API wrapper, generated from swagger file, session-based router and middleware. * [go-tgbot](https://github.com/olebedev/go-tgbot) - Pure Golang Telegram Bot API wrapper, generated from swagger file, session-based router and middleware.
* [go-trending](https://github.com/andygrunwald/go-trending) - Go library for accessing [trending repositories](https://github.com/trending) and [developers](https://github.com/trending/developers) at Github. * [go-trending](https://github.com/andygrunwald/go-trending) - Go library for accessing [trending repositories](https://github.com/trending) and [developers](https://github.com/trending/developers) at Github.
* [go-twitch](https://github.com/knspriggs/go-twitch) - A Go client for interacting with the Twitch v3 API. * [go-twitch](https://github.com/knspriggs/go-twitch) - A Go client for interacting with the Twitch v3 API.
@ -1080,7 +1093,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis
* [tbot](https://github.com/yanzay/tbot) - Telegram bot server with API similar to net/http. * [tbot](https://github.com/yanzay/tbot) - Telegram bot server with API similar to net/http.
* [telebot](https://github.com/tucnak/telebot) - Telegram bot framework written in Go. * [telebot](https://github.com/tucnak/telebot) - Telegram bot framework written in Go.
* [telegram-bot-api](https://github.com/Syfaro/telegram-bot-api) - Simple and clean Telegram bot client. * [telegram-bot-api](https://github.com/Syfaro/telegram-bot-api) - Simple and clean Telegram bot client.
* [telegraph](https://github.com/toby3d/telegraph) - Telegraph publishing platform API client.
* [textbelt](https://github.com/dietsche/textbelt) - Go client for the textbelt.com txt messaging API. * [textbelt](https://github.com/dietsche/textbelt) - Go client for the textbelt.com txt messaging API.
* [TheMovieDb](https://github.com/jbrodriguez/go-tmdb) - A simple golang package to communicate with [themoviedb.org](https://themoviedb.org) * [TheMovieDb](https://github.com/jbrodriguez/go-tmdb) - A simple golang package to communicate with [themoviedb.org](https://themoviedb.org)
* [translate](https://github.com/poorny/translate) - Go online translation package. * [translate](https://github.com/poorny/translate) - Go online translation package.
@ -1095,6 +1107,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis
* [abutil](https://github.com/bahlo/abutil) - A collection of often-used Golang helpers. * [abutil](https://github.com/bahlo/abutil) - A collection of often-used Golang helpers.
* [apm](https://github.com/topfreegames/apm) - A process manager for Golang applications with an HTTP API. * [apm](https://github.com/topfreegames/apm) - A process manager for Golang applications with an HTTP API.
* [boilr](https://github.com/tmrts/boilr) - A blazingly fast CLI tool for creating projects from boilerplate templates. * [boilr](https://github.com/tmrts/boilr) - A blazingly fast CLI tool for creating projects from boilerplate templates.
* [clockwerk](http://github.com/onatm/clockwerk) - Go package to schedule periodic jobs using a simple, fluent syntax.
* [command](https://github.com/txgruppi/command) - Command pattern for Go with thread safe serial and parallel dispatcher * [command](https://github.com/txgruppi/command) - Command pattern for Go with thread safe serial and parallel dispatcher
* [coop](https://github.com/rakyll/coop) - Cheat sheet for some of the common concurrent flows in Go. * [coop](https://github.com/rakyll/coop) - Cheat sheet for some of the common concurrent flows in Go.
* [copy-pasta](https://github.com/jutkko/copy-pasta) - Universal multi-workstation clipboard that uses S3 like backend for the storage. * [copy-pasta](https://github.com/jutkko/copy-pasta) - Universal multi-workstation clipboard that uses S3 like backend for the storage.
@ -1173,6 +1186,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis
* [sling](https://github.com/dghubble/sling) - Go HTTP requests builder for API clients. * [sling](https://github.com/dghubble/sling) - Go HTTP requests builder for API clients.
* [spinner](https://github.com/briandowns/spinner) - Go package to easily provide a terminal spinner with options. * [spinner](https://github.com/briandowns/spinner) - Go package to easily provide a terminal spinner with options.
* [sqlx](https://github.com/jmoiron/sqlx) - provides a set of extensions on top of the excellent built-in database/sql package. * [sqlx](https://github.com/jmoiron/sqlx) - provides a set of extensions on top of the excellent built-in database/sql package.
* [Storm](https://github.com/asdine/storm) - Simple and powerful toolkit for BoltDB.
* [Task](https://github.com/go-task/task) - simple "Make" alternative * [Task](https://github.com/go-task/task) - simple "Make" alternative
* [toolbox](https://github.com/viant/toolbox) - Slice, map, multimap, struct, function, data conversion utilities. Service router, macro evaluator, tokenizer. * [toolbox](https://github.com/viant/toolbox) - Slice, map, multimap, struct, function, data conversion utilities. Service router, macro evaluator, tokenizer.
* [ugo](https://github.com/alxrm/ugo) - ugo is slice toolbox with concise syntax for Go. * [ugo](https://github.com/alxrm/ugo) - ugo is slice toolbox with concise syntax for Go.
@ -1215,43 +1229,25 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis
*Full stack web frameworks.* *Full stack web frameworks.*
* [Air](https://github.com/sheng/air) - An ideal RESTful web framework for Go. * [Air](https://github.com/sheng/air) - An ideal RESTful web framework for Go.
* [alien](https://github.com/gernest/alien) - A lightweight and fast http router from outer space
* [Beego](https://github.com/astaxie/beego) - beego is an open-source, high-performance web framework for the Go programming language. * [Beego](https://github.com/astaxie/beego) - beego is an open-source, high-performance web framework for the Go programming language.
* [Bone](https://github.com/go-zoo/bone) - Lightning Fast HTTP Multiplexer.
* [Buffalo](http://gobuffalo.io) - Bringing the productivity of Rails to Go! * [Buffalo](http://gobuffalo.io) - Bringing the productivity of Rails to Go!
* [Bxog](https://github.com/claygod/Bxog) - Simple and fast HTTP router for Go. It works with routes of varying difficulty, length and nesting. And he knows how to create a URL from the received parameters.
* [chi](https://github.com/pressly/chi) - Small, fast and expressive HTTP router built on net/context.
* [Echo](https://github.com/labstack/echo) - High performance, minimalist Go web framework. * [Echo](https://github.com/labstack/echo) - High performance, minimalist Go web framework.
* [fasthttprouter](https://github.com/buaazp/fasthttprouter) - A high performance router forked from `httprouter`. The first router fit for `fasthttp`.
* [Fireball](https://github.com/zpatrick/fireball) - A more "natural" feeling web framework. * [Fireball](https://github.com/zpatrick/fireball) - A more "natural" feeling web framework.
* [Florest](https://github.com/jabong/florest-core) - High-performance workflow based REST API framework * [Florest](https://github.com/jabong/florest-core) - High-performance workflow based REST API framework
* [Gem](https://github.com/go-gem/gem) - A simple and fast web framework, friendly to REST API. * [Gem](https://github.com/go-gem/gem) - A simple and fast web framework, friendly to REST API.
* [Gin](https://github.com/gin-gonic/gin) - Gin is a web framework written in Go! It features a martini-like API with much better performance, up to 40 times faster. If you need performance and good productivity. * [Gin](https://github.com/gin-gonic/gin) - Gin is a web framework written in Go! It features a martini-like API with much better performance, up to 40 times faster. If you need performance and good productivity.
* [Gizmo](https://github.com/NYTimes/gizmo) - Microservice toolkit used by the New York Times. * [Gizmo](https://github.com/NYTimes/gizmo) - Microservice toolkit used by the New York Times.
* [Glue](https://github.com/desertbit/glue) - Robust Go and Javascript Socket Library (Alternative to Socket.io).
* [go-json-rest](https://github.com/ant0ine/go-json-rest) - A quick and easy way to setup a RESTful JSON API. * [go-json-rest](https://github.com/ant0ine/go-json-rest) - A quick and easy way to setup a RESTful JSON API.
* [go-kit](https://github.com/go-kit/kit) - A Microservice toolkit with support for service discovery, load balancing, pluggable transports, request tracking, etc.
* [go-relax](https://github.com/codehack/go-relax) - A framework of pluggable components to build RESTful API's. * [go-relax](https://github.com/codehack/go-relax) - A framework of pluggable components to build RESTful API's.
* [go-rest](https://github.com/ungerik/go-rest) - A small and evil REST framework for Go. * [go-rest](https://github.com/ungerik/go-rest) - A small and evil REST framework for Go.
* [go-socket.io](https://github.com/googollee/go-socket.io) - socket.io library for golang, a realtime application framework.
* [goa](https://github.com/raphael/goa) - Framework for developing microservices based on the design of Ruby's Praxis. * [goa](https://github.com/raphael/goa) - Framework for developing microservices based on the design of Ruby's Praxis.
* [Goat](https://github.com/bahlo/goat) - A minimalistic REST API server in Go. * [Goat](https://github.com/bahlo/goat) - A minimalistic REST API server in Go.
* [gocraft/web](https://github.com/gocraft/web) - A mux and middleware package in Go.
* [Goji](https://github.com/goji/goji) - Goji is a minimalistic and flexible HTTP request multiplexer with support for `net/context`.
* [Golf](https://github.com/dinever/golf) - Golf is a fast, simple and lightweight micro-web framework for Go. It comes with powerful features and has no dependencies other than the Go Standard Library. * [Golf](https://github.com/dinever/golf) - Golf is a fast, simple and lightweight micro-web framework for Go. It comes with powerful features and has no dependencies other than the Go Standard Library.
* [golongpoll](https://github.com/jcuga/golongpoll) - HTTP longpoll server library that makes web pub-sub simple.
* [Gondola](https://github.com/rainycape/gondola) - The web framework for writing faster sites, faster * [Gondola](https://github.com/rainycape/gondola) - The web framework for writing faster sites, faster
* [gongular](https://github.com/mustafaakin/gongular) - A fast Go web framework with input mapping/validation and (DI) Dependency Injection * [gongular](https://github.com/mustafaakin/gongular) - A fast Go web framework with input mapping/validation and (DI) Dependency Injection
* [goose](https://github.com/ian-kent/goose) - Server Sent Events in Go
* [Gorilla](https://github.com/gorilla/) - Gorilla is a web toolkit for the Go programming language.
* [httprouter](https://github.com/julienschmidt/httprouter) - A high performance router. Use this and the standard http handlers to form a very high performance web framework.
* [httptreemux](https://github.com/dimfeld/httptreemux) - High-speed, flexible tree-based HTTP router for Go. Inspiration from httprouter.
* [lars](https://github.com/go-playground/lars) - Is a lightweight, fast and extensible zero allocation HTTP router for Go used to create customizable frameworks.
* [Macaron](https://github.com/go-macaron/macaron) - Macaron is a high productive and modular design web framework in Go. * [Macaron](https://github.com/go-macaron/macaron) - Macaron is a high productive and modular design web framework in Go.
* [mango](https://github.com/paulbellamy/mango) - Mango is a modular web-application framework for Go, inspired by Rack, and PEP333. * [mango](https://github.com/paulbellamy/mango) - Mango is a modular web-application framework for Go, inspired by Rack, and PEP333.
* [medeina](https://github.com/imdario/medeina) - Medeina is a HTTP routing tree based on HttpRouter, inspired by Roda and Cuba.
* [Microservice](https://github.com/claygod/microservice) - The framework for the creation of microservices, written in Golang. * [Microservice](https://github.com/claygod/microservice) - The framework for the creation of microservices, written in Golang.
* [mux](https://github.com/gorilla/mux) - A powerful URL router and dispatcher for golang.
* [neo](https://github.com/ivpusic/neo) - Neo is minimal and fast Go Web Framework with extremely simple API. * [neo](https://github.com/ivpusic/neo) - Neo is minimal and fast Go Web Framework with extremely simple API.
* [ozzo-routing](https://github.com/go-ozzo/ozzo-routing) - A high-performance HTTP router and Web framework supporting routes with regular expressions. Comes with full support for quickly building a RESTful API application. * [ozzo-routing](https://github.com/go-ozzo/ozzo-routing) - A high-performance HTTP router and Web framework supporting routes with regular expressions. Comes with full support for quickly building a RESTful API application.
* [pat](https://github.com/bmizerany/pat) - Sinatra style pattern muxer for Gos net/http library, by the author of Sinatra. * [pat](https://github.com/bmizerany/pat) - Sinatra style pattern muxer for Gos net/http library, by the author of Sinatra.
@ -1261,19 +1257,12 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis
* [Revel](https://github.com/revel/revel) - A high-productivity web framework for the Go language. * [Revel](https://github.com/revel/revel) - A high-productivity web framework for the Go language.
* [rex](https://github.com/goanywhere/rex) - Rex is a library for modular development built upon gorilla/mux, fully compatible with `net/http`. * [rex](https://github.com/goanywhere/rex) - Rex is a library for modular development built upon gorilla/mux, fully compatible with `net/http`.
* [sawsij](http://sawsij.com/) - lightweight, open-source web framework for building high-performance, data-driven web applications. * [sawsij](http://sawsij.com/) - lightweight, open-source web framework for building high-performance, data-driven web applications.
* [session](https://github.com/icza/session) - Go session management for web servers (including support for Google App Engine - GAE).
* [Siesta](https://github.com/VividCortex/siesta) - Composable framework to write middleware and handlers
* [tango](https://github.com/lunny/tango) - Micro & pluggable web framework for Go. * [tango](https://github.com/lunny/tango) - Micro & pluggable web framework for Go.
* [tigertonic](https://github.com/rcrowley/go-tigertonic) - A Go framework for building JSON web services inspired by Dropwizard * [tigertonic](https://github.com/rcrowley/go-tigertonic) - A Go framework for building JSON web services inspired by Dropwizard
* [traffic](https://github.com/pilu/traffic) - Sinatra inspired regexp/pattern mux and web framework for Go. * [traffic](https://github.com/pilu/traffic) - Sinatra inspired regexp/pattern mux and web framework for Go.
* [utron](https://github.com/gernest/utron) - A lightweight MVC framework for Go(Golang). * [utron](https://github.com/gernest/utron) - A lightweight MVC framework for Go(Golang).
* [VarHandler](https://github.com/azr/generators/tree/master/varhandler) - Generate boilerplate http input and ouput handling.
* [vestigo](https://github.com/husobee/vestigo) - A performant, stand-alone, HTTP compliant URL Router for go web applications.
* [Volatile](https://github.com/volatile/core) - Minimalist middleware stack promoting flexibility, good practices and clean code.
* [xmux](https://github.com/rs/xmux) - A high performance muxer based on `httprouter` with `net/context` support.
* [YARF](https://github.com/yarf-framework/yarf) - Fast micro-framework designed to build REST APIs and web services in a fast and simple way. * [YARF](https://github.com/yarf-framework/yarf) - Fast micro-framework designed to build REST APIs and web services in a fast and simple way.
* [Zerver](https://github.com/cosiner/zerver) - Zerver is an expressive, modular, feature completed RESTful framework. * [Zerver](https://github.com/cosiner/zerver) - Zerver is an expressive, modular, feature completed RESTful framework.
* [zeus](https://github.com/daryl/zeus) - A very simple and fast HTTP router for Go.
### Middlewares ### Middlewares
@ -1299,6 +1288,31 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis
* [render](https://github.com/unrolled/render) - Go package for easily rendering JSON, XML, and HTML template responses. * [render](https://github.com/unrolled/render) - Go package for easily rendering JSON, XML, and HTML template responses.
* [rye](https://github.com/InVisionApp/rye) - Tiny Go middleware library (with canned Middlewares) that supports JWT, CORS, Statsd, and Go 1.7 context * [rye](https://github.com/InVisionApp/rye) - Tiny Go middleware library (with canned Middlewares) that supports JWT, CORS, Statsd, and Go 1.7 context
* [stats](https://github.com/thoas/stats) - A Go middleware that stores various information about your web application. * [stats](https://github.com/thoas/stats) - A Go middleware that stores various information about your web application.
* [Volatile](https://github.com/volatile/core) - Minimalist middleware stack promoting flexibility, good practices and clean code.
### Routers
* [alien](https://github.com/gernest/alien) - A lightweight and fast http router from outer space
* [Bone](https://github.com/go-zoo/bone) - Lightning Fast HTTP Multiplexer.
* [Bxog](https://github.com/claygod/Bxog) - Simple and fast HTTP router for Go. It works with routes of varying difficulty, length and nesting. And he knows how to create a URL from the received parameters.
* [chi](https://github.com/pressly/chi) - Small, fast and expressive HTTP router built on net/context.
* [fasthttprouter](https://github.com/buaazp/fasthttprouter) - A high performance router forked from `httprouter`. The first router fit for `fasthttp`.
* [gocraft/web](https://github.com/gocraft/web) - A mux and middleware package in Go.
* [Goji](https://github.com/goji/goji) - Goji is a minimalistic and flexible HTTP request multiplexer with support for `net/context`.
* [httprouter](https://github.com/julienschmidt/httprouter) - A high performance router. Use this and the standard http handlers to form a very high performance web framework.
* [httptreemux](https://github.com/dimfeld/httptreemux) - High-speed, flexible tree-based HTTP router for Go. Inspiration from httprouter.
* [lars](https://github.com/go-playground/lars) - Is a lightweight, fast and extensible zero allocation HTTP router for Go used to create customizable frameworks.
* [medeina](https://github.com/imdario/medeina) - Medeina is a HTTP routing tree based on HttpRouter, inspired by Roda and Cuba.
* [mux](https://github.com/gorilla/mux) - A powerful URL router and dispatcher for golang.
* [ozzo-routing](https://github.com/go-ozzo/ozzo-routing) - An extremely fast Go (golang) HTTP router that supports regular expression route matching. Comes with full support for building RESTful APIs.
* [pat](https://github.com/bmizerany/pat) - Sinatra style pattern muxer for Gos net/http library, by the author of Sinatra.
* [pure](https://github.com/go-playground/pure) - Is a lightweight HTTP router that sticks to the std "net/http" implementation
* [Siesta](https://github.com/VividCortex/siesta) - Composable framework to write middleware and handlers
* [vestigo](https://github.com/husobee/vestigo) - A performant, stand-alone, HTTP compliant URL Router for go web applications.
* [xmux](https://github.com/rs/xmux) - A high performance muxer based on `httprouter` with `net/context` support.
* [zeus](https://github.com/daryl/zeus) - A very simple and fast HTTP router for Go.
# Tools # Tools
@ -1519,6 +1533,7 @@ Where to discover new Go libraries.
* [Go Projects](https://github.com/golang/go/wiki/Projects) - List of projects on the Go community wiki. * [Go Projects](https://github.com/golang/go/wiki/Projects) - List of projects on the Go community wiki.
* [gocryforhelp](https://github.com/ninedraft/gocryforhelp) - A collection of Go projects that needs help. Good place to start your open-source way in Go. * [gocryforhelp](https://github.com/ninedraft/gocryforhelp) - A collection of Go projects that needs help. Good place to start your open-source way in Go.
* [godoc.org](https://godoc.org/) - Documentation for open source Go packages. * [godoc.org](https://godoc.org/) - Documentation for open source Go packages.
* [Golang News](https://golangnews.com) - Links and news about Go programming.
* [golang-graphics](https://github.com/mholt/golang-graphics) - A collection of Go images, graphics, and art. * [golang-graphics](https://github.com/mholt/golang-graphics) - A collection of Go images, graphics, and art.
* [golang-nuts](https://groups.google.com/forum/#!forum/golang-nuts) - Go mailing list. * [golang-nuts](https://groups.google.com/forum/#!forum/golang-nuts) - Go mailing list.
* [Google Plus Community](https://plus.google.com/communities/114112804251407510571) - The Google+ community for #golang enthusiasts. * [Google Plus Community](https://plus.google.com/communities/114112804251407510571) - The Google+ community for #golang enthusiasts.
@ -1530,6 +1545,7 @@ Where to discover new Go libraries.
### Tutorials ### Tutorials
* [A Tour of Go](http://tour.golang.org/) - Interactive tour of Go. * [A Tour of Go](http://tour.golang.org/) - Interactive tour of Go.
* [Build web application with Golang](https://github.com/astaxie/build-web-application-with-golang) - A golang ebook intro how to build a web app with golang.
* [Building Go Web Applications and Microservices Using Gin](https://semaphoreci.com/community/tutorials/building-go-web-applications-and-microservices-using-gin) - Get familiar with Gin and find out how it can help you reduce boilerplate code and build a request handling pipeline. * [Building Go Web Applications and Microservices Using Gin](https://semaphoreci.com/community/tutorials/building-go-web-applications-and-microservices-using-gin) - Get familiar with Gin and find out how it can help you reduce boilerplate code and build a request handling pipeline.
* [Go By Example](https://gobyexample.com/) - A hands-on introduction to Go using annotated example programs. * [Go By Example](https://gobyexample.com/) - A hands-on introduction to Go using annotated example programs.
* [Go Cheat Sheet](https://github.com/a8m/go-lang-cheat-sheet) - A Go's reference card. * [Go Cheat Sheet](https://github.com/a8m/go-lang-cheat-sheet) - A Go's reference card.

36
repo.go
View File

@ -8,8 +8,7 @@ import (
"text/template" "text/template"
"github.com/gorilla/mux" "github.com/gorilla/mux"
"github.com/microcosm-cc/bluemonday" gfm "github.com/shurcooL/github_flavored_markdown"
"github.com/russross/blackfriday"
) )
// memory usage optimizations // memory usage optimizations
@ -24,25 +23,6 @@ const (
readmePath = "./README.md" readmePath = "./README.md"
tplPath = "tmpl/tmpl.html" tplPath = "tmpl/tmpl.html"
idxPath = "tmpl/index.html" idxPath = "tmpl/index.html"
bfHTMLRendererOpts = 0 |
blackfriday.HTML_USE_XHTML |
blackfriday.HTML_USE_SMARTYPANTS |
blackfriday.HTML_SMARTYPANTS_FRACTIONS |
blackfriday.HTML_SMARTYPANTS_DASHES |
blackfriday.HTML_SMARTYPANTS_LATEX_DASHES
bfMDOpts = 0 |
blackfriday.EXTENSION_NO_INTRA_EMPHASIS |
blackfriday.EXTENSION_TABLES |
blackfriday.EXTENSION_FENCED_CODE |
blackfriday.EXTENSION_AUTOLINK |
blackfriday.EXTENSION_STRIKETHROUGH |
blackfriday.EXTENSION_SPACE_HEADERS |
blackfriday.EXTENSION_HEADER_IDS |
blackfriday.EXTENSION_BACKSLASH_LINE_BREAK |
blackfriday.EXTENSION_DEFINITION_LISTS |
blackfriday.EXTENSION_AUTO_HEADER_IDS
) )
var ( var (
@ -59,19 +39,7 @@ func generateHTML() {
exec.Command(git, pull).Output() exec.Command(git, pull).Output()
input, _ := ioutil.ReadFile(readmePath) input, _ := ioutil.ReadFile(readmePath)
body := string( body := string(gfm.Markdown(input))
bluemonday.UGCPolicy().SanitizeBytes(
blackfriday.Markdown(
input,
blackfriday.HtmlRenderer(
bfHTMLRendererOpts,
emtyStr,
emtyStr,
),
bfMDOpts,
),
),
)
c := &content{Body: body} c := &content{Body: body}
t := template.Must(template.ParseFiles(tplPath)) t := template.Must(template.ParseFiles(tplPath))