Comixology Theme V2 finally released!

Scott (ScooterPSU) 3 weeks ago • updated 17 hours ago 153

It's been a long time coming, but I've finally got the new version of my theme in a form I feel comfortable to release.

It's a massive overhaul from the last version, with a lot of style/feature upgrades. The top-page navigation is all added via jQuery, so it persists across pages. The below text (Comics > Publishers, etc), if not on a folder-info.htm page, is generated on-the-fly.

is the page with the new theme, an updated PageBuilder if you're using it from the previous theme, and some example series and story arc pages (the story arc example supports George Baker's json.cbr files).

Here is an album of how it currently looks.

I'm linking rather than embedding since I won't be able to edit this post later. I'll keep the Github page updated with new features and the album with new images. My goal is to also use the Github wiki to demonstrate how to configure all the extra features.

All theme settings are saved in the themeScript.js, though it should work fine without changing anything. Enjoy!

Just a question out of pure curiosity, would it be possible to have a "dark" version of the thème (or pointers to what to change to get one).

Honestly i have a hard time standing "light" themes, been using Dark/Black Themes for pretty much everything i can for over 10 years, and i would LOVE to be able to get your great work in Black (no it's not a racial thing :D).

Great work btw


The theme doesn't seem working on synology (DS918+), i get the spinning weel and nothing more.

I've tested it too, and got the same result.

It's the wheel spinning and it never loads completely. Seems to be missing/lacking something.

(on both Windows 10 and Ubuntu 18.something)

If you're just getting a spinning wheel, please open your web browser's Dev tools (In Chrome it's Ctrl+Shift+I) and click Console.

Copy-paste the error here and I'll see what I can do.

this is my error:

themeScript.js:1155 [Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/.

getJSON @ themeScript.js:1155

(anonymous) @ themeScript.js:29

themeScript.js:1156 GET 500 (Internal server error: For input string: "2/undefined/public-api")

getJSON @ themeScript.js:1156

(anonymous) @ themeScript.js:29

VM90:1 Uncaught SyntaxError: Unexpected token < in JSON at position 0

at JSON.parse ()

at getJSON (themeScript.js:1159)

at themeScript.js:29

getJSON @ themeScript.js:1159

(anonymous) @ themeScript.js:29

Alright, I know what that is and I think this should fix it.

Download this themeScript.js and replace the one in the folder and try again. If this works I'll replace the zip in the release page.

it works for comics folders. However I have this exception on the root ( in my case)

Uncaught TypeError: Cannot read property 'indexOf' of undefined
at HTMLDivElement. (themeScript.js:857)
at Function.each (jquery-3.3.1.min.js:2)
at w.fn.init.each (jquery-3.3.1.min.js:2)
at homepageWrap (themeScript.js:839)
at themeScript.js:124
at HTMLScriptElement.script.onload (themeScript.js:1156)

Looks like it's hitting an issue trying to handle bookmarks. Under the error, paste the below and send what it responds.


themeScript.js:857 Uncaught TypeError: Cannot read property 'indexOf' of undefined

at HTMLDivElement. (themeScript.js:857)

at Function.each (jquery-3.3.1.min.js:2)

at w.fn.init.each (jquery-3.3.1.min.js:2)

at homepageWrap (themeScript.js:839)

at themeScript.js:124

at HTMLScriptElement.script.onload (themeScript.js:1156)



BTW thank you for yuor effort ;-)

No problem, I like the learning aspect of this sort of thing. 

Grab the themeScript from the link I gave before, it should now have a catch for undefined Bookmarks that'll hopefully solve this.

a couple of ) are missing (row 119 and 1052).

I've added in my file but I got another error:

themeScript.js:858 Uncaught TypeError: Cannot read property 'indexOf' of undefined
at HTMLDivElement. (themeScript.js:858)
at Function.each (jquery-3.3.1.min.js:2)
at w.fn.init.each (jquery-3.3.1.min.js:2)
at homepageWrap (themeScript.js:840)
at themeScript.js:125
at HTMLScriptElement.script.onload (themeScript.js:1156)

comics pages are still working 

Yeah I realized that as soon as I posted, but of course GitHub doesn't update the raw file right away.

Since it might not fix it, let's try this:


if($('#bookmarks .cellcontainer').length){

sorry man. Same error 

If you just put // in front of homepageWrap('bookmarks') to comment it out, does it load?

Now It works!!!!

Putting the // I was able to load the homepage and I've discovered I had some broken bookmarks. cleaning the bookmark and uncommenting it all works.

Thank you very much. I really like this theme!

You're quite welcome, glad it's working for ya!

It's working for me too with both changes to the modified themeScript.js (ie : replacing the two strings and commenting one part out).

Now i need to understand how the arc module works and how to make use of it, could be nice/fun. xD

Any way to use what you've done to exploit the "series" metadata for books to be able to display, let say  the whole "Hercule Poirot Collection", instead of a Comic "Arc" ?

While I'm glad that sorted it, that really shouldn't have been necessary. The malformed bookmark issue shouldn't be a common one, and just replacing your themeScript would've gotten you the fix you probably needed. I'm just trying to make sure that everyone moving forward isn't applying all of my above hacks when they don't need to (or continuing to dig to find the issue if it's more prevalent)

And I'm not 100% what you mean, though it sounds possible.

The "funny" thing is that... i don't have any bookmark at all (my Ubooquity Install is quite recent and i haven't delved into it much for now, still in the process of tagging/renaming/sorting out my books and it's quite time consuming, specially when most of them aren't in english :/).

