diff options
Diffstat (limited to 'skate/schema.go')
-rw-r--r-- | skate/schema.go | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/skate/schema.go b/skate/schema.go index 52aa91a..f97b55a 100644 --- a/skate/schema.go +++ b/skate/schema.go @@ -59,13 +59,13 @@ func RefToRelease(ref *Ref) (*Release, error) { } release.Contribs = contribs if strings.Contains(strings.ToLower(ref.Biblio.Unstructured), "isbn") { - release.ExtIDs.ISBN = parseIsbn(ref.Biblio.Unstructured) + release.ExtIDs.ISBN = ParseIsbn(ref.Biblio.Unstructured) } return &release, nil } -// parseIsbn tries to find and validate ISBN from unstructured data. -func parseIsbn(s string) []string { +// ParseIsbn tries to find and validate ISBN from unstructured data. +func ParseIsbn(s string) []string { // ISBN: 10: 0137822693, pp: 373 // Robotec, E. (1996). Scorbot ER VII, User's Manual, Eshed Robotec, // ISBN9652910333. Shannon, C. (1948). A Mathematical Theory of @@ -126,6 +126,10 @@ type Biblio struct { Url string `json:"url,omitempty"` Volume string `json:"volume,omitempty"` Year int64 `json:"year,omitempty"` + // More non-standard fields go into extra. + Extra struct { + ISBN []string `json:"isbn"` + } `json:"extra"` } // Ref is a reference document, can be very partial. |