dublincore.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package ext
  2. // DublinCoreExtension represents a feed extension
  3. // for the Dublin Core specification.
  4. type DublinCoreExtension struct {
  5. Title []string `json:"title,omitempty"`
  6. Creator []string `json:"creator,omitempty"`
  7. Author []string `json:"author,omitempty"`
  8. Subject []string `json:"subject,omitempty"`
  9. Description []string `json:"description,omitempty"`
  10. Publisher []string `json:"publisher,omitempty"`
  11. Contributor []string `json:"contributor,omitempty"`
  12. Date []string `json:"date,omitempty"`
  13. Type []string `json:"type,omitempty"`
  14. Format []string `json:"format,omitempty"`
  15. Identifier []string `json:"identifier,omitempty"`
  16. Source []string `json:"source,omitempty"`
  17. Language []string `json:"language,omitempty"`
  18. Relation []string `json:"relation,omitempty"`
  19. Coverage []string `json:"coverage,omitempty"`
  20. Rights []string `json:"rights,omitempty"`
  21. }
  22. // NewDublinCoreExtension creates a new DublinCoreExtension
  23. // given the generic extension map for the "dc" prefix.
  24. func NewDublinCoreExtension(extensions map[string][]Extension) *DublinCoreExtension {
  25. dc := &DublinCoreExtension{}
  26. dc.Title = parseTextArrayExtension("title", extensions)
  27. dc.Creator = parseTextArrayExtension("creator", extensions)
  28. dc.Author = parseTextArrayExtension("author", extensions)
  29. dc.Subject = parseTextArrayExtension("subject", extensions)
  30. dc.Description = parseTextArrayExtension("description", extensions)
  31. dc.Publisher = parseTextArrayExtension("publisher", extensions)
  32. dc.Contributor = parseTextArrayExtension("contributor", extensions)
  33. dc.Date = parseTextArrayExtension("date", extensions)
  34. dc.Type = parseTextArrayExtension("type", extensions)
  35. dc.Format = parseTextArrayExtension("format", extensions)
  36. dc.Identifier = parseTextArrayExtension("identifier", extensions)
  37. dc.Source = parseTextArrayExtension("source", extensions)
  38. dc.Language = parseTextArrayExtension("language", extensions)
  39. dc.Relation = parseTextArrayExtension("relation", extensions)
  40. dc.Coverage = parseTextArrayExtension("coverage", extensions)
  41. dc.Rights = parseTextArrayExtension("rights", extensions)
  42. return dc
  43. }