But i needed the 2 "hacks" for it to work.

Just doing the "replace the 2 stings" thing didn't allow the theme to work.

What i mean is to have the whole "Comic Arc" feature for other books, using the "Series" metadata to get the same result ?

(i'm not totally sure how the Comic Arc feature works, didn't had time to delve into it yet :p)

So instead of having a Comic Arc folder we would get a Book Series folder (or whatever Series,  since i guess it would work roughly the same for Manga/Bande Dessinées and so on), and in it the Series and all the books part of them .

Something like Books>Seires>Hercule Poirot> book01, book02, ..., book99 and so on  ?

Basically having this page , but for books, and with Book Series instead of the Comic Arcs ? 

(and populated from the Series metadata field if possible, doing it by hand would be a nightmare with how many books/series i've got xD).

Would be great if it could be possible. ;)

edit : ho and thanks for the quick answers to try to solve our problems. ;)

edit2 : Another small thing : right now, there is no message/confirmation when you add a book/comic to bookmarks, and nowhere you have something like a "counter" displaying the number of current Comics/Books/Raw Files Bookmarks either that could allow to check that.

On top of it, you can have multiple times the same bookmark.

Would be a nice QoL addition if there could be a check to not create duplicate bookmarks (and a message to tell the user that the bookmark(s) already exist),and that the bookmark was created/failed to be created no ?

edit3 : and something even more weird and anything but urgent/important, any idea if it's possible to theme the Ubooquity Configuration/Admin page(s) ?

I must admit i think i would love your take on the subject seeing what you've done with the User Theme. :D

edit4 : and for me at least it seems the "Read" button on the books/bookmarks, be it for comics, books, doesn't work.

I have to open up the book/comic details page, and click on the "Read" button in there for the book reader to open. ;)

Not really breaking, just a minor hassle if you can find the problem. ;)

Gotcha, I'll keep digging if this is something new users are experiencing. It really should've only been the latter fix needed, and even then temporarily. But I'll figure something more permanent.

The Story Arcs page is really just a fancy image on whatever page you designate, with actual story arcs being populated by Mylar. Unless something like Calibre can do the organizing into things like that, you'd need to do it manually. There's nothing theme-wise that would make that not work.

A bookmark popup is actually something I had while I was working on it, I just disabled it for personal preference. I'll add a setting to turn that back on. Checking for a duplicate shouldn't be too difficult either, I'll see what I can do.

And sadly there's no method to get theme/script access to the admin page that I can see. I had an experimental method for a user registration page that stopped working when Admin became it's own thing. That'd have to be a feature added by the dev.
And I've got an idea about the issue with the read (and I'm guessing download) button, I'll push out an update soon.

Ah i must admit i didn't try the download button.. let me 2 mins and i'll tell you.

edit : yup you were right, the "Download" button display the same behaviour. :)

