BibTeX Plugin

OK, this looks good. I might include it at the end.

Just as a tips, You should also try to support:

  • Better CSL JSON
  • BetterBibTeX JSON

While I mostly agree, I want to point out that a large portion of my (and probably also others) notes actually is about literature. I hate saving notes in jabref/zotero and I love Joplin for that. But I also hate keeping redundant structures.

So being able to reference notes is a great and important feature to have, it only covers half of the/my equation.

Can you comment on how difficult it would it be to implement something that also manages references as metadata? Could this be added as an add-on later?

The library I'm gonna use already supports CSL JSON but I don't know about the other formats. Maybe this can be a stretch goal.

1 Like

I'm not an expert, but I think it is relatively challenging and time-consuming because, obviously, we are trying to replicate the job of an entire application.

I am not sure about the differences, I just know that it is recommended to use them when using the Better BibTeX plugin for Zotero, I think it's only finetuning of the CSL JSON format.
Here is some linke regarding Better CSL and Better BibTeX for Zotero.

Maybe it can be of help and interest for your project.

It is great that you are making this plugin for Joplin.

Better BibTeX for Zotero :: Better BibTeX for Zotero (
this explain some of it:
Bundled translators :: Better BibTeX for Zotero (
retorquere/zotero-better-bibtex: Make Zotero effective for us LaTeX holdouts (


I tend to agree. As the amount of work that can go in this plugin is limited, I think that leaving the referencing to a software such as Zotero would be best.

I still understand @franzperdido 's view, as I'm not a fan of the Zotero note system either, but I still like to make notes on what I read. But I'd hate to have to re-invent the wheel when Zotero is open-source, manages all kind of meta-data or documents, have plugins, integrates with word processors, and have amazing plugins like better bibtex or the navigator integration. It seems pretty obvious that it will be impossible to replicate all of these features, making Joplin half-complete in comparison whatever is done from my point of view.

Maybe a compromise can be found, though ! If the BibTeX plugin is capable of reading a CSL JSON or a .bib file to take it into account as a database of references, maybe it would be possible to make an option like "Create a note for every reference in the database" ?

For example, if I have 3 references in my database, choosing this option would make it so that the BibTeX plugin would create 3 new joplin notes in the notebook of my choice. Each note would be titled with the tittle of the paper and the authors names (or something else, like the citekey), and the keywords associated to the references in the database could even be passed on to the notes. Since the plugin will certainly have to watch for changes in the CLS JSON or .bib file, maybe those changes could automatically result in new notes being created for references that are added to it.

It's just a suggestion, though; and I think that @xUser5000 already has a lot of work on their shoulder : ). It will still be absolutely amazing to have a tool that allows for reading a database of references, cite then in text flexibly, and parse it properly. Thank you for your work !


A great suggestion. I think this can be developed as a separate plugin. What do you think?
Also, what if the number of references is big, say 50? Do I have to open 50 notes for every reference? Why not just open a single note for the entire file? And also you have to solve the problem of the markdown because, clearly, BibTeX != Markdown.

Mmmh...I'm not sure about that.

Basically, such a plugin will have to be able to 1. Read a CLS JSON/.bib file, 2. Extract some info from it to put them into notes, and 3. Watch for changes in this file. Since those 3 functions are going to be in the BibTeX plugin no matter what, I deem it a bit redundant to implement them in another plugin. It could, however, become an update to the plugin in the future ?

In my idea, the plugin would create one note per reference, hence 50 notes for 50 references. The notes can be left empty, of course. However, I think that 1 reference = 1 note would be crucial to search and retrieve them faster, especially thanks to the keywords associated to them in the CLS JSON/.bib database that could be transformed into Joplin tags.

1 Like

Ok, that looks good.

I also think replacing zotero is probably a bit an overkill for this plugin and might be better with perfect workflow integrations, like plugins for both. Maybe a future version or a different plugin could directly read from zoteros sqlite database or via its api. For me the newest beta version already improved pdf annotations. Need to see if/how I will include those annotations.

I don‘t know if importing a full BibTex file is something I‘d want to do, as I am not taking notes on every reference I have. Though, I hope this Plugin will help me to improve this.

Maybe a comparison of unique citekeys would be a solution to handle that, as already mentioned by @Klemet . It could simply add the new entries to a literature notebook with the citekey as note title.
Maybe also something like a specific batch import function could handle this task? I think a possibility to set up a note template would be very useful for these use cases. The obsidian citation plugin I mentioned previously handles this task nicely.
I think there are multiple solutions to handle these diverse use-cases, as there‘s a plethora of different workflows and preferences. A possibility to switch certain workflows on and off could be a solution to handle all these needs. Maybe an important point here on your coding would be to make it as easy as possible for others to contribute additional functionality to your plugin in the future.

Looking forward to hear your thoughts about this.


Yes, I'm not gonna replicate Zotero because that's an overkill as you stated. The purpose of the second question in the survey is to know what reference management tool is mostly used to try to be as compatible with it as possible.

Regarding that, there are no worries. At the end of the GSoC program, you will see a fully functional, well-documented, and well-tested plugin that can be extended as needed with ease.

1 Like

same thoughts here. I wondering what is the minimum requirement and at what stage, we have to say, please use Zotero.
That would be required that you can switch seamlessly between the apps. This could be the better approach. Any app should to what it can do best but ensures that seamless switching between apps is possible.

1 Like

I would love to have a close integration with Zotero, but perhaps that is out of scope for a BibTeX plugin. But I will write down my thoughts about it anyway :smiley:

If you look at the Roam Zotero-plugin, this offers a really great integration between Roam (another note-taking app) an Zotero. It uses the Zotero API and of course that enables many features that are not possible just with BibTeX.
But I love @dimi-huer suggestions to have a closer integration with a reference manager, similar to the Obsidian plugin that is based on BibTeX as well. (I think for many Joplin users that is Zotero as it is the most popular Open Source reference manager. I would love to get the results of your questionnaire @xUser5000). I think two basic features are essential for that:

  1. Usage of Zotero URIs for references in Joplin, no DOIs or similar.
  2. Create a note a an individual reference. But this shouldnt be an automatic process for every paper/book etc. in my BibTeX file, because that can be far to many. These notes should be created via a menu, directly linked to one Reference and have a specific template which includes the metadata and space for notes.

The second feature could be done manually by the user as well, especially with the coming templates plugin, but transferring all the metadata would take a lot of time. Another advantage is, that you can not accidentally create two notes for the same reference. For my workflow it is also beneficial that a Joplin notes "represents" one reference because I am using backlinks and a knowledge graph, which is much easier to realize with links between Joplin notes.


Could you please look at the Devlog and give me your suggestions?

there is a markdown plugin for Zotero that you can use to export all your Notes (including your annotation Notes) in Zotero to Markdown, it can also export your Items if you like, and it is template based, so you can format the MD files as you like.

Hi @xUser5000

I wanted to thank you again for this very useful plugin. I use it often! Do you think it would be possible to integrate more finesse in the creation of links in Joplin. Currently, if I insert a reference in Joplin, it includes a link to the URL of the reference. I would prefer to link to the reference in Zotero in the format zotero://select/library/items/DQDQF2TZ

Of course, my idea is not that this should be the default behavior but that you can choose this option in the settings. Many people here use Zotero (and Zutilo) I think to manage their bibliography.

But I don't know if you still have time to work on this project... :thinking:


I just wanted to thank @xUser5000 for this great plugin and to share my method to use it with Zotero. I am only interested in the feature of creating reference lists for now.

I use the Zotero plugin Better Bibtex. I have seen it mentioned in another post but I don't think that it was exactly for the same goal. Sorry if it is redundant.

I have exported my Zotero library in the better bibtex format (not bibtex) and made sure to check the "keep updated" box. I then copied the link to this export in the BibTex plugin of Joplin and that's it. The library is kept up to date. There are some bugs (e.g. the year is correctly reported in the citation and reference list but not in the search box) but nothing major so far.
Hopes this helps.


I do the same (I use Better BibLaTeX not Better BibTeX for export though) and I also noticed the bug where the year was wrong in the search box.

1 Like

I actually just noticed that using a csl file generated on the Zotero file repository breaks the feature making a reference list. Has anyone found another resource to generate a csl that can be used with the BibTex Plugin?