Support multiple journal abbreviations lists
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.
Steps:
- Create a good title for the list
- Option 1: Make https://github.com/JabRef/abbrv.jabref.org/tree/main/journals#readme a table and parse the table
- Option 2: Hard-code .csv file and journal list title (This is a quick win)
- 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:
Or similar to the "Protected Terms File"
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.
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.
/assign-me
π 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.
@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
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.
@Eslam-Radwan Maybe you first tackle https://github.com/JabRef/jabref/issues/10557
I unassign you here.
/assign-me
π 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.
/unassign-me
π 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.
/assign-me
π 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.
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:
- Option 1: Add a dedicated "Add" button for each list (as shown in the design).
- Option 2: Use one "Add Abbreviation" button, but require the user to select a specific list from a dropdown.
- 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:.
Looking forward to your thoughts!
Best regards.
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.
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 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).
The GSoC project should cover more as we learn these days about the abbreviation code. See also other issues tagged with journal abbreviation.
/assign-me
π 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! π
β° 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!
π 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.
Hi, can I take this?
/assign-me
π 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! π
β° 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!
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
HI, nice to see you again! did you try a graldew clean before?
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.
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.
Working on it, will submit a PR soon.
π 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.