diff options
author | Unknwon <u@gogs.io> | 2019-10-23 23:03:17 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-23 23:03:17 -0700 |
commit | 613139e7bef81d3573e7988a47eb6765f3de347a (patch) | |
tree | 49de7277898d3ff47a122c072568edb8ed4c9ac9 /vendor/github.com/chaseadamsio/goorgeous/header.go | |
parent | fb100dbf98f02e4c631d142ff0f52ec29ee2f00c (diff) |
Enable Go modules (#5835)
* Remove vendor
* Enable Go modules
* ci: add command to fetch dependencies
* ci: update setting
* ci: update settings
* Require Go 1.11
* Rename module name to gogs.io/gogs
Diffstat (limited to 'vendor/github.com/chaseadamsio/goorgeous/header.go')
-rw-r--r-- | vendor/github.com/chaseadamsio/goorgeous/header.go | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/vendor/github.com/chaseadamsio/goorgeous/header.go b/vendor/github.com/chaseadamsio/goorgeous/header.go deleted file mode 100644 index 66e8b993..00000000 --- a/vendor/github.com/chaseadamsio/goorgeous/header.go +++ /dev/null @@ -1,70 +0,0 @@ -package goorgeous - -import ( - "bufio" - "bytes" - "regexp" - "strings" -) - -// ExtractOrgHeaders finds and returns all of the headers -// from a bufio.Reader and returns them as their own byte slice -func ExtractOrgHeaders(r *bufio.Reader) (fm []byte, err error) { - var out bytes.Buffer - endOfHeaders := true - for endOfHeaders { - p, err := r.Peek(2) - if err != nil { - return nil, err - } - if !charMatches(p[0], '#') && !charMatches(p[1], '+') { - endOfHeaders = false - break - } - line, _, err := r.ReadLine() - if err != nil { - return nil, err - } - out.Write(line) - out.WriteByte('\n') - } - return out.Bytes(), nil -} - -var reHeader = regexp.MustCompile(`^#\+(\w+?): (.*)`) - -// OrgHeaders find all of the headers from a byte slice and returns -// them as a map of string interface -func OrgHeaders(input []byte) (map[string]interface{}, error) { - out := make(map[string]interface{}) - scanner := bufio.NewScanner(bytes.NewReader(input)) - - for scanner.Scan() { - data := scanner.Bytes() - if !charMatches(data[0], '#') && !charMatches(data[1], '+') { - return out, nil - } - matches := reHeader.FindSubmatch(data) - - if len(matches) < 3 { - continue - } - - key := string(matches[1]) - val := matches[2] - switch { - case strings.ToLower(key) == "tags" || strings.ToLower(key) == "categories" || strings.ToLower(key) == "aliases": - bTags := bytes.Split(val, []byte(" ")) - tags := make([]string, len(bTags)) - for idx, tag := range bTags { - tags[idx] = string(tag) - } - out[key] = tags - default: - out[key] = string(val) - } - - } - return out, nil - -} |