aboutsummaryrefslogtreecommitdiffstats
path: root/skate/schema.go
diff options
context:
space:
mode:
Diffstat (limited to 'skate/schema.go')
-rw-r--r--skate/schema.go10
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.