JabRef / JabRef/jabref

Refactor BibTeX file field

Open
#98 13 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

component: bib(la)tex component: external-files dev: data-model status: freeze status: needs-refinement
Dominant language
Java
Stars
4.7k
Forks
3.6k
Avg merge
23h 39m
Merged PRs (30d)
381

Description

JabRef should be convenient for new users to use. When using the file field, the format for each file entry is description:link:type. Multiple values can be put in separated by ;. At each file, fields can be omitted. file = {desc} is a valid enry. Naively, I would have assumed that desc is the link. Furthermore type is a custom JabRef string, but Media Types are the accepted standard for providing types.

Therefore, I propose the new format link:description:media type.

Furthermore, I propose dropping support for the legacy fields pdf and ps. These fields were legacy from the end of 2007 on. Even though some users want to keep the old fields, I would vote for an intuitive handling of references to external files instead of clutter the UI with legacy things. (I currently can't find the email in the mailinglist where we discussed that :()

Discussion points

  • Is media type too over-engineered? Can we drop the type completely and derive the type by the file extension?
  • Are : and ; good separators?
  • Is file really more intuitive than separate pdf and ps links? Should we keep the pdf field?
  • Should the new field be called attachments to enable easy migration from the old format to the new one?

Next steps

I would propose a discussion at this issue and I'll update this text accordingly.

We should also remove "Tools -> Legacy Tools...".

More to read

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or entry points are named. Read the linked old-style and current-style file-link documentation, then resolve the proposed format, separator and media-type choices, legacy pdf/ps handling, field naming, and removal of Tools -> Legacy Tools before implementation.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
desktop
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.