diff options
author | Steve Manuel <nilslice@gmail.com> | 2016-12-17 00:42:46 -0800 |
---|---|---|
committer | Steve Manuel <nilslice@gmail.com> | 2016-12-17 00:42:46 -0800 |
commit | b564e0ce57730af0afa9fa43b26aaf4d49539c86 (patch) | |
tree | 7066c3f2df77d1b3eaa40489afb4587725cee36c /management/manager | |
parent | ab793d204399ea0b46ec1938cc23a4d84ea045b4 (diff) |
moving interfaces around which complicated import cycles
Diffstat (limited to 'management/manager')
-rw-r--r-- | management/manager/process.go | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/management/manager/process.go b/management/manager/process.go deleted file mode 100644 index ad6da94..0000000 --- a/management/manager/process.go +++ /dev/null @@ -1,72 +0,0 @@ -package manager - -import ( - "regexp" - "strings" - "unicode" - - "github.com/bosssauce/ponzu/content" - - "golang.org/x/text/transform" - "golang.org/x/text/unicode/norm" -) - -// Slug returns a URL friendly string from the title of a post item -func Slug(i content.Identifiable) (string, error) { - // get the name of the post item - name := strings.TrimSpace(i.String()) - - // filter out non-alphanumeric character or non-whitespace - slug, err := stringToSlug(name) - if err != nil { - return "", err - } - - return slug, nil -} - -func isMn(r rune) bool { - return unicode.Is(unicode.Mn, r) // Mn: nonspacing marks -} - -// modified version of: https://www.socketloop.com/tutorials/golang-format-strings-to-seo-friendly-url-example -func stringToSlug(s string) (string, error) { - src := []byte(strings.ToLower(s)) - - // convert all spaces to dash - rx := regexp.MustCompile("[[:space:]]") - src = rx.ReplaceAll(src, []byte("-")) - - // remove all blanks such as tab - rx = regexp.MustCompile("[[:blank:]]") - src = rx.ReplaceAll(src, []byte("")) - - rx = regexp.MustCompile("[!/:-@[-`{-~]") - src = rx.ReplaceAll(src, []byte("")) - - rx = regexp.MustCompile("/[^\x20-\x7F]/") - src = rx.ReplaceAll(src, []byte("")) - - rx = regexp.MustCompile("`&(amp;)?#?[a-z0-9]+;`i") - src = rx.ReplaceAll(src, []byte("-")) - - rx = regexp.MustCompile("`&([a-z])(acute|uml|circ|grave|ring|cedil|slash|tilde|caron|lig|quot|rsquo);`i") - src = rx.ReplaceAll(src, []byte("\\1")) - - rx = regexp.MustCompile("`[^a-z0-9]`i") - src = rx.ReplaceAll(src, []byte("-")) - - rx = regexp.MustCompile("`[-]+`") - src = rx.ReplaceAll(src, []byte("-")) - - str := strings.Replace(string(src), "'", "", -1) - str = strings.Replace(str, `"`, "", -1) - - t := transform.Chain(norm.NFD, transform.RemoveFunc(isMn), norm.NFC) - slug, _, err := transform.String(t, str) - if err != nil { - return "", err - } - - return strings.TrimSpace(slug), nil -} |