Too bad about the admin page (even if it's understable not allowing themes in there, it could create a mess security-wise, but i would love it :p).

I'm pretty sure the "series" metadata for books in calibre works roughly the same than the "Arcs"/"Series" ones in ComicVine tags, but i should try to get more into it and explain a bit better. :)

With epub v3 there is a "Series" field in the metadata, (for v2 i think it's a "custom" field for calibre, so not always supported elsewhere) whose goal is to allow grouping books by series. ;)

edit : ho and is there a way to customize/replace the image(s) used at the "root" of the types ?

(ie : when i'm on the "Comics" page, it displays the various root folders i shared, Comics, Manga and Bande-Dessinées, and it's all the same default image, is there a way to have a unique image per folder, and to set it manually - or have it grab a "folder.jpg/png/whatever" file sitting in that folders on the storage device)

Or is it too complex to do ?

update : i removed the "//" in front of "homepageWrap('bookmarks');" and now it works properly for me too.

It's after adding Bookmarks, my previous tests didn't work, but i might have made a mistake somewhere along the way, can't be sure.

Using the json.cbr method from another thread, maybe making it a json.epub, it'd probably be pretty straight forward. The bookmarks page actually has the ability to export a json.cbr, so tweaking it in that way is something I'll check out.

The root images are currently hardcoded, since the default in Ubooquity just provides a link, that I'm building into an element like every other page. I could add something to look in a folder in the theme (like I do for Publishers) with the appropriate name, but I don't think there's a way to get a folder.jpg from the root. That might have to be a feature added to Ubooquity itself.

Could you paste the error it's giving when you click Read/Download? I tried what I thought might be the issue and it worked for me. 

Update: the forum was timing out for a bit, so in the time it took for this to post it's not all true anymore. I actually just pushed an updated themeScript.js that adds a setting for bookmark notifications, and enables cover (and folder.jpg) support for root links. Replace with this and edit the "bookmarkConfirm" at the top to true for bookmark alerts.

Just tested your modified file, it woks, with the popup when adding bookmarks, thanx. ;)

That's the error i get when clicking the "Read" button :

content_script.js:10 Uncaught Error: Unrecognized event name: undefined

at receivePageEvent (content_script.js:10)

at content_script.js:4

postMessage (async)
XMLHttpRequest.send (async)

edit : and the "custom" image for the root of the shared folders works too (it default, like everything else in Ubooquity, for the first found image in the first subfolder if there is nothing else. Didn't had time to try for a custom folder.jpg yet, will let you know).

How you disable/enable that btw ?

This might be a tough one, I can't replicate it and I'm not 100% what might be causing it.

For custom images, since I was building an element similar to other pages, I tried the same image path it was using elsewhere (link to folder + "?cover=true") and surprisingly it worked.

Another thing that isn't linked to anything else :

On your "Mobile" page in the theme, you're stating that Ubooquity support opds and you give the link to use... but only for "comics", you aren't giving the books one too.

On top of that it would maybe help some people to state there that it only works on your local network with default settings and installation, and that they need to research port forwarding, reverse proxy and the other needed topics to make it available from outside their home network ?

(it's mostly just adding text and links if possible).

So the only listing comics was totally an oversight on my end, I'm 1) basing this on a comics website and 2) only sharing comics with my friends. I'll make it so if the books module is enabled, it lists books, etc.

As for the explanation for port forwarding, etc, I'm sorta leaning towards no. The URL provided on the mobile page is relative, so if you're opening it locally it shows a local IP. That's obviously not helpful if you're trying to read from the internet. But if you're looking at it locally, it means it's your setup. Now if you're already accessing Ubooquity remotely (ie. my friends), the mobile page is helpful in providing a different method to access the server they can already access.

I've been part of projects where I'm providing support for something I didn't create, it gets extremely tedious and time consuming. This instead should probably be a case of asking for better documentation from the Ubooquity dev.

For the "link" part i was more thinking pointing to a page/faq somewhere stating that if you want to access your ubooquity opds catalogs from outside your private networks, you need to set it up properly with public IP/Port forwarding and so on (generic info).

Not making the link clickable. ;)

But yes it would be nice if there could be an entry (even simple) in the Ubooquity FAQ for that.

Once you know the "principles" finding better and more comprehensive info on your own should be simple. ;)


I just posted a new release that should fix the read/download buttons. It also has the initial support for a Series page, which works like Story Arcs for books. Since there's more than just updates to the js, I'd recommend replacing the whole comixology2 folder with the newest zip from here.

Next I plan on adding some metadata control boxes to the MyBooks page, so you can export a fully filled in json file for story arcs/series pages.

Ohh nice. I'll try that and let you know. 

Thanx for the work. ;)

edit : out of curiosity, if i wanted to try to make a "Dark" version of your theme, where should i start looking (i'm completly new to that, so i've got no idea where to even look :D) ?

edit2: "Read" button is working from the first screen without having to go in the book's details now for me. Great job. :)

(Now i guess i have to delve into the Comic Arcs/Series thingy to understand how it works so i can test it :p)

Another suggestion/request : It would be nice to have a "counter" of the number of books in a folder (and it's subfolders).
Don't know if it was the default behaviour of ubooquity or because i was using one of the Dark Themes, but i had that before and it was pretty nice to see with a quick glance where i was at (of retagging/migrating my collections xD).

Nice, really liked it.
But I used the Materialized theme before and I miss a thing here that is also available on the default theme.
That little box that shows how many things are inside a folder.
Any plan on adding this? Just asking because if the answer is no I'll just figure it out how to add it myself. But if it's yes, I'll wait.


Wasn't planning on it, as I wasn't a fan myself, but it was easy enough to add so I did it. It's now a setting at the top of themeScript.js (showBookCount). I will also add a bookmark count at some point, using the same setting.

Roooh nice.

Thanx a lot. ;)

Is it in the version from the op post ? Or we need to go grab it on github or something ?


That's in the most recent release on the GitHub release page. That alone probably only needs a themescript update, but the changes before it are in a few other files.

Ok thanx a lot for the answer. ;)

edit : btw what is this setting : 

var booksBaseID=null; /* Set to null to disable author page. */

supposed to do ? And how do you use it ?

Thanks for the counter.

I noticed it only shows the issue number in the folder listing if it's part of the title. Is this because a limitation of Ubooquity or intended?

