![]() |
#1 | |
null operator
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 19,407
Karma: 23268298
Join Date: Mar 2012
Location: Sydney Australia
Device: none
|
[Enhancement] calibre:// book-details option
Quote:
BR |
|
![]() |
![]() |
![]() |
#2 |
Frumious Bandersnatch
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 11,212
Karma: 5422155
Join Date: Jan 2010
Location: Notts, England
Device: Kobo Libra 2
|
Moderator Notice
Moved to its own thread |
![]() |
![]() |
Advert | |
|
![]() |
#3 |
Frumious Bandersnatch
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 11,212
Karma: 5422155
Join Date: Jan 2010
Location: Notts, England
Device: Kobo Libra 2
|
How would you use this? In particular:
I think that the link should be a search, not a book id. That would simplify maintenance. If you really want book ids then a search works: id:=nnnnn. As for setting up the links, clearly you could do it manually (if the feature exists). However, I can imagine using an identifiers-like column for books that would be used by a template to generate links. Example: series:"search query". Does any of this make sense? |
![]() |
![]() |
![]() |
#4 |
Frumious Bandersnatch
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 11,212
Karma: 5422155
Join Date: Jan 2010
Location: Notts, England
Device: Kobo Libra 2
|
What would you expect links to do in one of these cross-library windows? Open the other library? Nothing? Search for the item in the current library?
|
![]() |
![]() |
![]() |
#5 |
null operator
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 19,407
Karma: 23268298
Join Date: Mar 2012
Location: Sydney Australia
Device: none
|
My primary usage would be linking items in my Books library to items in my Authors library (each of which has 1 empty book as a place holder) via the Authors table Link field.
The Authors library contains several custom columns e.g. dates and places (google map links) of birth and death, significant others (parents, siblings, offspring, etc), obits, other works, wikiP links, publisher links, quotes, etc, etc. At the moment the Book->Author->Link field contains calibre:\\show-book\Authors\book-id links, which when clicked initiates a library switch with the placeholder book for the Author current. If it existed I would replace the show-book links in the Books library Authors Link fields with show-details links, which would eliminate the library switch - as I wrote elsewhere - an inter-library peek. I would maintain the linkages, like I do know: grab the links from BD panel context menu and paste them wherever. Because its at the Author level it's a 1:1 relationship with the Books library Authors table, so it's a do once operation. I probably have 5-6 thousand calibre links in my libraries - all of which were obtained from a BD context menu and pasted into Author Links fields or long text link editor dialogues. I would want to maintain that approach. I don't care what the links look like providing I don't have to type ASCII in Hex ![]() If Publishers had a Link Field I would probably have a Publishers library, ditto for a couple of custom columns in my Media and Periodicals libraries. I suspect quite a few users would welcome something similar for Series. A show-details link would also be useful way to link an item in a calibre library into another application - e.g. a personal journal. BR |
![]() |
![]() |
Advert | |
|
![]() |
#6 | |
null operator
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 19,407
Karma: 23268298
Join Date: Mar 2012
Location: Sydney Australia
Device: none
|
Quote:
when calibre://show-book/libraryA/32 is clicked: if libraryA isn't the current library then calibre switches to libraryA and makes book 32 the current book in the libraryA book list. if libraryA is the current library then calibre makes book 32 the current book in the libraryA book list. Now lets look at what I envisage show-details links will do when calibre://show-details/libraryA/32 is clicked an abridged Book Details window would pop for book 32 in libraryA - the current library list wouldn't change That's it - no library switching, no loss of current book. But that's the tricky part If I put a view-book link to a book in library FOO into a book in library BAR - when I click on it in library BAR, library FOO becomes the current library. I've 'tolerated' the limitation because I don't do much inter-library linking of content - my content links are predominantly intra-library links. But the whole point of show-details is to maintain library and book currency. So, if that could be finagled for show details it could hopefully be retrofitted to view-book ![]() BR Last edited by BetterRed; 03-23-2023 at 08:14 AM. |
|
![]() |
![]() |
![]() |
#7 | |||
Frumious Bandersnatch
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 11,212
Karma: 5422155
Join Date: Jan 2010
Location: Notts, England
Device: Kobo Libra 2
|
Quote:
Quote:
![]() I have a prototype working. NB: this screams for allowing multiple book details windows. Quote:
|
|||
![]() |
![]() |
![]() |
#8 |
Frumious Bandersnatch
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 11,212
Karma: 5422155
Join Date: Jan 2010
Location: Notts, England
Device: Kobo Libra 2
|
Prototype
I have a prototype with two new calibre: url endpoints:
Using either of these URLs will open a book details window getting the information from the named library, which doesn't need to be the current one. The current library isn't closed or changed, nor is the selection changed. In the first case, it gets the details for the book in the "other" library with the specified book id. In the second case it does a search on the other library and picks the first (one hopes the only) answer. A error is shown if either the book_id doesn't exist or the query matches no books. The second form is useful for fields other than authors that don't support native links. See below. Some examples: Here is a "books" library. It makes reference to another library. Note the library name. Here are the links in book details: Clicking on the Publisher: Baen link opens a book details window with data from the other library. Again, note the library name. Because only the authors field has native links I added a new formatter function to generate links to other libraries. This is the template that generated the links shown above: Code:
program: make_book_details_search_links( 'authors:Library.test_virtlib, publisher:Library.test_virtlib,', '<br>') While there I added the ability to have multiple book details windows. One window will move with book list changes. Other windows will keep their contents, regardless of source library. This image shows one example. And yes, I know that at least some of you will ask for native links for all columns. I am thinking about this, but it introduces a *lot* of work for what seems to me to be minimal gain. It would require database changes, calibre API changes, and a UI to manage them. The click behavior of items in book details would change, I think for the worse. This is why I built the new template function, so a person can get interlibrary links while keeping the current click semantics. |
![]() |
![]() |
![]() |
#9 |
null operator
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 19,407
Karma: 23268298
Join Date: Mar 2012
Location: Sydney Australia
Device: none
|
So, if I wanted to store metadata for Publishers in calibre, I would create a Publishers library, hide all or most of the standard columns, add relevant custom column definitions and then create a placeholder book for each Publisher into which I would enter the publisher details - e.g. HQ Address, Founder, Date Founded, Speciality, Countries, Imprints etc etc.
Now assume I have Bloomsbury in my Publishers library. What would I have to do to establish a link from Virginia Woolf's "To the Lighthouse" in my Books library to Bloomsbury in my Publishers library. And what/where would I click to pop the Bloomsbury details window when "To the Lighthouse" is current. BR Last edited by BetterRed; 03-23-2023 at 07:10 PM. |
![]() |
![]() |
![]() |
#10 | ||
Frumious Bandersnatch
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 11,212
Karma: 5422155
Join Date: Jan 2010
Location: Notts, England
Device: Kobo Libra 2
|
Quote:
Quote:
Using what I have built, you would create a composite column, not "behaves like tags", "contains HTML" is checked. Put this column with comments or not, as you wish. The template would be: Code:
program: make_book_details_search_links('publisher:Publisher', '') Publisher: Bloomsbury If you did the same thing with Series, made a Series library with the appropriate information, then you could add these links to the composite column with Code:
program: make_book_details_search_links('publisher:Publisher,series:Series', '<br>') Publisher: Bloomsbury Series: Rivers of London Finally, and for completeness, you could add the authors so the links are all in one place. Assuming the Authors library is named Authors: Code:
program: make_book_details_search_links( 'publisher:Publisher,series:Series,authors:Authors', '<br>') Publisher: Bloomsbury Series: Rivers of London Authors: Author1, Author2 ... Final note 1: the columns displayed in the cross library book details and their order are controlled by the configuration of the "other" library. In other words, the book information window displayed "cross library" looks like the book information window displayed when looking directly at that library. Final note 2: you do of course have the option of getting book links from the "other library", changing them from "show-book" to "book-details" then pasting them manually into comments. I don't think this is practical, but you can do it. Final note 3: you can format generated links however you want if you build the URLs yourself in a template. I am 100% certain this isn't something you would want to do, but others might. |
||
![]() |
![]() |
![]() |
#11 |
Frumious Bandersnatch
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 11,212
Karma: 5422155
Join Date: Jan 2010
Location: Notts, England
Device: Kobo Libra 2
|
It is also worth mentioning that I haven't run any of this by Kovid. It is possible that he wants it built differently, or not at all.
|
![]() |
![]() |
![]() |
#12 |
null operator
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 19,407
Karma: 23268298
Join Date: Mar 2012
Location: Sydney Australia
Device: none
|
I assume the Book Details for "To the Lighthouse' would show two Publisher fields with clickable Bloomsbury, one from the publisher/Publisher column, the other from the composite column (#genlinks) with the make_book_details_search_links function.
Might be an idea to give the latter a different colour. Could one have multiple composite columns with different parameters, which could be placed adjacent to the regular columns, e.g. Code:
#genpub/Details_P {program: make_book_details_search_links('publisher:Publisher', '<br>')} @genauth/Details_A {program: make_book_details_search_links('authors:Authors', '<br>')} Authors : Virginia Woolf BR
Details-A : Virginia Woolf . . . . . . Details_P : Bloomsbury |
![]() |
![]() |
![]() |
#13 |
null operator
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 19,407
Karma: 23268298
Join Date: Mar 2012
Location: Sydney Australia
Device: none
|
|
![]() |
![]() |
![]() |
#14 |
creator of calibre
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 42,535
Karma: 20170320
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
|
What is clicking on the links in the secondary windows going to do? And while this is a relatively low effort hack to make storing ancilliary information possible, I would much rather store it correctly in a table in the same library. Doing it this way has all the problems of maintaining data in multiple places. You rename/delete a publisher, you have to do it in two places, you have to update the links manually, etc. Not to mention this is completely undiscoverable for an average user.
|
![]() |
![]() |
![]() |
#15 |
null operator
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 19,407
Karma: 23268298
Join Date: Mar 2012
Location: Sydney Australia
Device: none
|
Whilst I hadn't expressed it, I had it in mind to suggest that the 'secondary detail' popup window would not have clickable content - i.e. they'd be dead-ends.
BR |
![]() |
![]() |
![]() |
Thread Tools | Search this Thread |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Calibre book details | detourx | Calibre | 8 | 07-08-2021 03:35 AM |
Calibre Book Details now blank. | polli | Library Management | 8 | 06-01-2016 08:31 AM |
Calibre:Book Cover size in Book Details side pane & Edit Metadata Individually window | Volfer | Calibre | 3 | 01-05-2016 01:56 PM |
Calibre 2.0...show book details | clady | Calibre | 3 | 08-24-2014 09:47 AM |
Enhancement (Delete formats from Book Details Panel) | JohnnyBook | Library Management | 5 | 07-21-2012 08:17 AM |