diff options
-rw-r--r-- | skate/reduce.go | 13 | ||||
-rw-r--r-- | skate/schema_test.go | 4 |
2 files changed, 9 insertions, 8 deletions
diff --git a/skate/reduce.go b/skate/reduce.go index 356ed25..4cd604a 100644 --- a/skate/reduce.go +++ b/skate/reduce.go @@ -574,7 +574,7 @@ func matchedRefsExtend(matched []*BiblioRef, refs []*Ref, stats *statsAugment) [ var ( authors []CSLAuthor isbn string - year string + issued *CSLDate ) for _, name := range r.Biblio.ContribRawNames { authors = append(authors, CSLAuthor{Name: name}) @@ -582,8 +582,11 @@ func matchedRefsExtend(matched []*BiblioRef, refs []*Ref, stats *statsAugment) [ if len(r.Biblio.Extra.ISBN) > 0 { isbn = r.Biblio.Extra.ISBN[0] } - if r.Biblio.Year > 1500 && r.Biblio.Year < 2022 { - year = fmt.Sprintf("%d", r.Biblio.Year) + // TODO: need to update this "max year" number frequently? + if r.Biblio.Year > 1500 && r.Biblio.Year <= 2025 { + issued = &CSLDate{Parts: [][]int{{int(r.Biblio.Year)}}} + } else { + issued = &CSLDate{} } bref.TargetCSL = &CSL{ Author: authors, @@ -598,9 +601,7 @@ func matchedRefsExtend(matched []*BiblioRef, refs []*Ref, stats *statsAugment) [ Title: r.Biblio.Title, URL: r.Biblio.Url, Volume: r.Biblio.Volume, - Issued: &CSLDate{ - Raw: year, - }, + Issued: issued, } } // Reuse fields for debugging, for now. diff --git a/skate/schema_test.go b/skate/schema_test.go index 7616001..4489bed 100644 --- a/skate/schema_test.go +++ b/skate/schema_test.go @@ -263,10 +263,10 @@ func TestSchemaMarshal(t *testing.T) { var csl = CSL{ Title: "test-doc", Issued: &CSLDate{ - Raw: "2012", + Parts: [][]int{{2012}}, }, } - var csl_json = []byte(`{"issued":{"raw":"2012"},"title":"test-doc"}`) + var csl_json = []byte(`{"issued":{"date-parts":[[2012]]},"title":"test-doc"}`) var csl_encoded, _ = json.Marshal(csl) if bytes.Compare(csl_json, csl_encoded) != 0 { t.Fatalf("got:\n%v\nwant:\n%v\n", string(csl_json[:]), string(csl_encoded[:])) |