Skip to content

v0.8.1

Latest

Choose a tag to compare

@goerz goerz released this 21 Aug 20:05
· 7 commits to master since this release
v0.8.1
  • Fixed: an export with the default minimal field selection no longer drops fields that the entry type requires. Every entry type BibDesk documents now has a field whitelist of its own, holding the type's required fields together with the optional ones that identify the work (a book's edition, a report's number) or locate it (a url, a doi): book, inbook, and proceedings keep publisher, techreport keeps institution, booklet keeps howpublished, manual keeps organization, unpublished keeps note and url, webpage keeps url, periodical keeps journal, jurthesis keeps school, glossdef keeps word/definition, and conference is exported like inproceedings. Previously only article, inproceedings, incollection, mastersthesis, and phdthesis had a whitelist and every other type fell back to author, title, year, so that a minimally exported @book carried no publisher and a @techreport no institution. A stored doi is now exported for every type, including the thesis types. The fallback applies only to entry types outside BibDesk's own table, i.e. biblatex-only types like @online and types added by a bibdeskparser.toml. [[#74], [#77]]
  • Fixed: export --update FILE (Library.export(update=...)) no longer drops the fields of an entry that its field selection does not cover. A refreshed entry now keeps every field it has in FILE, in FILE's own field order, with the library's current value where the library's entry has the field (and FILE's value where it does not); the selection -- "minimal" by default, and --full/--field on the command line -- only adds fields on top of that. Refreshing a file exported with --full therefore no longer strips it down to the minimal fields, and hand-added fields such as an annote survive an update, making the documented "nothing is ever removed" true field by field. [[#75], [#79]]
  • Fixed: setting a field to a URL no longer stores it as a bare @string macro reference. An ordinary URL is a valid BibDesk macro name, so set_field KEY url ... (and the equivalent assignment in Python) stored an unbraced value, which made the next save fail with undefined macro(s) referenced by one or more entries and made export write invalid BibTeX. A plain str is now always stored as literal text when it carries a URL scheme (://), and in any field whose name contains url; MacroString still forces a macro reference. [[#78], [#80]]
  • Added: export (including export --update) now warns about every bare @string macro reference it keeps for a macro that nothing defines -- neither the library (nor the strings argument of export_entries) nor the standard month macros -- since such output is not valid BibTeX. Only the expand_strings=True path warned before. [[#78], [#80]]