jabref icon indicating copy to clipboard operation
jabref copied to clipboard

Support multiple journal abbreviations lists

Open koppor opened this issue 11 months ago β€’ 28 comments

Background

JabRef has suport to abbreviate and unabbreviate journal names: https://docs.jabref.org/advanced/journalabbreviations

With https://github.com/JabRef/jabref/pull/9504, JabRef has much better internal handling of journal lists.

Feature

The dropdown of JabRef should not show a single "JabRef built in list", but should show the various lists we offer.

Image

Steps:

  1. Create a good title for the list
    1. Option 1: Make https://github.com/JabRef/abbrv.jabref.org/tree/main/journals#readme a table and parse the table
    2. Option 2: Hard-code .csv file and journal list title (This is a quick win)
    3. Option 3: Add title to CSV file (The title could be added (using # which indicates a comment)) - refs second item of https://github.com/koppor/jabref/issues/48

Instead of a dropdown, have a list of

  • build-in lists
  • external lists
  • custom list

Similar to "Databases" at SLR:

Image

Or similar to the "Protected Terms File"

Image

Then, one can enable and disable with a click.


Attention: There are dotless and dot abbreviation lists - maybe the UI should distinguish them, too.


  • List of journals will be hard-coded

  • MVStore should store each list in a separate table

  • Converter needs to be adapted

The yellow one should be replaced, the green one should be kept - and updated upon selection change at the yellow one.

Image


Optionally, online lists could be downloaded - User could point to https://github.com/JabRef/abbrv.jabref.org/tree/main/journals and select a list from there - or "just" put a CSV online link.

koppor avatar Jan 06 '25 20:01 koppor

/assign-me

Eslam-Radwan avatar Feb 09 '25 04:02 Eslam-Radwan

πŸ‘‹ Hey @Eslam-Radwan, thank you for your interest in this issue! πŸŽ‰

We're excited to have you on board. Start by exploring our Contributing guidelines, and don't forget to check out our workspace setup guidelines to get started smoothly.

In case you encounter failing tests during development, please check our developer FAQs!

Having any questions or issues? Feel free to ask here on GitHub. Need help setting up your local workspace? Join the conversation on JabRef's Gitter chat. And don't hesitate to open a (draft) pull request early on to show the direction it is heading towards. This way, you will receive valuable feedback.

Happy coding! πŸš€

⏳ Please note, you will be automatically unassigned if the issue isn't closed within 90 days (by 10 May 2025). A maintainer can also add the "πŸ“Œ Pinned"" label to prevent automatic unassignment.

github-actions[bot] avatar Feb 09 '25 04:02 github-actions[bot]

@koppor can you provide more information about the feature and the solution? I have been reading the code for 2 days and found that there is a JournalAbbreviationRepository class that fetches the abbreviations from somewhere and loads them to the other classes, also I wanted to know what classes should I make or what classes that will be replaced

Thanks in advance

Eslam-Radwan avatar Feb 12 '25 01:02 Eslam-Radwan

can you provide more information about the feature and the solution?

I currently do not have resources for that. I am sorry.

Note that this is a medium-sized project and requires some understanding of JabRef's code. Maybe move on to another issue.

koppor avatar Feb 12 '25 21:02 koppor

@Eslam-Radwan Maybe you first tackle https://github.com/JabRef/jabref/issues/10557

I unassign you here.

koppor avatar Feb 17 '25 11:02 koppor

/assign-me

priyanshu16095 avatar Feb 22 '25 22:02 priyanshu16095

πŸ‘‹ Hey @priyanshu16095, thank you for your interest in this issue! πŸŽ‰

We're excited to have you on board. Start by exploring our Contributing guidelines, and don't forget to check out our workspace setup guidelines to get started smoothly.

In case you encounter failing tests during development, please check our developer FAQs!

Having any questions or issues? Feel free to ask here on GitHub. Need help setting up your local workspace? Join the conversation on JabRef's Gitter chat. And don't hesitate to open a (draft) pull request early on to show the direction it is heading towards. This way, you will receive valuable feedback.

Happy coding! πŸš€

⏳ Please note, you will be automatically unassigned if the issue isn't closed within 90 days (by 23 May 2025). A maintainer can also add the "πŸ“Œ Pinned"" label to prevent automatic unassignment.

github-actions[bot] avatar Feb 22 '25 22:02 github-actions[bot]

/unassign-me

priyanshu16095 avatar Feb 23 '25 23:02 priyanshu16095

πŸ‘‹ Hey @priyanshu16095, you've been automatically unassigned from this issue due to inactivity.

[!NOTE] If you'd like to be re-assigned, just leave another comment or ask a maintainer to assign you again. If you're still actively working on the issue, let us know by commenting, and we can pin it to prevent automatic unassignment.

github-actions[bot] avatar Feb 23 '25 23:02 github-actions[bot]

/assign-me

MhammedAhmmed avatar Mar 13 '25 23:03 MhammedAhmmed

πŸ‘‹ Hey @MhammedAhmmed, thank you for your interest in this issue! πŸŽ‰

We're excited to have you on board. Start by exploring our Contributing guidelines, and don't forget to check out our workspace setup guidelines to get started smoothly.

In case you encounter failing tests during development, please check our developer FAQs!

Having any questions or issues? Feel free to ask here on GitHub. Need help setting up your local workspace? Join the conversation on JabRef's Gitter chat. And don't hesitate to open a (draft) pull request early on to show the direction it is heading towards. This way, you will receive valuable feedback.

Happy coding! πŸš€

⏳ Please note, you will be automatically unassigned if the issue isn't closed within 45 days (by 27 April 2025). A maintainer can also add the "πŸ“Œ Pinned" label to prevent automatic unassignment.

github-actions[bot] avatar Mar 13 '25 23:03 github-actions[bot]

Hello @Koppor,

I’ve created an initial Figma design for the modifications to the abbreviation lists based on my current understanding. Here’s a quick overview:

Current Design:

  • Replaced the dropdown with a checkbox list for built-in lists (e.g., "American Chemical Society," "IEEE") and external/custom lists (e.g., "My_list1").
  • Users can now select multiple lists simultaneously.

Add Abbreviation Functionality:

Since users can select multiple lists, a single "Add Abbreviation" button isn’t straightforward. I’ve proposed three options:

  1. Option 1: Add a dedicated "Add" button for each list (as shown in the design).
  2. Option 2: Use one "Add Abbreviation" button, but require the user to select a specific list from a dropdown.
  3. Option 3: Automatically add the abbreviation to all selected lists.

For Option 1 and Option 2, a pop-up box would be required to allow users to enter the abbreviation data.

Next Steps:

This is an initial design, and I’d appreciate your feedback on any suggestions for modifications or alternative approaches.

Here’s the Figma design for your review:.

Image

Looking forward to your thoughts!

Best regards.

MhammedAhmmed avatar Mar 22 '25 23:03 MhammedAhmmed

Since users can select multiple lists, a single "Add Abbreviation" button isn’t straightforward. I’ve proposed three options:

Thank you! I think, you missed the point that some lists are generated and thus adding an abbreviation to that list does not make sense (because it will eventually be overriden). See https://github.com/JabRef/abbrv.jabref.org/tree/main/journals#journal-abbreviations for generation of the lists. As a consequence, Option 3 does not make sense.

i think, the main use case is that a user has an own abbreviation list. Thus, Option 2 is the one. The dropdown is left of the button and lists custom abbreviation lists.

Advanced solution: Enable usrs to add to a list not updated automatically. If the user does it, JabRef forks and clones https://github.com/JabRef/abbrv.jabref.org/, creates a new branch and submits a PR. Similar to GitButler, but for Journal Lists.

koppor avatar Mar 23 '25 19:03 koppor

Thank you for your clear explanation. I'll focus on Option 2 (custom list dropdown + add button) as the core solution, with clear UI labeling of read-only lists. The Git contribution workflow will be a stretch goal. I welcome any further suggestions.

MhammedAhmmed avatar Mar 24 '25 17:03 MhammedAhmmed

@MhammedAhmmed Hi, I have un-assigned you to avoid confusions about this issue being taken, as this is a (potential) GSoC project. We will be assigning the mentee after selections are done.

(You can carry on with your exploration).

subhramit avatar Mar 26 '25 13:03 subhramit

The GSoC project should cover more as we learn these days about the abbreviation code. See also other issues tagged with journal abbreviation.

koppor avatar Mar 31 '25 21:03 koppor

/assign-me

aaspst avatar Apr 25 '25 08:04 aaspst

πŸ‘‹ Hey @aaspst, thank you for your interest in this issue! πŸŽ‰

We're excited to have you on board. Start by exploring our Contributing guidelines, and don't forget to check out our workspace setup guidelines to get started smoothly.

In case you encounter failing tests during development, please check our developer FAQs!

Having any questions or issues? Feel free to ask here on GitHub. Need help setting up your local workspace? Join the conversation on JabRef's Gitter chat. And don't hesitate to open a (draft) pull request early on to show the direction it is heading towards. This way, you will receive valuable feedback.

Happy coding! πŸš€

github-actions[bot] avatar Apr 25 '25 08:04 github-actions[bot]

⏰ Assignment Reminder

Hi @aaspst, this is a friendly reminder about your assignment to this issue.

[!WARNING] This issue will be automatically unassigned in 11 days if there's no activity.

How to keep your assignment


If you are working on it, you can prevent automatic unassignment by:

  • Submitting a draft PR with your progress
  • Asking for the πŸ“Œ Pinned label if you need more time

We appreciate your contribution and are here to help if needed!

github-actions[bot] avatar May 08 '25 12:05 github-actions[bot]

πŸ“‹ Assignment Update

Hi @aaspst, due to inactivity, you have been unassigned from this issue.

Next steps


If you still want to work on this:

  • Submit a pull request showing your current state. You will be automatically assigned again.
  • Ask a maintainer to assign you again.

github-actions[bot] avatar May 30 '25 12:05 github-actions[bot]

Hi, can I take this?

priyanshu16095 avatar Jun 01 '25 16:06 priyanshu16095

/assign-me

priyanshu16095 avatar Jun 01 '25 17:06 priyanshu16095

πŸ‘‹ Hey @priyanshu16095, thank you for your interest in this issue! πŸŽ‰

We're excited to have you on board. Start by exploring our Contributing guidelines, and don't forget to check out our workspace setup guidelines to get started smoothly.

In case you encounter failing tests during development, please check our developer FAQs!

Having any questions or issues? Feel free to ask here on GitHub. Need help setting up your local workspace? Join the conversation on JabRef's Gitter chat. And don't hesitate to open a (draft) pull request early on to show the direction it is heading towards. This way, you will receive valuable feedback.

Happy coding! πŸš€

github-actions[bot] avatar Jun 01 '25 17:06 github-actions[bot]

⏰ Assignment Reminder

Hi @priyanshu16095, this is a friendly reminder about your assignment to this issue.

[!WARNING] This issue will be automatically unassigned in 11 days if there's no activity.

Remember that you can ask the JabRef Guru about anything regarding JabRef. Additionally, our contributing guide has hints on creating a pull request and a link to our Gitter chat.

How to keep your assignment


If you are working on it, you can prevent automatic unassignment by:

  • Submitting a draft PR with your progress
  • Asking for the πŸ“Œ Pinned label if you need more time

We appreciate your contribution and are here to help if needed!

github-actions[bot] avatar Jun 11 '25 12:06 github-actions[bot]

Unable to start jabref, getting this in logs.

Task :jablib:generateGrammarSource error(144): org\jabref\logic\journals\ltwa\Ltwa.g4:62:28: multi-character literals are not allowed in lexer sets: 'Γ€' error(144): org\jabref\logic\journals\ltwa\Ltwa.g4:62:34: multi-character literals are not allowed in lexer sets: 'Γ–' error(144): org\jabref\logic\journals\ltwa\Ltwa.g4:62:41: multi-character literals are not allowed in lexer sets: 'ΓΈ' error(144): org\jabref\logic\journals\ltwa\Ltwa.g4:62:47: multi-character literals are not allowed in lexer sets: 'ΓΏ'

Task :jablib:generateGrammarSource FAILED

[Incubating] Problems report is available at: file:///C:/Users/navra/Downloads/jabref/build/reports/problems/problems-report.html

Execution failed for task ':jablib:generateGrammarSource'.

There were 4 errors during grammar generation

  • Try:

Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. Get more help at https://help.gradle.org. Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0. You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. For more on this, please refer to https://docs.gradle.org/8.14.2/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation. BUILD FAILED in 2m 45s 12 actionable tasks: 3 executed, 9 up-to-date

priyanshu16095 avatar Jun 13 '25 22:06 priyanshu16095

HI, nice to see you again! did you try a graldew clean before?

Siedlerchr avatar Jun 13 '25 22:06 Siedlerchr

changing this

fragment LETTER: 'A'..'Z' | 'Γ€'..'Γ–' | 'ΓΈ'..'ΓΏ' | '\u0100'..'\u017F' | '\u4E00'..'\u9FFF';

to this,

fragment LETTER: [A-Z] | [a-z] | '\u00C0'..'\u00D6' // À–Ö | '\u00D8'..'\u00F6' // Γ˜β€“ΓΆ | '\u00F8'..'\u00FF' // ø–ÿ | '\u0100'..'\u017F'
| '\u4E00'..'\u9FFF';

made it worked. As the above grammar doesn't work properly on windows, causes ANTLR to misinterpret characters.

priyanshu16095 avatar Jun 13 '25 23:06 priyanshu16095

Mentioned in the chat on June 9th at https://matrix.to/#/%23JabRef_jabref%3Agitter.im/%24xKyE45Yxje2VV3pTtjtsVAQjh6Qe-G0w_qg0ozN8wac?via=gitter.im&via=matrix.org&via=tchncs.de. There was no follow-up. Thus, @priyanshu16095 please feel free to file a pull request. Your new grammar looks nice and also includes comments to enable readers to understand.

koppor avatar Jun 14 '25 06:06 koppor

Working on it, will submit a PR soon.

priyanshu16095 avatar Jun 19 '25 15:06 priyanshu16095

πŸ“‹ Assignment Update

Hi @priyanshu16095, due to inactivity, you have been unassigned from this issue.

Next steps


If you still want to work on this:

  • Submit a pull request showing your current state. You will be automatically assigned again.
  • Ask a maintainer to assign you again.

github-actions[bot] avatar Jul 28 '25 23:07 github-actions[bot]