Also, some of my comics are showing () in the detail popup. Haven't debbuged yet to see if the issue is in them.

And I think it would be nice to show the title of the issue below it's name in this detail popup too.
Sorry for being annoying.


The () is where the year would go, I'll add a check if the year is null and if so hide the parenthesis.

Title-wise I've found the titles are only as good as whomever populates the Comicvine wiki, so I replaced it with [Series]([Year]) #[Issue]. I'll add a setting to show the embedded title instead.

Edit: And the issue number thing needing to be part of the title is a Ubooquity limitation, I'm parsing the label field for that info.

About the title: I too prefer it showing [Series]([Year]) #[Issue], but I think would be nice to show the title below that, if it's available. But this one is just me being picky tbh. xD


Newest release has a setting showComicIssueTitle that'll display that title.

There's also checks for the year and issue number, so your empty () should go away.

Thanks again.
And sorry again for the trouble.

I've noticed that the number of books in a folder only show for "subfolders" roughly.

My librairy is set up like that :

Books ->Topic 1-> Subfolder 1

                          -> Subfolder 2

           ->Topic 2 -> Subfolder 1

                           -> Subfolder 2

And the numbers of books is only displayed for the subfolders level.

(It's the folders on the Topic* level that are shared in my librairy).

That's a Ubooquity limitation. The root link (Topic) level doesn't have a number block element to pull from.

The subfolder level counts are just read from that number block element, the only actual parsing I do is "if more than 1, append Books instead of Book".

I have seen this number block on the black/default theme and it gave me 'always' a number to see how many comics there were in a particular folder. When I change to this theme I do not see any number anymore. :-( .. I do not see a direct reference that a number is going to be displayed. I only see in the CSS 

display: none;

Where in the black/default theme

there is number.block and

.number span {

  1. background: transparent url(sliding-left.png) no-repeat;
  2. display: block;
  3. height: 39px;
  4. padding: 10px 0 5px 8px;


Would be great if that could be implemented as well

Open themScript.js, there are settings at the top. What you want is "showBookCount", set that to true.

mmmm nice .. but have to check how that is enabled .. restart server / refresh cache .. .. let me see .. 

update.. Ahhh i see .. it is text .. duhhh .. ;)

Aaah ok. 

Thanx for the info. Too bad. 

Specially since i have to choose between having each of that subfolder shared for user access management, or that interesting option working on all levels of my library xD

I've found the filter (( /* Series Name 000 */ )) of the function parseLabel to be way too problematic and disabled it here.
I had a lot of comics titles that end in number being mistaked for a issue number. Eg: An issue called "Level 99" of adventure time, and any "Part 2".

Yeah, the parseLabel is pretty much only setup for use with issue filenames instead of book titles. I'd add a check for that setting, but it's not exposed in the API.

I can add a setting to disable it for the next revision.

The latest themeScript.js/release on GitHub has a fix for this, by setting displayTitleInsteadOfFileName to true it'll disable parseLabel.

Hi Scott, any idea why the publisher banner won't show for me? There are no errors on dev console either.

Is that ID set to your Publisher page in the JS? It defaults to null, you have to manually set it (ie. mine is /comics/1/ so I set the value to 1).

Something weird is happening with your breadcrumb text, not sure what's up there.

Sorry which js file & line do I need to edit? I was using v1 of your theme. Created a separate folder for v2, clicked browse > comics, publisher page wouldn't load, so removed the 3 files (added for v1) folder.css, folder-info.html, publisher.jpg from my comics root folder. Do I need to copy any v2 files to my comics root folder?

Never mind, figured it out, cheers.

Glad you go it sorted.

Don't suppose I could get a copy of that logo, I like it better than mine. :)

Yea sure, here ya go mate :)

Awesome, thanks! Mind if I make it official, with attribution of course?

Not at all, please go ahead.

Any idea what's causing this? Page 1 is fine but any other page, the 'issues' heading is off

I actually just found the cause of this working on something else, it's that #folderinfo is normally below the header in #group but it does that if it's below (since #folderinfo was copied to the top). I should have a fix out shortly.

ah! great! thanks. 

I've got another question, I have my story arcs organised as per publisher.

So when I'm on a storyarc page, do you know how to get the breadcrumb nav to work properly?

i.e. comics > story arcs > marvel > civil war, so when I click on 'storyarcs' it should go to the root folder of storyarcs but currently clicking on storyarcs takes me to the publisher page. Other than hard-coding the storyarc folder link, is there any other way to achieve this?

Currently the breadcrumb nav works like so:

Series/story arc/script generated pages like Publisher/Story Arc are mostly hardcoded nav:

Base > Publisher > Series or Base > Story Arcs > Arc

If those don't exist, it's taking the current page and finding the matching link on the parent. Then doing the same with the parent's parent.

Base > Parent > Current page
This means to generate just the above, you're functionally loading 3 pages. It's somewhat ridiculous.

It'd be significantly easier if things were laid out in an actual hierarchy (/comics/Marvel/StoryArcs/Civil War) instead of (/comics/completely_unique_ID_number).

Since you're not the only one using nested story arc folders, I actually moved to generating the nav like in second example in the new templates I'm building into the theme (no more need to add folder-info.html files), but there isn't an easy way to migrate the data into the new format yet.

But I see what you mean about having Story Arcs replace the Base with Story Arcs (since it's not really under Comics proper). I'll see what I can do.

Edit: So what I did, is for pages with a certain class (arcPage), if the second link (to the right of Comics) isn't to Story Arcs, add an additional link to Story Arcs.

That leaves my test case looking like this:

Just need to iron out a few little things before I roll another official release, but the changes are out there now.

Hmm don't think I've got this setup right. I've added the new folder-info.html file to /comics/StoryArcs/Marvel/Spider-Verse/ and grabbed other updated files but I don't see the new changes you've done. Do I need to do anything else, generate any other files or something? 

It doesn't even show the arc name on the breadcrumb nav (was the same before the update) If I remove folder-info.html file, the arc name shows up on the breadcrumb nav. 

There's a breadcrumb div in folder-info.html that's taking precedent (part of the reason I'm moving away from folder-info files per-series/arc). Try deleting folder-info.html and drop this in there instead.


Yay! that worked, breadcrumb nav works as expected, thanks :)

So creating the series.json is that a manual process?

If you built what you've been using thus far with PageBuilder, the newest version on the GitHub page will output series.json if you pass it a cvinfo file.

I'm currently putting together a script to convert folder-info.html files into series.json's.

Another question that might be totally out of the realm of possible :

seeing the amazing things you did with the skinning, and the features you changed/added, would it be possible at all to add support for external metadata files (opf files) and for external jpg/png covers for books instead of only using the ones internal to the files ?

I know i've got quite some pdf who are lacking a proper cover, and editing them manually 1 by 1 to add one for it to show is quite painful (by "quite some" i mean "hundreds" :().

Doubt it's possible but i decided that if i didn't ask i wouldn't know. :D

Another thing, is there somewhere a step by step "guide" on how to make Story Arcs and Series working ? I must admit i'm more than "kind of" lost with it.

Is there some manual operations to do somewhere ? If yes how ?

So the blanket answer for external metadata is "probably not". All of the book-specific stuff I'm working with is pulled from Ubooquity, so if it can't see it I might not be able to. I am, however, moving series/arc data to their own external files (these are generated elsewhere, guide to come eventually).

You could look to Calibre, it has the ability to embed some metadata. I haven't played around with it much though, I'm mostly just a comic hoarder.

And the guide is coming. I've been tweaking a lot of the tools for my own collection, but I do intend on getting a guide out eventually.

Even if i despise Calibre for a LOT of reasons (the main one being the fact that for no reasons it wants to FORCE ME to adopt a dumbass way of organizing my books on MY DISK that makes it totally unmanageable without Calibre..... :(), i ended up using it as a identifying/renaming/tagging/ tool, because i didn't find a suitable (for me) alternative (even if there is acouple cli tools that could end up doing the job i guess), but the problem always ends up the same :

"Pdf is a proprietary format, badly documented, with a LOT of things you aren't allowed to do in free software because Adobe require a BIG licence fee to allow it".

Being able to "embed" covers/images into an existing pdf is one it seems (and Djvu because it's basically the same).

(the problem is the same for technical reasons i guess for chm files and a couple others)

It's what irks me, i spent the time making sure all my files are properly named,with proper metadata and covers (albait external ones for pdf since i don't really have a choice, with ridiculously lacking metadata and no way to "batch process" covers into them), and it doesn't show on Ubooquity ... :(

(Main reason i use Ubooquity over sinces like COPS/Calibre-Web/Calibre-Opds-Server is because it allows me to keep MY organization of MY books how i want them AND being able to find my way into them without using Calibre.....).

Too bad it's not possible (to be honest i was pretty sure it wasn't but i had to ask xD).

Let's hope the Ubooquity Dev one day (soon please :p), will accept to add support for external metadata/covers. :D

suggestion, could not find it

When books are disabled, will the theme disable the display of the books part? I only have comics.. So I do not want to see that book menu option. When I press it I see .. 

Books sharing is not activate

It should already be doing that, it's setup to check both if the option is enabled server-side _and_ if the active user (if users are turned on) can access book shares.

Do you have any errors in your browser console (Developer Tools in Chrome)?

I get this error: (I have no users defined)

jquery-3.3.1.min.js:2 GET http://comics.mydomain.net:2202/books/?latest=true&_=1552398223951 403 (Books sharing is not activated)
send @ jquery-3.3.1.min.js:2
ajax @ jquery-3.3.1.min.js:2
w.fn.load @ jquery-3.3.1.min.js:2
(anonymous) @ themeScript.js:102
script.onload @ themeScript.js:1354
load (async)
loadScript @ themeScript.js:1353
(anonymous) @ themeScript.js:50
script.onload @ themeScript.js:1354
load (async)
loadScript @ themeScript.js:1353
(anonymous) @ themeScript.js:49

just after 2x resetting the cache (dev tools / force refresh etc.. ) finally its off .. very wierd cause I had done that already several times .. 


It caches in sessionStorage what should be visible, so if you had books enabled when you opened it and then turned it off with the page open that would persist until you closed the browser.

If the books module was never enabled, I'm not sure why the above would be happening.

I have got the Audiobook mod working on the latest V2.

I tried not to alter any of your code (no code was harmed in the making of this). Only thing really is that the AB js has to be added to the themescript.js. If you are interested I can flick you the code / files. Just a couple of niggly things to sort out.

Yeah, I'd def like to have a look. Should at least be able to sort the visible css issues.

email me gsb at gsb.kiwi

First, thanks to Scott for all of this!  Second, can someone point me to why my index files keep trying to point to resources in the old theme? The new theme works (50%) of the time.

I find that when it doesn't work it's because it's trying to access theme.js and jquery-3.1.1.min.js, then themeScript.js throws an "Uncaught Error: Syntax error, unrecognized expression: unsupported pseudo: exact" and the page doesn't load.  Just to clarify, when it works, it tries to access those assets and then simply goes to themeScript.js just fine.  I think* the issue can be traced back to my index files.  Each one of them gets built with a link to theme.js and jquery-3.1.1 (see below)

I've cleared my db, cleared my cache/forced reload, restarted my server, etc.  Any suggestions or things that could point me in the right direction?

That's your folder-info.html in some folder. Those shouldn't have any actual navigation in them anymore (check the example publisher page to see what's in mine).

It was staring me in the face the whole time.  I got focused on my ubooquity folder and totally forgot about all the html files in my data folders.  Thanks so much.

Also, my thanks for the theme, I've used for at least the past three years and it + ubooquity bring me great joy.  

No problem, it helps that I've stared at this html for far too long!

Glad you like it!

Hey Scott, I noticed there's no arcBuilder with this interation. Is there any plans to re-release that? I was just trying to start doing the arcBuilder script, and came across your post about the new version of the Comixology theme.

arcBuilder might come back in the future, but it was a pretty hacky setup. It'd really need a rebuild. On top of that, it used to bank on leaving Ubooquity folders visible when empty (since there weren't any comics in them) and that doesn't work so well with newer Ubooquity releases.

Currently this supports George Baker's json.cbr format, he built a tool in a different thread that helps make the correct file but it's still a manual process. You can also make compatible files with the new theme's bookmark page, by clearing your bookmarks, bookmark the issues in the arc manually (you can reorder them with dragging and dropping) and then use the Export JSON button. Eventually I want to add metadata lookup to that process, but for now you'd need to edit the resulting output in a text editor to put in the series name/year/description.

So what about checking if a comic already has the metadata? Mylar automatically imports the metadata into the comic if you set that up, so I'm wondering if maybe a check could be made to offload part of the work since it already exists?

That's what I'm talking about with what I want to add to the process. Just haven't gotten that far yet.

Hi Scott, not sure if you're aware of this but if I use series.json, the 'Bookmark Story Arc' button doesn't work, works fine if I switch to folder-info.html, are you still working on this bit?

Yeah the template bits are getting a full overhaul right now. Thanks for letting me know though, I had no idea.

I just posted a new release, lots of css changes (and new template files for series/arc pages). Since I prefer the Comixology-style story arc pages (larger pic, no buttons), I added a setting to themeScript (useSimpleArcTemplate) that'll make it functionally the same to what's there now. And the button should bookmark correctly now.

1. Just re-downloaded the entire folder. Bookmarks are working fine now, cheers. Is the bookmark button on the storyarcs page supposed to say 'Bookmark Sries' now? previously it was 'Bookmark Story-Arc'.

2. I don't have books enabled but when I click on 'New' and then hover over on 'New' again, there's a drop-down now and an option for books.

  a: when I load/refresh the page, the 'new' button is as expected

  b: When I click the 'new' button, it creates a duplicate 'new' button that has a drop down with an option for books.

3. Minor CSS issue that's been on previous versions of v2, hover over any nav drop-downs, to select an option, the mouse-click has to be on the text, clicking on the blue highlight does nothing, can that be fixed?

4. Tried 'useSimpleArcTemplate', the description font-size it's inheriting/set to 16px, where as Comixology has it set to 14px

On a side-note, I'm trying to enable series function on themeScript.js, what ID do I need to use here? any help setting up series is appreciated.

Series is the book-equivalent to story arcs, so if you don't use books it won't work for you.

Good catch on the css/template stuff, I'll sort that out soon.

And the adding/removing nav stuff is sorta hacky, I'll cut it back to just using Ubooquity settings (it's trying to be more user-specific, and apparently failing).

Oh! I thought the series bit was the equivalent of the Comixology series page.

New release should sort out the css/template/drop-down issues. Good catches all around.

I'm hoping with the next Ubooquity release we can pull things in multiple ways, and then proper comic author/comic series/etc pages can be a thing. This was just to add a bit more functionality to the otherwise neglected Book section.

Edit: except the drop-down links needing to click the text, that I haven't sorted yet.

Edit2: nevermind, that's fixed in the comixology2.zip now too! :)

Yeah you need to set that.

You might want to edit the above, it's got your internet-facing url in it.

Thanks for the quick fixes mate, drop-down links fix from the release page works :)

With the recent fixes, I've noticed books is enabled in all menus now, is that expected with the removal of per user visibility code?

It should be now visible if you have book sharing enabled, removed if you don't. The per-user stuff was causing the issue, so I need to figure a better method for that.

Ah! my bad, although I didn't have anything in the books and files folders, forgot that I had the books and files sharing modules enabled, disabling that fixed it.

My final issue, I still see an extra ''random' option which does the same thing as 'Random Comics', I know when books is enabled that changes to 'Random Books', so with books sharing module disabled, is that supposed to be there?

Nope, not sure what I changed to cause that but it should be sorted now. Hopefully that's the last of it. :)

Yep! that's sorted now, thanks. It wasn't a recent change that caused this issue, it's been there since v2 release.

I have my books set up a different way.

I have on what Comixology is Authors. But at this level I have 

Authors, TV/Movie, Other

So as my Authors is next level, the folder images are displaying not consistent sizing. Anytning  I can do without hacking your code. I suppose I could use overiding CSS at each Author page.

Since I'm only setup for one baseID, it would take some changes to declare multiple Author pages. It's doable though, I can have a look.

But to clarify, that has nothing to do with the sizing of those photos. My css only matches width, rather than doing any cropping. To add something like that you'd be better off adding a folder-info.html in each folder with either some css in it, or linking to a css file locally (src="[[folder]]/whatever.css").

Really though, I would just crop the pictures to the same aspect ratio with a photo editor. :)

