Skip to content

Commit

Permalink
Merge pull request #1 from mholt/master
Browse files Browse the repository at this point in the history
Update
  • Loading branch information
hacdias committed Sep 18, 2015
2 parents 4c642e9 + 66fb8f0 commit 043e000
Showing 1 changed file with 34 additions and 0 deletions.
34 changes: 34 additions & 0 deletions middleware/context.go
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,40 @@ func (c Context) Truncate(input string, length int) string {
return input
}

// StripHTML returns s without HTML tags. It is fairly naive
// but works with most valid HTML inputs.
func (c Context) StripHTML(s string) string {
var buf bytes.Buffer
var inTag, inQuotes bool
var tagStart int
for i, ch := range s {
if inTag {
if ch == '>' && !inQuotes {
inTag = false
} else if ch == '<' && !inQuotes {
// false start
buf.WriteString(s[tagStart:i])
tagStart = i
} else if ch == '"' {
inQuotes = !inQuotes
}
continue
}
if ch == '<' {
inTag = true
tagStart = i
continue
}
buf.WriteRune(ch)
}
if inTag {
// false start
buf.WriteString(s[tagStart:])
inTag = false
}
return buf.String()
}

// StripExt returns the input string without the extension,
// which is the suffix starting with the final '.' character
// but not before the final path separator ('/') character.
Expand Down

0 comments on commit 043e000

Please sign in to comment.