Move parsing utilities to a separate file
This commit is contained in:
parent
18994a2ae6
commit
fbfe804b83
|
@ -96,57 +96,6 @@ func (s embedParser) previewOrLegitEmbed(name string, legitHtml string) string {
|
||||||
return legitHtml
|
return legitHtml
|
||||||
}
|
}
|
||||||
|
|
||||||
func extract(re *regexp.Regexp, src []byte, subexpName string) []byte {
|
|
||||||
m := re.FindSubmatch(src)
|
|
||||||
if m == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return m[re.SubexpIndex(subexpName)]
|
|
||||||
}
|
|
||||||
|
|
||||||
func extractMap(re *regexp.Regexp, src []byte) map[string][]byte {
|
|
||||||
m := re.FindSubmatch(src)
|
|
||||||
if m == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
res := make(map[string][]byte)
|
|
||||||
for _, name := range re.SubexpNames() {
|
|
||||||
if name != "" {
|
|
||||||
i := re.SubexpIndex(name)
|
|
||||||
res[name] = m[i]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
res["all"] = m[0]
|
|
||||||
return res
|
|
||||||
}
|
|
||||||
|
|
||||||
func extractAll(re *regexp.Regexp, src []byte, subexpName string) [][]byte {
|
|
||||||
m := re.FindAllSubmatch(src, -1)
|
|
||||||
if m == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return m[re.SubexpIndex(subexpName)]
|
|
||||||
}
|
|
||||||
|
|
||||||
func extractAllMap(re *regexp.Regexp, src []byte) map[string][][]byte {
|
|
||||||
m := re.FindAllSubmatch(src, -1)
|
|
||||||
if m == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
res := make(map[string][][]byte)
|
|
||||||
for i, name := range re.SubexpNames() {
|
|
||||||
if name != "" {
|
|
||||||
var vals [][]byte
|
|
||||||
for _, specificMatch := range m {
|
|
||||||
vals = append(vals, specificMatch[i])
|
|
||||||
}
|
|
||||||
res[name] = vals
|
|
||||||
}
|
|
||||||
}
|
|
||||||
res["all"] = m[0]
|
|
||||||
return res
|
|
||||||
}
|
|
||||||
|
|
||||||
func makeYoutubeEmbed(vid string, preview bool) string {
|
func makeYoutubeEmbed(vid string, preview bool) string {
|
||||||
if preview {
|
if preview {
|
||||||
return `
|
return `
|
||||||
|
|
|
@ -0,0 +1,54 @@
|
||||||
|
package parsing
|
||||||
|
|
||||||
|
import "regexp"
|
||||||
|
|
||||||
|
func extract(re *regexp.Regexp, src []byte, subexpName string) []byte {
|
||||||
|
m := re.FindSubmatch(src)
|
||||||
|
if m == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return m[re.SubexpIndex(subexpName)]
|
||||||
|
}
|
||||||
|
|
||||||
|
func extractMap(re *regexp.Regexp, src []byte) map[string][]byte {
|
||||||
|
m := re.FindSubmatch(src)
|
||||||
|
if m == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
res := make(map[string][]byte)
|
||||||
|
for _, name := range re.SubexpNames() {
|
||||||
|
if name != "" {
|
||||||
|
i := re.SubexpIndex(name)
|
||||||
|
res[name] = m[i]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
res["all"] = m[0]
|
||||||
|
return res
|
||||||
|
}
|
||||||
|
|
||||||
|
func extractAll(re *regexp.Regexp, src []byte, subexpName string) [][]byte {
|
||||||
|
m := re.FindAllSubmatch(src, -1)
|
||||||
|
if m == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return m[re.SubexpIndex(subexpName)]
|
||||||
|
}
|
||||||
|
|
||||||
|
func extractAllMap(re *regexp.Regexp, src []byte) map[string][][]byte {
|
||||||
|
m := re.FindAllSubmatch(src, -1)
|
||||||
|
if m == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
res := make(map[string][][]byte)
|
||||||
|
for i, name := range re.SubexpNames() {
|
||||||
|
if name != "" {
|
||||||
|
var vals [][]byte
|
||||||
|
for _, specificMatch := range m {
|
||||||
|
vals = append(vals, specificMatch[i])
|
||||||
|
}
|
||||||
|
res[name] = vals
|
||||||
|
}
|
||||||
|
}
|
||||||
|
res["all"] = m[0]
|
||||||
|
return res
|
||||||
|
}
|
Loading…
Reference in New Issue