Request for Input: BibTeX to Tiddler conversion method

287 views
Skip to first unread message

Tierney Coren

unread,
Sep 7, 2015, 7:11:16 PM9/7/15
to TiddlyWiki
Hello!

I've taken on some work using tiddlywiki. One of the components of it is to convert BibTeX documents into tiddlers.

I'm thinking I can do this via a npm module, but I'd like to know if there's a more simple way to do the conversion in TW5, without relying on an external source (Node). I'm not afraid of using Node in any capacity, so if there are modules I could build upon, I'd love to hear about them.

In regards to the actual conversion, would converting it to JSON be enough to import the BibTeX as tiddlers with tags, names, and content?

Thanks,
Tierney C.

Tierney Coren

unread,
Sep 7, 2015, 7:13:09 PM9/7/15
to TiddlyWiki
This looks like it might be good, if converting to JSON is the right way to handle it: https://www.npmjs.com/package/bib2json

Evolena

unread,
Sep 8, 2015, 2:40:46 AM9/8/15
to TiddlyWiki
You can easily import tiddlers stored in json files in Tiddlywiki. Try to export (Advanced Search, "Filters" tab) a selection of tiddlers in JSON, to look at how it is structured.

BJ

unread,
Sep 8, 2015, 4:58:40 AM9/8/15
to tiddl...@googlegroups.com
Hi Tierney,

I have written a bibtex plugin, but have not got round to publishing it yet. It converts bibtext to json, within the tiddlywiki - then converts to a tiddler. I was going to put in an option to convert to application/json tiddler as well.
It would also be possible to leave the original bibtex format as it is within the body of a tiddler and just use the bibtex title as the tiddler title of the tiddler - it would depend upon the application - search is generally better support on tiddler fields.

For a large number of files:
Importing a bibtex entity into a  tiddlywiki would involve creating a tiddler with the title of the bibtex title and the bibtex entity into the body of the tiddlywiki.  At this point either convert to files of *.tid format or use the tiddlywiki.files (a tiddlywiki configuration file) to instruct tiddlywiki how to do it automatically, but each file must have it own entry (no wild cards). I have some shell scripts that automatically create the tiddlywiki.files for a number of source files, which enables large numbers of files to be automatically inserted into a tiddlywiki.

I'll publish the plugin today.

cheer

BJ

Felix Küppers

unread,
Sep 8, 2015, 7:34:31 AM9/8/15
to tiddl...@googlegroups.com
Hi Tierney,

I use Zotero to export literature as a biblatex/bibtex library with many items in a .bib file. What would be nice is to have to drop a .bib file into tiddlywiki and after clicking import, a startup module that runs in the background reacts and parses the bibtex and saves the output as tiddlers using the bibtext keys as tiddler titles and the fields as tiddler fields. They text in the bibtex keyword field could be stored as tags in tiddlywiki. Bibtext is very easy to parse so you could write your own parser and put it as a library module into your plugin...

Not sure if you want to achieve this, but that would be my usecase :) and would make a great addition to use tiddlywiki for literature and zotero.

-Felix
--
You received this message because you are subscribed to the Google Groups "TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+...@googlegroups.com.
To post to this group, send email to tiddl...@googlegroups.com.
Visit this group at http://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/364088d7-c6ef-4a42-a969-a31e8b0c8ef0%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

BJ

unread,
Sep 8, 2015, 8:46:13 AM9/8/15
to TiddlyWiki
Hi Tierney,
I have used this parser:
https://github.com/mikolalysenko/bibtex-parser. (mit license)

Which I have used to make a simple action widget to convert a single bibtex entry, the code (what little there is!) is here:
https://github.com/buggyj/tw5-plugins/blob/master/bibtek/BibTex.js
I don't plan on adding to this in the near future.

I think Felix's idea of importing is good, but i would suggest you to write an upgrader module - these are run when stuff is imported.
all the best

BJ

Jeremy Ruston

unread,
Sep 8, 2015, 12:58:31 PM9/8/15
to TiddlyWiki
On Tue, Sep 8, 2015 at 1:46 PM, BJ <bugg...@gmail.com> wrote:
I think Felix's idea of importing is good, but i would suggest you to write an upgrader module - these are run when stuff is imported.

Better still would be to add a deserialiser. Deserialisers are invoked to extract tiddlers from files identified by their extension and/or MIME type. Here are the built-in deserialisers:


Best wishes

Jeremy.

 
all the best

BJ

On Tuesday, September 8, 2015 at 12:13:09 AM UTC+1, Tierney Coren wrote:
This looks like it might be good, if converting to JSON is the right way to handle it: https://www.npmjs.com/package/bib2json

On Monday, September 7, 2015 at 7:11:16 PM UTC-4, Tierney Coren wrote:
Hello!

I've taken on some work using tiddlywiki. One of the components of it is to convert BibTeX documents into tiddlers.

