Thanks, I can’t think of a reason not to allow editing the ISBN too.

Sorry if this is not the best place for feedback, but here’s another thing that came up:

Because the data in .Site.Data.bookshelves has the shelf name as the key inside of the map, I can’t sort it (see this post-- sorting results in key elimination.

I’d like to be able to sort on shelf name, so would it be possible to have the data structure changed a bit so that the shelf name was accessible for each element in the map?

To give you a sense of what I’m working on, I basically want to create this page, ordered and with “formatted” names with Currently Reading on top and each year below. I’ve gotten pretty close with this template:

{{- range $shelf, $bookshelf :=  $.Site.Data.bookshelves  }}

{{ if ne $shelf "finishedreading" }}
  <h2 class="bookshelf-name">{{ $shelf }}</h2>
  <div class="bookshelf">
    {{- range $bookshelf }}
  <a href="{{ $.Site.Params.bookshop_affiliate_id }}/{{ .isbn }}">
      src="{{ .cover_url }}"
      alt="{{ .title }} by {{ .author }}"
    <figcaption> {{ .title }} by {{ .author }}</figcaption>
{{ end }}
{{ end }}
{{ end }}

and I’m just thinking through how I’m going to format the shelf names and get the order to my liking.

Realizing that one way to handle this could be that instead of changing the data structure, if the option to order bookshelves existed in the interface and that was the order of the data, then I’d have control that way. This would have the advantage of not impacting anyone else who currently relies on this data structure.

Thanks, yeah, the current structure isn’t really well-suited for iterating over the bookshelves. I had imagined that most people would already know what shelves they had. But of course, then it’s harder to build general-purpose plug-ins and whatnot.

I’ll look into ordering.

I may or may not have broken this one. Gonna come back around to it after I finish refactoring some of the others (being able to choose a specific branch or w/e when cloning into Hugo would be a huge help with not breaking things others are using).

When I’m done I’ll have a sh$t ton of plugins and they will all be well documented

I have this covered with my use of data config files … I just haven’t touched the bookshelf plugin practically since I created it. Once I’m done refactoring I will have a consistent paradigm across all my plugins for advanced customization via self-documented TOML templates. plugin cards is the current model with its modular (TwitterOG, StructuredData, and Cardify) components reflected by the structure of the files in data directory. Parameter values are merged hierarchically (theme data file | plugin data file | hardcoded value) and used to dynamically generate any stylesheets or scripts according to parameter values.

The only thing not awesome about that plugin is the README, which I have yet to update.

The major discrepancy is that generating preview cards to appear within blog posts now uses a shortcode exclusively and external pages are now supported. Thanks to @sod, I’m scraping pages statically. The shortcode takes an optional parameter specifying whether the cardified link is intended to cross post. If so, the statically generated preview card is hidden via comment within an ordinary link (so other platforms generate cards) and Javascript unearths the generated fragment and replaces the link.

this is when my hacky approach of deleting the plugin to get an archived page comes in handy! L. Warner (aka Cerulean) Writes - Bookshelf still works!

theme error for Simple which I’m trying out:

plugin on latest update

I know you can associate a bookshelf with only one page and thus cannot have multiple bookshelves show up on a single page. I created two other pages and hid them from the menu but linked to them from the “Currently Reading” page.

However, I want those links to show up after the Currently Reading book list. Any idea how to do that?

I’ve tried twice now and I can’t get my Goodreads info to import to I have 1,654 books tracked on Goodreads and less than 200 show up on Any tips/tricks?

Is it possible that most of the books were Kindle or Audible versions? Goodreads does not always include the ISBN for those, and unfortunately has to skip them. This is a bigger problem than I realized at first so I’m looking into solutions, such as finding the closest match by title and author when there is no ISBN.

No, very few would be Kindle versions, and I don’t use Audible. Most of them are physical books.

Would you mind posting your file? I have run into issues as well, and virtually all of them were due to Goodreads having incomplete ISBN and similar data. It’s actually one of my core reasons I’ve moved to as many platforms as possible with this data-- Goodreads is completely unreliable as a portable source of book data, throwing in ASIN numbers instead of ISBN numbers, having weird editions issues etc.

I just downloaded my Goodreads file again and looks like about 40% of the books are missing ISBNs. Mostly Kindle books, but a few print books too. I’m going to try to work around this since there’s very little chance Goodreads will change it.

I’ve improved the Goodreads import to attempt to find other editions of a book if there is no ISBN provided in the CSV file you upload to It does this by crawling Goodreads metadata because Goodreads no longer offers an API. I’m afraid this solution is a little fragile, but it’s likely to keep working on the short term. In my initial testing, it works really well.


I’m new around here and love the bookshelves feature. Wondering if there were any plans to offer a similar function for other forms of media? I would love to track movies, TV shows, video games in the same way as this.


I think tracking movies, TV shows, and games is a natural next step, but we want to do everything we can for books first. Because each form of media has its data, I want to think about each one individually rather than as a big feature that does everything.


Hi @help ! Hope you are :ok_hand:t4:.
I want to add an audible book to my bookshelf. Does this feature already exist?

Gracias… ¡Totales! :guitar::guitar::musical_note::musical_note:

Gustavo Cerati :argentina:



I think audiobooks show up if you search for a book coz they do have a separate ISBN. The book cover shows up as a square image; at least on Libby, it does.

Yep, I often add audio books to my bookshelves. I can be confusing to try to figure out which books are audio or other various print editions, so I usually don’t worry about it. Perhaps in the future we can have a better “type” of book to make this more correct for people who want it.