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 | |
parent | ab793d204399ea0b46ec1938cc23a4d84ea045b4 (diff) |
moving interfaces around which complicated import cycles
Diffstat (limited to 'management')
-rw-r--r-- | management/editor/editor.go | 6 | ||||
-rw-r--r-- | management/editor/elements.go | 2 | ||||
-rw-r--r-- | management/manager/process.go | 72 |
3 files changed, 0 insertions, 80 deletions
diff --git a/management/editor/editor.go b/management/editor/editor.go index 6b55a38..7194c27 100644 --- a/management/editor/editor.go +++ b/management/editor/editor.go @@ -13,12 +13,6 @@ type Editable interface { MarshalEditor() ([]byte, error) } -// Sortable ensures data is sortable by time -type Sortable interface { - Time() int64 - Touch() int64 -} - // Mergeable allows external post content to be approved and published through // the public-facing API type Mergeable interface { diff --git a/management/editor/elements.go b/management/editor/elements.go index 4a8ae55..bb2cb3f 100644 --- a/management/editor/elements.go +++ b/management/editor/elements.go @@ -242,8 +242,6 @@ func Select(fieldName string, p interface{}, attrs, options map[string]string) [ // find the field value in p to determine if an option is pre-selected fieldVal := valueFromStructField(fieldName, p) - // may need to alloc a buffer, as we will probably loop through options - // and append the []byte from domElement() called for each option attrs["class"] = "browser-default" sel := newElement("select", attrs["label"], fieldName, p, attrs) var opts []*element 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 -} |