forked from vincent-petithory/dataurl
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
GitHub Actions Workflow CI. Cleaned up code by fixing lint errors.
- Loading branch information
Showing
11 changed files
with
194 additions
and
219 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
name: CI 🏗 | ||
|
||
on: | ||
push: | ||
branches: | ||
- main | ||
|
||
pull_request: | ||
branches: | ||
- main | ||
|
||
workflow_dispatch: | ||
|
||
jobs: | ||
test: | ||
name: Lint & test code. | ||
strategy: | ||
matrix: | ||
os: ['ubuntu-latest', 'macos-latest', 'windows-latest'] | ||
go: ['stable', 'oldstable'] | ||
runs-on: ${{ matrix.os }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
|
||
- uses: actions/setup-go@v5 | ||
with: | ||
go-version: ${{ matrix.go }} | ||
|
||
- uses: golangci/golangci-lint-action@v3 | ||
with: | ||
version: "v1.55.2" | ||
|
||
- run: go vet ./... | ||
|
||
- run: go test -race -cover ./... |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,81 +1,26 @@ | ||
# Data URL Schemes for Go [![wercker status](https://app.wercker.com/status/6f9a2e144dfcc59e862c52459b452928/s "wercker status")](https://app.wercker.com/project/bykey/6f9a2e144dfcc59e862c52459b452928) [![GoDoc](https://godoc.org/github.com/vincent-petithory/dataurl?status.png)](https://godoc.org/github.com/vincent-petithory/dataurl) | ||
# Dataurl | ||
|
||
This package parses and generates Data URL Schemes for the Go language, according to [RFC 2397](http://tools.ietf.org/html/rfc2397). | ||
[![Go Reference](https://pkg.go.dev/badge/github.com/ananthb/dataurl.svg)](https://pkg.go.dev/github.com/ananthb/dataurl) | ||
|
||
Data URLs are small chunks of data commonly used in browsers to display inline data, | ||
typically like small images, or when you use the FileReader API of the browser. | ||
|
||
Common use-cases: | ||
|
||
* generate a data URL out of a `string`, `[]byte`, `io.Reader` for inclusion in HTML templates, | ||
* parse a data URL sent by a browser in a http.Handler, and do something with the data (save to disk, etc.) | ||
* ... | ||
|
||
Install the package with: | ||
~~~ | ||
go get github.com/vincent-petithory/dataurl | ||
~~~ | ||
|
||
## Usage | ||
Data URL Schemes for Go | ||
|
||
~~~ go | ||
package main | ||
[![CI 🏗](https://github.com/ananthb/dataurl/actions/workflows/ci.yml/badge.svg)](https://github.com/ananthb/dataurl/actions/workflows/ci.yml) | ||
|
||
import ( | ||
"github.com/vincent-petithory/dataurl" | ||
"fmt" | ||
) | ||
This package parses and generates Data URL Schemes for the Go language, | ||
according to [RFC 2397](http://tools.ietf.org/html/rfc2397). | ||
|
||
func main() { | ||
dataURL, err := dataurl.DecodeString(`data:text/plain;charset=utf-8;base64,aGV5YQ==`) | ||
if err != nil { | ||
fmt.Println(err) | ||
return | ||
} | ||
fmt.Printf("content type: %s, data: %s\n", dataURL.MediaType.ContentType(), string(dataURL.Data)) | ||
// Output: content type: text/plain, data: heya | ||
} | ||
~~~ | ||
|
||
From a `http.Handler`: | ||
|
||
~~~ go | ||
func handleDataURLUpload(w http.ResponseWriter, r *http.Request) { | ||
dataURL, err := dataurl.Decode(r.Body) | ||
defer r.Body.Close() | ||
if err != nil { | ||
http.Error(w, err.Error(), http.StatusBadRequest) | ||
return | ||
} | ||
if dataURL.ContentType() == "image/png" { | ||
ioutil.WriteFile("image.png", dataURL.Data, 0644) | ||
} else { | ||
http.Error(w, "not a png", http.StatusBadRequest) | ||
} | ||
} | ||
~~~ | ||
Data URLs are small chunks of data commonly used in browsers to display inline data, | ||
typically like small images, or when you use the FileReader API of the browser. | ||
|
||
## Command | ||
|
||
For convenience, a `dataurl` command is provided to encode/decode dataurl streams. | ||
|
||
~~~ | ||
dataurl - Encode or decode dataurl data and print to standard output | ||
Usage: dataurl [OPTION]... [FILE] | ||
Use the [`dataurl`](./cmd/dataurl) command to encode/decode dataurl streams. | ||
|
||
dataurl encodes or decodes FILE or standard input if FILE is - or omitted, and prints to standard output. | ||
Unless -mimetype is used, when FILE is specified, dataurl will attempt to detect its mimetype using Go's mime.TypeByExtension (http://golang.org/pkg/mime/#TypeByExtension). If this fails or data is read from STDIN, the mimetype will default to application/octet-stream. | ||
Install it with `go install github.com/ananthb/dataurl/cmd/dataurl@latest`. | ||
|
||
Options: | ||
-a=false: encode data using ascii instead of base64 | ||
-ascii=false: encode data using ascii instead of base64 | ||
-d=false: decode data instead of encoding | ||
-decode=false: decode data instead of encoding | ||
-m="": force the mimetype of the data to encode to this value | ||
-mimetype="": force the mimetype of the data to encode to this value | ||
~~~ | ||
## [LICENSE](LICENSE) | ||
|
||
## Contributing | ||
Forked from [vincent-petithory/dataurl](https://github.com/vincent-petithory/dataurl) | ||
with contributions from [MagicalTux/dataurl)[https://github.com/MagicalTux/dataurl/tree/fix-issue-5). | ||
|
||
Feel free to file an issue/make a pull request if you find any bug, or want to suggest enhancements. | ||
Dataurl is available under the terms of the MIT license. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.