New release posted, with George Baker's Audiobook mod integrated! This is enabled by sharing a folder with audiobooks in it in the Raw Files section, then put the name of the share in themeScript.js. This method also opens a lot of opportunities for other custom modules, so we'll see what comes of it.

There has also been a lot of css tweaks (certain things Comixology did started to bug me, so I fixed a lot of spacing issues). I would delete your existing comixology2 folder and replace it with this, just to make sure you get everything.

I just upgraded to the new theme, and I like it quite a bit although I had to clear my cache to get it show up properly. Question, though. Where does the default "Comics" image come from? Right now it's pulling the cover from an issue of Shadowman from the Acclaim publisher, but if that can be tweaked that would be great.

Also, I'm probably an edge case, but it seems like the new jquery version takes a lot longer, and definitely chews up CPU a lot more than the old theme. I've got a lot of comics I'm sharing, and as such if there was a way to cache things so it didn't have to constantly try and read the list, that would probably help speed up the behaviour.

I believe that's pulling the cover from the first issue in the first folder alphabetically. You can override that with a folder.jpg in the root of the folder.

Cool, thanks. What about the other question, which most likely was lost since you replied before I clicked edit?

Ah yeah, sorry too quick on the trigger there.

So I'm thinking that the last big offender is the breadcrumb nav (Comics > blah > blah), since it does a lot of backtracking to figure out where you are in relation to other things (take current page, look at parent and find matching link title, go back one more and do it again).