I'm thinking I can do this via a npm module, but I'd like to know if there's a more simple way to do the conversion in TW5, without relying on an external source (Node). I'm not afraid of using Node in any capacity, so if there are modules I could build upon, I'd love to hear about them.

In regards to the actual conversion, would converting it to JSON be enough to import the BibTeX as tiddlers with tags, names, and content?

Thanks,
Tierney C.

--
You received this message because you are subscribed to the Google Groups "TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+...@googlegroups.com.
To post to this group, send email to tiddl...@googlegroups.com.
Visit this group at http://groups.google.com/group/tiddlywiki.

For more options, visit https://groups.google.com/d/optout.



--
Jeremy Ruston
mailto:jeremy...@gmail.com

BJ

unread,
Sep 8, 2015, 1:44:18 PM9/8/15
to TiddlyWiki
There is also this related type bibjson
http://okfnlabs.org/bibjson/


On Tuesday, September 8, 2015 at 12:13:09 AM UTC+1, Tierney Coren wrote:

Tierney Coren

unread,
Sep 8, 2015, 7:13:15 PM9/8/15
to tiddl...@googlegroups.com
How hard is it to create one? They don't look too complicated - is there any documentation on writing a deserialiser?

--
You received this message because you are subscribed to a topic in the Google Groups "TiddlyWiki" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/tiddlywiki/kIbDTiXZqJk/unsubscribe.
To unsubscribe from this group and all its topics, send an email to tiddlywiki+...@googlegroups.com.

To post to this group, send email to tiddl...@googlegroups.com.
Visit this group at http://groups.google.com/group/tiddlywiki.

BJ

unread,
Sep 9, 2015, 3:23:04 AM9/9/15
to TiddlyWiki
I don't think that there is anyway to add a deserialiser as a plugin - they are part of the boot, so you would need to convince Jeremy to accept a pull request
Also you would need to define the mime-type.

Alex Hough

unread,
Sep 9, 2015, 3:57:16 AM9/9/15
to TiddlyWiki
Dear All

My 2€ : I think it would be a good strategic development...

Alex

Jeremy Ruston

unread,
Sep 9, 2015, 4:00:52 AM9/9/15
to TiddlyWiki
Hi BJ

On Wed, Sep 9, 2015 at 8:23 AM, BJ <bugg...@gmail.com> wrote:
I don't think that there is anyway to add a deserialiser as a plugin - they are part of the boot, so you would need to convince Jeremy to accept a pull request

The current limitation is just that any deserialisers in plugins will not be available during the loading of the main wiki folder under Node.js. It's possible to have a deserialiser in a plugin that is available for interactive imports.
 
Also you would need to define the mime-type.

That's correct, thanks for picking it up,

Best wishes

Jeremy.

 

For more options, visit https://groups.google.com/d/optout.

Tierney Coren

unread,
Sep 10, 2015, 9:45:35 AM9/10/15
to TiddlyWiki, jeremy...@gmail.com
Jeremy,

So we've been able to drag and drop a bibfile into TW5, and it imports the text contents into a tiddler via the import tool. Is there documentation or a way I can hook into that and parse it to insert the contents into a new tiddler? We're looking for the simplest possible way to do this.

BJ,

Is this what your interpreter does?

Thanks,
Tierney C.

Jeremy Ruston

unread,
Sep 10, 2015, 9:59:06 AM9/10/15
to Tierney Coren, TiddlyWiki
Hi Tierney

So we've been able to drag and drop a bibfile into TW5, and it imports the text contents into a tiddler via the import tool. Is there documentation or a way I can hook into that and parse it to insert the contents into a new tiddler? We're looking for the simplest possible way to do this.

That's exactly what you can accomplish by creating a new deserialiser module; see the references above for examples of existing ones. As BJ noted, you'll also need to register the MIME type and file extension.

Best wishes

Jeremy.

BJ

unread,
Sep 10, 2015, 11:48:25 AM9/10/15
to TiddlyWiki, jeremy...@gmail.com
Hi Tierney,
when you drop a file onto the tiddlywiki it is handled here:
DropZoneWidget.prototype.handleDropEvent

In this function there is a call to
this.wiki.readFiles

That function looks at the file extension of the file that was drop and calls the deserialiser for that type of file. So in your deserialiser you would call the bibtex parser to do the conversion.

Once the deserialiser has run, the resultant tiddlers are imported.

so you only need to write the deserialiser and register the file extension.


In my widget the text of the bibtex would need to be entered into the widget (I would add a text input to make it easer)


<$button>
<$action-bibtex source="""@article{yesilada201526, title={112226 th ACM International Conference on Hypertext and Social Media}, author={Yesilada, Yeliz and Celik, Ilknur and Farzan, Rosta and Houben, Geert-Jan}, journal={ACM SIGWEB Newsletter}, number={Winter}, pages={1}, year={2015}, publisher={ACM} }"""/>
convert me!
</$button>



cheers

BJ
Reply all
Reply to author
Forward
0 new messages