Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive

A First Idea

For quite a while, I use the Calibre program to catalog my ebooks. Here I had the idea that it would be nice to be able to see the content of e-books in advance, in the details view. For this purpose, I did not want to abuse the field "Comments", but to use my own user-defined field. This field I gave the name "#content" (label to be: Content), which is displayed only in the details view, and there before the comments.

It quickly became apparent that the use of many e-books would require a lot of work. The question was: could one somehow automate the effort? To do this you would need to tap into a source for the content and generate the content.

An Intermediate Step: Generate a Contents Directory with Ruby

The source for the content was the bookmarks for the e-books. Since I was experimenting with the programming language Ruby at the same time, I came up with the idea of writing a Ruby script that would extract the bookmarks from an e-book and write them in a suitable format in a file. This was also possible for the two formats "EPUB" and "PDF". For the PDF format, however, additional software had to be used: the PDFtk server, a command line tool and free software.

The next step was then to hone the script and implement a couple of command line switches.

The "Fully Automated" Solution

Also this solution did not satisfy me completely. You had to

  • provide command line parameters, e.g. the path of the e-book
  • make the call
  • open the generated content in an editor
  • copy and paste the content into Calibre

Conclusion: So still a lot of manual operations

Therefore, the next idea was just consistent: You would have to have a plugin that generates the content - field by pressing a button. The result is a user interface plugin that automatically executes all steps via the UI command. In addition, this plugin is also configurable, so that the command line switches could also be varied.

And that is the result: the plugin "Define Content", which is also configurable in the call parameters.

© Jürgen 2019
Cookies make it easier for us to provide you with our services. With the usage of our services you permit us to use cookies.