I'll look at caching an array of page IDs, so it doesn't need to dive to find those.

For the homepage though, that's functionally loading 2-4 pages each time (new/random comics and/or new/random books). The idea of that is to actually show those, so I don't see a way to cache that. You could probably speed things up a bit by disabling the random pages (showRandom in themeSettings).

Also, I'm having a problem where it's constantly trying to load the comics/1/ page, and if I look in my network trace, I see that it's 404ing trying to find theme.js, which doesn't exist in the folder structure. Is there something I'm doing wrong, or is that somewhere else?

theme.js was from the old theme, it's probably trying to be loaded by a folder-info.html in your publisher folder. Since in this version the publisher folder is theme-generated, you should delete that.

OK, yeah, removing folder-info.html made the page load. I see I need to remove folder-info.html or tweak it for each of the publishers, now, since the new layout includes all of the stuff that used to be there.  This is pretty sweet, I like it quite a bit.

There's an example publisher page here that shows all that's needed for publisher pages now. I streamlined it a ton.

Cool, thanks. The only "major" complaint I have is that it goes Comics > comics on the Publishers page, but that might be related to the folder-info.html, though I'm not sure how since I removed the HTML file.

Set the comicsBaseID to whatever your publisher page is (sounds like it's 1) and that'll get overridden with "Publishers". That'll also change the drop-down from Comics to Publishers.

Awesome. How come the Featured Publishers keeps changing sorting on each subsequent force-refresh?

That's a weirdness with asynchronous loading (it appends whatever loads first first, etc), but should be less random once I incorporate caching.

New release caches, and has the byproduct of making Featured Publishers load in intended order.

Browse -> Publishers doesn't include the /1/, it just goes to /comics/. Where can I set that?

Do you have multiple base-shares, or is the only thing shared in comics your "comics" folder? If that's the case, there's a Ubooquity setting to "Bypass single root folder".

Yeah, the only thing shared in Comics is my comics folder. I'll enable the bypass single root folder option.

Hey Scott, because you're including themeScript.js in the git repository, any time someone makes a change they have to either remove their changes, or remove the file to update properly. Think you can exclude it from the list of files that need to be synchronized?

Um... what? I can look at moving settings outside of themeScript, if that's what you're asking. But themeScript is what actually builds the theme, if you don't grab the new one you don't get the changes.

Yeah, I think it's more about moving the settings outside of themeScript, sorry, I was typing slower than I was thinking and left half of it out after I clicked "Post".

Basically, the settings (whether story arcs are available, the base Comic, base Book, etc.) should probably be moved out either to a .cfg or .ini or something so that people like me don't need to continually remove, then re-add the settings each time there's an update.

Yeah, that'll be the next thing I take a look at. I'll have it generate on the first run, but exclude the filename from the git.

Edit: actually I won't be able to generate an external file so I'll just include it in the release zip to cover the less technically-inclined.

I see that the Settings .js file is set as read only. Should not be a biggy, but not everyone will work it out.

Good catch, I'll fix that for the next release.

Not sure why I was overthinking that, grab the settings.js out of the release zip and you'll be all set moving forward.

Awesome, that looks great. Thanks!


New release on the GitHub page should have pretty massive speed improvement. It now caches IDs, so there aren't extra jquery loads to get page names.

Good job mate, definitely notice the speed improvements.


You have any use for these? Fonts match the Comixology logo better and colors directly from official SVG logo of Comixology.
I have them in vectorized svg. Let me know if you want them and where to send them.

Yes please! scooterpsu@gmail.com

Scott: Check your e-mail ;)
Don't hesitate to message if you need help with anything.

