Skip to content

Define optimal serialization format and variations (dropping or reviving the 2.9.2 format) #116

@koppor

Description

@koppor

In JabRef 2.10, we introduced following new feature:

    Changed serialization of BibTeX entries:
        First, the required, then the optional and then all other fields are written.
        Thereby, fields are now ordered by name. Except the title, which is written first.
        The second word in of the BibTeX type is capitalized. E.g., Inproceedings got InProceedings
        Configurable: Start field contents in same column. Enabled by default.
        Configurable: Use camel case for field names (e.g., "HowPublished" instead of "howpublished"). Enabled by default.
        If no field name is given, then "UNKNOWN" is used. For instance, " = {X}" gets " UNKNOWN = {X}".

When a user collaborates with a person using an older version of JabRef, they cannot use version control properly as the serialization always changes. In version 2.11 beta 2, we offer a quick hack to go back to the old 2.9.2 behavior, which is somehow incomplete. See #10 (comment)

We can just focus on other issues and let time solve the issue or invest time to implement the old serialization again.

Related issue: #115

Request at sourceforge: https://sourceforge.net/p/jabref/feature-requests/864/

To track the progress of implementation, the consensus described below is added here.

Rationale: People are very emotional about formatting -> Modify as little as possible in the bib file

  • Unmodified entries will not be formatted and written back exactly as read in (including all formatting issues, etc.
  • Modifying any part of an entry results in a reformatting of the complete entry
  • No more global configuration forsorting of entries on load / save. (sorting information is now stored in the file)
  • New entries are added to the bottom of the file
  • Fixed and non-configurable format for new or modified entries. Dropping all field saving options (Preferences -> File -> Field saving options)
  • Fields are sorted as stated in the Bibtex / Biblatex manuals.
  • The = is appended directly to the field key. The value part is indented to one space past the longest field key name + = (so that all values are aligned).
  • Bibtex entry keys are written in camel case, starting upper case
  • Field keys are formatted in lower case only
  • No longer perform any changes of field content (no more space/tab/newline elimination, etc.)
  • Provide formatter (Example: Remove tabs / newlines / duplicate spaces) that can be enabled by a user for specific fields onLoad / onSave. These are not enabled by default.
  • If in doubt, do as biber does

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions