jabref icon indicating copy to clipboard operation
jabref copied to clipboard

Export for academicpages.github.io

Open koppor opened this issue 1 year ago β€’ 15 comments

The Jekyll template https://academicpages.github.io allows to create a nice academic page. Publications go into the folder https://github.com/academicpages/academicpages.github.io/tree/master/_publications.

JabRef should be able to create these markdown files.

Example: https://github.com/academicpages/academicpages.github.io/blob/master/_publications/2009-10-01-paper-title-number-1.md. Check the RAW file: https://github.com/academicpages/academicpages.github.io/blob/master/_publications/2009-10-01-paper-title-number-1.md?plain=1

Time stamp creation: Order by publication type (Book, Journal, book chapter, inproceedings, all-others).

Mapping

BibTeX Markdown
title title
- collection always set to publications
- permalink: to-be-done. Maybe citation key?
note excerpt
date/year+month+day date, use 01 if month or day do not exist
venue booktile/journal (getFieldOrAlias, because it could be journaltitle
doi/url paperurl
(all) citation: Use current preview style (or do something short)
abstract Text below the YAML in Markdown

Task

  • Learn about the markdown file format of academicpages: https://github.com/academicpages/academicpages.github.io/blob/master/_publications/2024-02-17-paper-title-number-4.md
  • Read custom export filter
  • Read existing .layouts.
    • https://github.com/JabRef/jabref/tree/main/src/main/resources/resource/layout/title-markdown
    • https://github.com/JabRef/jabref/pull/12220/files
    • https://github.com/JabRef/jabref/tree/main/src/main/resources/resource/layout/listrefs
    • https://github.com/JabRef/jabref/tree/main/src/main/resources/resource/layout/iso690txt
  • Create another folder academicpages for that.
  • Ensure that the entry type is mapped to category

Note: Maybe, one also needs to implement some Java code, because the custom exporter is for generating one file, but we want to generate multiple files.


Future work:

  • support sub-grouping of inproceedings and all-others (e.g., workshops and conference articles should be distinguished. I personally do it via groups. Maybe a magic "Export" group. Details at https://github.com/koppor/jabref/issues/468)
  • https://github.com/koppor/jabref/issues/468

koppor avatar Mar 27 '24 13:03 koppor

Follow-up issue: https://github.com/JabRef/jabref/issues/12729

koppor avatar Mar 13 '25 10:03 koppor

/assign-me

kaushikaW avatar Mar 21 '25 10:03 kaushikaW

πŸ‘‹ Hey @kaushikaW, 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 there is not a (draft) pull request within 14 days (by 04 April 2025).

github-actions[bot] avatar Mar 21 '25 10:03 github-actions[bot]

/assign-me

GreLucie avatar Nov 05 '25 10:11 GreLucie

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

We're excited to have you on board. Start by exploring our Contributing guidelines, and set up your local development workspace by following the steps in our workspace setup guidelines to get started smoothly.

For questions on JabRef functionality, you can consult the JabRef Guru. For questions related to the codebase, please start using DeepWiki.

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

Still facing issues or having more questions? Feel free to ask here on GitHub or on JabRef's Gitter chat. Please don't hesitate to open a (draft) pull request early on to show the direction you are heading towards if unsure.

Happy coding! πŸš€

github-actions[bot] avatar Nov 05 '25 10:11 github-actions[bot]

Hi @koppor , I am one of the students working with @GreLucie on this issue and I had a question in relation to the mapping, specifically the url/doi that gets converted to the paperurl in the markdown. When I check the format for the markdown demanded by academic pages I see that what they mean by it is the route in the repository to a pdf representation of the publication (entry in Jabref), so wouldn't it be more appropriate to associate 'paperurl' with the pdf link attached to the entry (if it exists) rather than the url or the doi ? thanks,

sadok-lajmi avatar Nov 08 '25 13:11 sadok-lajmi

@sadok-lajmi sounds good. Remember to convert the link and copy the files

koppor avatar Nov 08 '25 15:11 koppor

@sadok-lajmi sounds good. Remember to convert the link and copy the files

Thank you for the response, I just don't know what u mean by convert the link I might be missing something..

sadok-lajmi avatar Nov 08 '25 15:11 sadok-lajmi

⏰ Assignment Reminder

Hi @GreLucie, 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 or DeepWiki 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 pull request with your progress within 11 days
  • 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 Nov 18 '25 12:11 github-actions[bot]

Hello @koppor , we had a question about the custom exporter and about how we could export multiple files ("Note: Maybe, one also needs to implement some Java code, because the custom exporter is for generating one file, but we want to generate multiple files."). Did someone ever try something similar before ? Do you think it's necessary to start from an ExporterTamplate ? We tried looking into the documentation but we couldn't find anything that explains specifically the logic behind exporters (not the layouts andΒ formattingΒ ).

GreLucie avatar Nov 19 '25 07:11 GreLucie

@GreLucie You can create a custom exporter .e.g AcademicPagesExporter that simply iterates over all entries and calls the TemplateExporter for each entry... Et voila you should end up with multiple pages

Siedlerchr avatar Nov 19 '25 08:11 Siedlerchr

Hi, I have a question for @Siedlerchr or @koppor : I'm running into a problem where after I created a new custom layoutformatter in the package org.jabref.logic.layout.format where all the other layout formatters are and I try to use it in my layout and test it by running ./gradlew run and exporting, it's saying that my new formatter could not be found (and it does this also for another formatter that existed already "ShortMonthFormatter") so I was wondering if there was a file where the layout formatters to be used are explicitly registered in code ? thx

sadok-lajmi avatar Nov 23 '25 13:11 sadok-lajmi

Hi, I have a question for @Siedlerchr or @koppor : I'm running into a problem where after I created a new custom layoutformatter in the package org.jabref.logic.layout.format where all the other layout formatters are and I try to use it in my layout and test it by running ./gradlew run and exporting, it's saying that my new formatter could not be found (and it does this also for another formatter that existed already "ShortMonthFormatter") so I was wondering if there was a file where the layout formatters to be used are explicitly registered in code ? thx

Did you wire your new formatter in org.jabref.logic.layout.LayoutEntry#getLayoutFormatterByName?

I found the method by searching the callers of ShortMonthFormatter

koppor avatar Nov 23 '25 23:11 koppor

Hi, I have a question for @Siedlerchr or @koppor : I'm running into a problem where after I created a new custom layoutformatter in the package org.jabref.logic.layout.format where all the other layout formatters are and I try to use it in my layout and test it by running ./gradlew run and exporting, it's saying that my new formatter could not be found (and it does this also for another formatter that existed already "ShortMonthFormatter") so I was wondering if there was a file where the layout formatters to be used are explicitly registered in code ? thx

Did you wire your new formatter in org.jabref.logic.layout.LayoutEntry#getLayoutFormatterByName?

I found the method by searching the callers of ShortMonthFormatter

No I didn't actually but now I know, thank you. it's just that the documentation for how to add a new formatter confused me a bit.

sadok-lajmi avatar Nov 24 '25 00:11 sadok-lajmi

Did you wire your new formatter in org.jabref.logic.layout.LayoutEntry#getLayoutFormatterByName?

I found the method by searching the callers of ShortMonthFormatter

No I didn't actually but now I know, thank you. it's just that the documentation for how to add a new formatter confused me a bit.

You can update it along the go

koppor avatar Nov 29 '25 10:11 koppor

Graded to a third issue, because following knowledge is expected:

  • Markdown links
  • That a file has to be accessible also on other PCs
  • "Self-contained export" (this will be learned while working on the issue)

koppor avatar Dec 22 '25 16:12 koppor