I like these, could you please post a version of the 2nd one, with the sub-text 'Comic and ebook server' font size reduced, similar to how it's on Comixology?

elmerfdz: The logo you mention has the same size (maybe even a bit smaller) on the sub text as "an amazon company"-text in the official Comixology. See this comparison.


I see, thanks for looking into that. IMO a lower case 'c' would look better there.

You are right. It looks better this way.

I've got a few more suggestions if you want?

  1. Swap the 'and' for an ampersand.
  2. Slightly reduce the space between the main text and sub-text
  3. And if the goal is to match the comixology logo, right align the the subtext. 

Happy now?

Not changing it any more now...

I'm hoping that Scott can serve up the logo that matches Ubooquity's settings, i. e. show "comic server" if the book module is disabled.

I am :D  thanks.

That's a good idea.


New release with the above feature/logos is posted.

works fine mate, banners switch as expected depending on modules enabled.

How would I go about setting this up in a Docker container?


Well this is just a theme for Ubooquity, probably not the support location for a Ubooquity docker setup.

That being said, I personally use this container https://hub.docker.com/r/linuxserver/ubooquity/ via unraid. Just map the container's /config folder to something external, and then grab my theme from the GitHub release page linked at the top and unzip it to the theme folder in that external location.

Thanks for the quick response! My issue was a didn't setup the file permissions correctly, it all works fine now. Thank you very much!

Just did a new install of the theme, but get no web page, and the following log error repeated 4 times:

20190321 10:28:53 [qtp10330637-176] ERROR com.ubooquity.provider.theme.a - Theme resource not found: settings.js

There is no settings.js file anywhere in the comixology2 folder or anywhere in the zip download from github.

Are there install instructions? (I copied the comixology2 folder from the github zip file to my themes folder and then selected it in the ubooquity settings.) Do I have to do a build or run a makefile somewhere?


The comixology2.zip on the release page contains a settings.js file. The file itself is excluded from the repo so syncing with a git client doesn't overwrite your settings.

Edit: I've updated the Github readme to point this out for future users.

That's working much better now! Looks great! 

Thank you


Uncaught TypeError: Cannot read property 'some' of undefined
at getParent (themeScript.js:1304)
at themeScript.js:518
at HTMLScriptElement.script.onload (themeScript.js:1659)

Could I get some context for what page this is happening in?

My bad, as soon as i press "Comics", the start page loads up fine, but as soon as i go to "http://192.168.X.X:2202/comics/1/" i get that error.


No problem, as soon as I asked I managed to find the right combo of settings to make it happen myself. It was an easy fix, timed with me finishing what I was working on anyways. 

New release should sort it.