Comixology Theme V2 finally released!

Scott (ScooterPSU) 2 years ago updated by Bobby Hill 2 weeks ago 461

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!

this thing is awesome only 2 things arnt "working" for me. 

1. i dont get the folder.jpg to show the publisher logo. (folder.jpg is in the root of the publisher folder)

2. i copied the comicsBaseID from http://IP:2202/comics/9659 and pasted that on the comicsBaseID in the settings.js but when i click on publishers it still show me the comics folder first and when i click that it goes to the publisher page. 

any idea what i'm doing wrong here?


1. Make sure you have "Enable Folder Metadata Display" enabled in the ubooquity settings

2. are you pasting the whole url or just the last set of digits into the settings.js. You should only be pasting the 9659

1 awesome that did the trick ! (Does this also put the image in the comic details page or do I need another image for that ?)

2 I only pasted the 9659 part

1. Awesome!

2. Ok, lets try and figure this out. The 9659 ID you're getting is the the very first page or is it the publishers page? In the Ubooquity settings do you have bypass single root folder enabled?  

Sorry if i'm asking stuff you already know, just trying everything i've done on my end. 


Missed the part about the comics detail page, do you mean the header/banner?

If so then no, you have to source these separate. https://github.com/Telecart/pubthemes has pretty much all of them (at least all the popular ones) as well as Comixology. 

no I mean when you click on a comic and get info/details about the comic you want to read/download under credits their is a image for the publisher I mean that one 

thnx for that url didn’t know that even existed how do I implement this is there a how to somewhere 


There is more here: https://github.com/CuddleBear92/Ubooquity-Themes/

There is a script there to scrape the whole publisher list and all its series from comixology to make these specific files.

I am working on uploading these to the github today and more till im in sync. Clearing out all the old v1 theme stuff i had on it.

People wanting to do it themselfs can easily grab the script and run it in python3. Scraping it all will take atleast a whole day though.

Will be uploading the base scrape first then edit any weird ones that for example have default white backgrounds with black text (so the dark mode themes can still work correct for those).

awesome will check it out

2. When I set base to null. Then I go to browse>comic  then it show me the comic folder Inside that folder are my publishers and that show me that number in de the url. 

When I put I that number on base and then do browse>publishers it still points me to comic folder and when I click that it points me to the publishers page. 

Do you understand what I mean it kind of hard to explain haha 

did a couple of rescans of my library after that this issue was solved :s. my bad :D also figured out that git you send with images.(actually it happens Every time during a scan of the library)

only question i still have is that about the details page when opening a comic on the right i dont get a publisher image.

can anyone tell how i get the publisher image here ?

is there a way to get the menu bigger on mobile phones. when i open the page on my phone it just scales down the website...

Dropped a complete release of the Comixology mirror for this theme in Ubooquity.

Got Logo's and images for all, html and css files for publishers aswell as json files for series.

This first release is just a mirror and uses the names used on the websites itself.
Some year entries might be wrong as the first individual release of the series might have the wrong entry on the site itself.
(site stating the release was 2020 when it was 1995 for example)

Sadly this is reflected in the folder names and the internal jsons.
The script did scrape all years and picked the lowest year number but it didn't help in all cases.

The script itself is also hosted in releases aswell in the repo itself.


Next plans for the next few days:
To upload the missing files in the main repo (that is already in the release).
Clear out old v1 files and keep alternative images.
Clean out white backgrounds with black text to contain the important flag so they are respected by the set theme.

After than i guess i should try to fill out the missing publishers that isnt on Comixology at all.
Don't believe i will replace images with the Comixology Unlimited banner on them, If people have them then please make a pull containing them (or if you make your own).

Notes on the running script, it had some bumps but it was bugfixed.
The last run had a small glip once that didn't repeat itself on the second try.
If the script fails when you run it yourself, please either delete the publisher or series folder in question and try again with the correct skip settings.

Im trying to run your script on windows 10 and i'm not sure anything is

happening. I dont get an error message or anything. I have sectioned off

a small section of my comics to test before i ran it on my whole

librbary as i thought this would be a good test however i cant get any

joy with it. Is it better to post on your github or here for some


I am guessing you mean the Comixology scraping script.
this one: https://github.com/CuddleBear92/Ubooquity-Themes/blob/master/Scripts/comixology-to-ubooquity.py

You can always make an issue if you want too.
You should only need python 3 and a few things you can grab with pip. 

Far from an expert on it myself and the script was made by a friend. 
Running it as i stated as an example run works out well for me over here.
If you are missing anything on python with pip then it should error out on the specific requirement to inform you whats missing. doing a simple pip3 install of that and re-trying it should be fine.

there is a few params with the script for sure like scraping series, skipping publishers or series, setting the delay and setting a destination.

Also of which is atleast loosely noted in the readme.md file in the script folder.

EDIT: please, if you follow up on this. Make an github issue and note what script you are using at a minimum. 

The scraping script which is the main part of the repo does not work with any comic folder you have. but rather just scrape the comixology site for metadata and generate files for the theme.

Thanks for getting back to me, that is the script i was using. I think i was misunderstanding what the script does i wanted to scrape all of my comics to add the missing series.json files to all of my folders. I think i may have to grab the files from your repo and try to dump them into my folders.

Best to browse the repo itself to find what you need atm, the release has just a pure dump of the comixology.com scrape without any cleanup.

All publishers and series are sorted correctly in the repo so it should be easy to find what you need if i have it.

Much of it, esp the publishers are still a work in progress.

Also still need to get the script working for the comixology.eu site as it has some publishers and series the .com site doesn't have.

Series years on the repo as a whole have to be taken with a huge grain of salt cause of the limited data the site had.
I pulls all the years and uses the lowest value in both the metadata and the series directory.
This might be way off cause of the site data. This will have to manually be corrected in the worst case. Do plan to add cvinfo files to each of the series folders too which could be re-used again for another script for those wanting that sort of thing.


Hello! I am experiencing this weird bug, if I add a single directory to my library, then I get this very cool read/bookmark button under each issue 

However, if I add directories to the library separately the button disappears 

It's not big deal as I guess I could merge both my libraries into the same directory, (I have one for comic and other for manga) but I was wondering if there is a setting or config I'm overlooking to fix this problem? thank you! 

I think it happens because it creates a different url for the comic directory 

Oh, this must be why mine doesn't have that neat Bookmark button!  I have separate directories for myself and the kids.

They get Angry Birds, I get Inter-dimensional High School for Intergalactic Space Faring Succubus Vampire Zombie Slayers.

I'll just roll theirs into mine for now. What could go wrong?


Hmm, it shows up in my "New" & "Random" section only. Bummer.

Is there any way to separate collections and single issues in a series? ie two groups the way Comixology does it?

An update. Cool!

Does this Audiobook mod work with mapped drives? I've got my audiobooks on a NAS and mapped in my server. Ubooquity sees the files and the Raw Files section works fine.

But when I map it into settings.js

I get this error.


You just need to add 'Audiobooks' to the Settings file, not the path you have. As the picture above shows, you just need what is after File Browser>.

If the program finds the equivalent path (setting) it treats it as Audiobook module. 

Oooooooh.... Got it. It's working now. Thank yoU!

This update is Sweeeet!  It even still supports the shortcut buttons from the old v1!

Big question though. Why do I have the Bookmarks option and Progress Bar showing up only in the New and Random sections?

No Goodies

Cool Goodies

Ok.  I came back to it after a few weeks and it's suddenly working in all sections. I guess the server needed some time, I dunno.

Now the progress bar and options are showing up.

Hey there!

How to change folder name display setting. At the moment folder names are not wrap'ed, when file names are. See the difference below:

I want folder names to be displayed as file names. I'm ready for code changes :) Thanks in advance!



Drop this into bottom the "rawfiles.css" 


div {
width: 150px;
border: 1px solid #000000;

div.icon {
word-wrap: break-word;


I was wondering if this could be modded to look for the last folder with folder-info,header.jpg,folder.css,folder.jpg in the chain to then show that info for all sub folders minus the last folder containing the comics as that would interfere with the series.json.

So the banner will show on all sub-folders without needing to add it to all of them. 

Another one I was trying to do is change the green read buttons to match the blue that is around the browse button above.

I was hoping to add the series.json and header to the main folder so it will show info about carnage for example.

I know the last two can be done but my coding skills are a few hours of google with trial and error. Maybe someone will take pity on me and point me in the right direction.

The styling stuff is in the comixology.css file in the theme's folder.

The background color of the Browse button is on line 126, but mine was set to black for some reason. So I updated it to the green of the Read buttons to show that it can be changed.  

Those Read buttons start on line 1226. You'll want to comment out, delete, or update line 1229 so the border is either gone or matches your new color and replace the #colorcodes on the next three lines to get a solid color.  

I suggest right clicking the buttons, hitting inspect, and playing with the colors you want in there. This also shows you what line in what file the stuff gets its settings from.

This was the easy one. I'll look at the others later.

K.  I tried looking at it, but that part gets into JS and that stuff's all jumbly mumbly to me.  I think somewhere along line 256 in themeScript.js needs an else and then some stuff to look up a directory or two until it finds a "header.jpg" file, but I'm really not sure.

Thank you I was able to find it and change the colors. Made the hover over a little darker

now to use the series.json and header.html/jpg at the same time. 

I redid the header for publishers and plan on redoing the others as I don't care for the green. I might make some changes, maybe redo the font to be easier to read?

link to the publishers.jpg if anyone wants it https://drive.google.com/drive/folders/1v52aozTFXz5ioSiWMLV4ALIKXlcDMaz5?usp=sharing

I also fixed the marvel header I didn't like the size and it was also blurry to me.

Link to the file https://drive.google.com/drive/folders/12tAviPPjU1ytPxo8s5L9X7xeaD72WF69?usp=sharing

I redid the publisher, story arc. And made a couple for DC events and Marvel Events


I was trying to add the ability to bookmark whole comic series however the bookmark button only appears on series that have the series.json file in the directory. Is there a way around this or do i need to add this for every series?

How do make that series.json file to start with? I see things about a scraper, but can't find it.  :(

If I had the button, then could inspect it and maybe figure out what drives it.

Place this in a txt file and name series.json you can replace the info with what ever series you want.

{"metadata": [ {
"name": "Zatanna’s Search",
"description": "Zatanna attempts to reconnect with her father, Zatara, and seeks the aid of several heroes along the way.",
"year": "1964",
"publisher": "DC Comics",
"players": "Zatanna",
"type": "comicArc" } ] }

Thanks.  I gave it a shot but that button looks like it is created, edited, and pointed to its location based on what exists in that json file. Without it, it doesn't look like the button would work if it did show up.

Good evening everyone!
I've got a weird problem.. 
No matter what folder I'm in, if i open a foder with, let's say, 100 files, the first "page" doesn't have the green buttons.. The second page and the ones on do.
I've noticed that when going on page 2 this lovely marker appears ?index=36 and if set to anything but 0 makes the buttons appears (but obviously skips the first file)

Soo.. is it just me or..?

Also, got a little request here, more like a cry for help, haha!
I need to integrate a little snippet of code in the header, but how? If i try to append it the page just keeps loading forever.
I checked it twice and put it all in one single line but nothing. i don't have much experience with javascript sadly! 

Just wanting to check if the right side "Publisher" link is working for others. Mine is breaking and using the error image in its place.

I have the same error and don’t know how to fix it... 

If you haven't found it yet, there's a "Clear Cache" in the drop-down from the username menu in the upper-right.

The cache is where it associates an ID to a publisher name (and subsequently the publisher's folder.jpg), so if that potentially changed at any point you might need to reset it. Next time you open your publisher page it'll make a new cache.

Anyone know how I could edit out the "Browse" dropdown, and just put the "Comics" and "Audiobooks" buttons directly in the navigation bar? The tiny dropdown is difficult to jab on mobile.

Hello, I just found this theme and I am trying to get it to work.

If I enable it and visit it via IP:Port/Comics it seems to work (though alot of pages take ages to load if at all with a white screen and a black circle on it)

However via a nginx proxy nothing works - reset the theme to normal and it works fine. 

my proxy is set as

location /comics/ {
        proxy_pass http://IP:2202;
        proxy_set_header Host $host;

tried with and without trailing slash

the errors in the console are:

Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help <a href="http://xhr.spec.whatwg.org/" class="redactor-autoparser-object">http://xhr.spec.whatwg.org/</a> themeScript.js:1939:1

Uncaught SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
    <anonymous> <a href="https://URL/comics/theme/themeScript.js:19" class="redactor-autoparser-object">https://URL/comics/theme/themeScript.js:19</a>

any ideas?

What does your Settings.js file look like?

Need to add base IDs for Books and Comics.

Hi thanks it's got values in the comicsbaseid I am not using books so have this disabled

I think I have it mostly working, but when I go to a series page I get the following:

in the unooquity log's it shows as

ERROR com.ubooquity.provider.api.user.b - Could not process bookmark request
java.lang.NumberFormatException: For input string: "comics"
   at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[na:1.8.0_242]
   at java.lang.Long.parseLong(Long.java:589) ~[na:1.8.0_242]
   at java.lang.Long.valueOf(Long.java:803) ~[na:1.8.0_242]
   at com.ubooquity.provider.api.user.b.b(SourceFile:68) [Ubooquity.jar:2.1.2]
   at com.ubooquity.provider.api.user.b.a(SourceFile:44) [Ubooquity.jar:2.1.2]
   at com.ubooquity.d.c.a(SourceFile:142) [Ubooquity.jar:2.1.2]
   at com.ubooquity.d.b.handle(SourceFile:54) [Ubooquity.jar:2.1.2]
   at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) [jetty-server-9.4.0.v20161208.jar.1030974151070595656.tmp:9.4.0.v20161208]
   at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190) [jetty-server-9.4.0.v20161208.jar.1030974151070595656.tmp:9.4.0.v20161208]
   at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1228) [jetty-server-9.4.0.v20161208.jar.1030974151070595656.tmp:9.4.0.v20161208]
   at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:170) [jetty-server-9.4.0.v20161208.jar.1030974151070595656.tmp:9.4.0.v20161208]
   at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1130) [jetty-server-9.4.0.v20161208.jar.1030974151070595656.tmp:9.4.0.v20161208]
   at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [jetty-server-9.4.0.v20161208.jar.1030974151070595656.tmp:9.4.0.v20161208]
   at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:118) [jetty-server-9.4.0.v20161208.jar.1030974151070595656.tmp:9.4.0.v20161208]
   at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) [jetty-server-9.4.0.v20161208.jar.1030974151070595656.tmp:9.4.0.v20161208]
   at org.eclipse.jetty.server.Server.handle(Server.java:564) [jetty-server-9.4.0.v20161208.jar.1030974151070595656.tmp:9.4.0.v20161208]
   at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:318) [jetty-server-9.4.0.v20161208.jar.1030974151070595656.tmp:9.4.0.v20161208]
   at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251) [jetty-server-9.4.0.v20161208.jar.1030974151070595656.tmp:9.4.0.v20161208]
   at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279) [jetty-io-9.4.0.v20161208.jar.5425350330766075042.tmp:9.4.0.v20161208]
   at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:112) [jetty-io-9.4.0.v20161208.jar.5425350330766075042.tmp:9.4.0.v20161208]
   at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124) [jetty-io-9.4.0.v20161208.jar.5425350330766075042.tmp:9.4.0.v20161208]
   at org.eclipse.jetty.util.thread.Invocable.invokePreferred(Invocable.java:122) [jetty-util-9.4.0.v20161208.jar.4626548485020188312.tmp:9.4.0.v20161208]
   at org.eclipse.jetty.util.thread.strategy.ExecutingExecutionStrategy.invoke(ExecutingExecutionStrategy.java:58) [jetty-util-9.4.0.v20161208.jar.4626548485020188312.tmp:9.4.0.v20161208]
   at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:201) [jetty-util-9.4.0.v20161208.jar.4626548485020188312.tmp:9.4.0.v20161208]
   at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:133) [jetty-util-9.4.0.v20161208.jar.4626548485020188312.tmp:9.4.0.v20161208]
   at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:672) [jetty-util-9.4.0.v20161208.jar.4626548485020188312.tmp:9.4.0.v20161208]
   at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:590) [jetty-util-9.4.0.v20161208.jar.4626548485020188312.tmp:9.4.0.v20161208]
   at java.lang.Thread.run(Thread.java:748) [na:1.8.0_242]

I don't have bookmarks currently enabled any ideas?. 

Anyone able to help?

have you got a series.json file in each of the series directories and a folder.jpg?

The "bookmarks" call is actually Ubooquity's built-in API for comic progress, not sure why it's called that but I could see how it would confuse things. I'm wondering if it's something getting redirected weird with your proxy.

yeah it most likely is a proxy issue, just can't figure it out been trying off and on for months.

Top part that is commented out was the initial proxy I had that works for normal theme. 

I then tried the config from Linuxserver SWAG and it makes no difference - half the time I can't even open the site it's just a spinning circle with lots of errors. 

# location /comics
# proxy_pass
# proxy_set_header Host $host;
# }

location ^~ /comics {
include /config/nginx/proxy.conf;
 #resolver valid=30s;
set $upstream_app IP;
set $upstream_port PORT;
set $upstream_proto http;
proxy_pass $upstream_proto://$upstream_app:$upstream_port;

location ^~ /comics/admin
{ include /config/nginx/proxy.conf;
 #resolver valid=30s;
set $upstream_app IP;
set $upstream_port PORT;
set $upstream_proto http;
proxy_pass $upstream_proto://$upstream_app:$upstream_port;

the errors just keep increasing for the "A cache-Control" header is missing or empty Response should include "x-content-type-options" header and the server header should only contain the server name.

interestingly these errors also appear when I use the IP/Port and base url to access the install so it's not just a proxy issue. 

Been pulling my hair out on this when I do look at it!

Sorry, I should've caught it sooner. I think I can see what might be up, and why it might be something with your setup causing it.

The docID in that error message should be a number, not "comics", so I'm wondering if that's a configuration issue with my code or if it's how your proxy is potentially rewriting the URL. Or the fact that you're using /comics as your proxy path might be it, since that would make the URL potentially whatever.com/comics/comics/[number] and something is only looking for comics in there once. I think I use a check for "comics" in the URL in a few places that your setup might be breaking, but I can see if there's an easy fix.

thanks Scott I never thought that the base url was causing the issue, did a quick change to Ubooquity and it's all working. 

Will need to think of a better name (and one I can spell easier :D) and use that. 

Awesome, glad that sorted it!

And that gives me a test case I can replicate on my end, to see if I can fix the issue. If I do, I'll get an update out and let you know.

Hi, it's been a while and I'm rusty.

Can anyone talk me through, like I'm a child, how to setup Story Arcs


Another Question

Is there anyway to save metadata without altering the cbr/cbz file. Where I get them from, it is demanded that they not be altered in any way

thanks again

Had a bit of a play around. Now have all comics uniform in size. changed the structure to add character BIO inside publisher before the actual issues. Minor tweaks to colours and my own LOGO (half shown)

playing about with the theme 

Hey folks, I am pretty new to this so hoping for a bit of help.  I am setting up my Ubooquity server for the first time and really liked this plugin.  The problem is I cannot get it to start.  I am stuck with the console error:

Uncaught SyntaxError: Unexpected token < in JSON at position 0
at JSON.parse ()
at themeScript.js:19

I reinstalled Ubooquity and the theme but the error remains.  I have been scouring the forum but all I can find is replacing themescript.js but if I am reading correctly then that is already updated in the zipped theme package.

This is a fresh install of Ubooquity and the theme, I haven't even fully scanned in my Library as it is quite large and will take some time.  I am really hoping to get it started so I can get it running.  I have left all of the Ubooquity and settings.js fields alone so it is possible I just have not set something up right yet, but I was trying with the pprevious install and nothing seemed to work.

Any help would be greatly appreciated.

Did you switch over to the theme and it stopped working?

Yeah, I am sitting with the black loading circle and that above error in the console. If I take the theme off and restart Ubooquity seems to work.

you put it in the theme folder? Ubooquity/themes/comixology2? If so it might be corrupted. Delete it and redownload. 

Yes sir, that is the folder structure.  I will see if that does anything.

Exact same problem.  Same error in the console.

have you changed your settings.js file at all? if so download it afresh. Get everything orking then start to chage stuff. JSON files are very particular about syntax, a rogue character can stuff them up

That's the thing, nothing has been modified.  When I reinstalled I have not changed a setting in the settings.js.  As far as Ubooquity itself, the only option I changed was enable folder metadata.  The line the console is referencing in themescript.js is: 

var settingsJSON = JSON.parse(sessionStorage.settings);

That is part of a reverse proxy statement, and I have not set one up yet as I want to get it working inside my network before I set it up remotely.  Could my issue be something there?  A general Ubooquity option I am overlooking?  I don't know buddy, I am by no means an expert and I am confused as hell.

I remember once I had trouble installing in the C Drive in Windows. Moved to another drive and it worked fine. 

Darn I don't have that option.  I am running the Ubooquity docker on Unraid.  I guess I never really mentioned my set up.  Is there any chance there could be a permission issue?  I can't see it as Ubooquity works fine without the theme but kind of grasping at straws at this point.

Well fuck, no sooner do I post my last response I figure why not switch and try it again.  Guess what is working now with no console errors?  I gotta say I have no clue what happened, I did not restart server, the only docker restart was when I switched it over just now, and no settings were touched.  Thanks for your help bud, sorry it was kind of wasted.

I can now read the full title of the comic in the drop down :) 

why though? What are you using to grab them? Looks like you're missing out on post-processing, whatever it is.  Use Advanced Renamer to replace all that junk with nothing.

i might have missed it is there a way for New to show only the weekly books from a list based on release date? 

I'm switching over from the Plex theme to this one, since the community here seems more active and the theme looks great.  I am having a couple of issue though and was hoping someone could point me to the right places in the code. 

1.  The Read dropdown/hover-over does not appear if using folder groupings.  It works on the homepage and if grouping is set to none.  Is this by design or is it a bug?   I use up to 4 levels of nested folders to organize my collection, so a flat structure doesn't really work for me.  

2.  Same as above on the reading progress.  Only shows up on a flat structure.  I have some code I helped hack together from the Plex theme to show unread/page x of y/completed that works if necessary.  

3.  Image sizes for cover art are not showing a consistent size.  I think martin harrington may have figured this out.  Can you point me to the code block for this and/or share the code?

4.  File name getting truncated on the Read dropdown.  Again, I think martin figured this out as well.  Can you point me to the code block for this and/or share the code?


Hi, welcome!  Everyone that joins adds to the development of this theme, and maybe even helps out Tom in his development.

1: Not sure what you mean. Do you mean this?  BTW you can just copy from Snipping Tool and paste directly in here.

Yes, mine says Comics/Comics - I messed up the code on mine and Publishers doesn't exist anymore.  :/

2: Probably only shows up while using the built-in Ubooquity structure as I think the links use Ubooquity's database links, instead of the folder/file path.  Good news though! Since you're in this theme now, it actually supports your nested folder structure.

For example, I organized all my DC stuff according to the story-arcs, sort of. NEW 52, DC ZOOM, REBIRTH, CONVERGENCE, they all have their own folders inside of my DC folder and each page has a hotlink that can jump to any other subgroup.

In your folders, copy this html file and update it as you need. The 6-digit code in the middle of the path (ex: 411615) is the URL path when you're in that folder while in the default Ubooquity view.


Once you're done, you will have buttons like this, and the file needs to exist in each folder to create the buttons there and tell which one is active.

3: Need a pic here too.  There is no code in this theme that locks covers to a specific size or ratio, it is intended that you get all covers from Comixology, which are all the same square size anyway.

4: comixology.css

Here. I fixed the Bookmarks page too. But as you can see I had to move the .content-subtitle stuff down to allow for two lines in the Title, it looks dumb with only one line, and it gets over-ran if there are 3 lines in the title. I'm going to put mine back to "overflow:hidden". Maybe you can figure out how to dynamically change the margin-top based on the lines of text in the Title.

Here's the copy that just fixes the Bookmarks page, sort of.


Thanks for the great info!  I'll play around with it some more this weekend.  

Regarding #1, I was referring to this hover-over showing up for Latest and Random, but not showing up when browsing the comics grouped by folder:

Same type of deal when clicking to get a full page of New or Random, there's a Read button, but not when browsing grouped by folder:

Regarding #3, this is what I meant about the images:

Maybe the Plex theme is handling this if just using the cover image within the cbr/cbz file rather than a scrape.

I haven't leveraged the metadata/scraping yet as I haven't had a chance to look into how that would work with my file naming convention.  

Anyway, more playing around this weekend.  Thanks again for the response and the helpful info!

I made some changes to the comixology.css file if using the default cover art rather than the scraped covers.  

This fixed foldouts, but resulted in some slight clipping for off-sized covers.

Here's the code snippet if anyone's interested:

.thumb img {    
/*altered to fixed width and height and positioned so front/back cover art displays front cover    
some clipping on odd-sized covers*/    
position: relative;    
overflow: hidden;    
z-index: 2;    
bottom: 0;    
left: .5px;    
width: 156px;    
height: 245px;    
object-position: right bottom;    
object-fit: cover;    

can send you my heavily modified css if you want it. See images above

Hey Martin, 

Yes, please!  I like the changes you've made.


Would it be possible to post it for everyone? I would love to have that option. I'm still running an extremely old version as I haven't updated and I'm not sure if there's an easy way to upgrade to the latest commits.

What is the current updated update to the updater that updates things?

and where is it found?

the main link in the OP says...

page w/ theme is https://github.com/scooterpsu/Comixology_Ubooquity_2

and an album looksy is kept here:https://imgur.com/a/786RDqI

the github page shows code is untouched for two years... (is this true?)

It would be awesome if this were in a GitHub repo, since that'd be helpful in pointing out changes you made. First thing I noticed in the themeScript was that you changed "books" to "magazines". This is a minor thing, but it means there's a lot of little changes just being passed of as the "latest" version.

Anyone able to help with a couple of things:-

1. I seem to be missing book numbers under titles, it used to say how many books were in a series folder.
2. Anyone know how to make book titles flow on to a second line if it's too long rather than just ...

Thanks in advance.

checkout my posts above, download my modified version.  

That seems to do some things, but not quite.

Number of books is there - check

Long titles flow on to next line but only on the individual issues, not the series folders, and when it does it overlaps the number of books. (I presume the container needs to be bigger)

Could you point me in the direction of which css file these changes are made in as there's quite a few changes you've made that mess with the layout and don't look quite right for my setup.

OK, I got the number of books/comics to show so just need to figure out the long titles

Fixed! I also now have the number of books/issues in the correct colour to go with the backgrounds for each publisher.

that's weird, it works perfectly on mine, see images above. did you just grab the odd file rather than the whole pack? 

also try Ctrl+f5 and use the function top right to clear the cache?

How do you use the pagebuilder? Does the comics need to be in a certain folder structure?

I believe it did require a specific folder structure, and Scott hasn't updated the script in years. there was never any documentation, I'm not sure anyone actually got it working, other than him.

I just manually build a series.json file whenever I add a new comic. it only takes a minute to find the comixology page, save the image, copy this file over, and throw the info in.


I use the tool https://github.com/CuddleBear92/Ubooquity-Themes/ to scrape the comixology site once every couple of months and that gives you the folder, the image and the json. If I have one missing between scrapes I do the same as you Bobby and just create one. 

Which script do you use? I could never get it to work when I tried.

it took me a few goes. You need to get all of the files from the GIT repo not just the one script, that's where I went wrong initially. Then I use the following line C:\Python37\python.exe comixology-to-ubooquity.py --scrape-series -D 2 1 -ss -sp

yep that sounds like my issue, I think I cherry picked the script I thought I needed. Thanks for the help.

Every time I want to use the PageBuilder I get the following error:

Downloading comic data
jq: error: Cannot index array with string
jq: error: Cannot index array with string
jq: error: Cannot index array with string
jq: error: Cannot index array with string
Building comic json
PageBuilder.sh: line 57: ./temp/series.json: No such file or directory
mv: cannot stat './temp/series.json': No such file or directory
Usage: ./imageGet.sh -c 'Comic Name' [-d 'Comic Year'] [-r 'Which result to save']
Downloading from comicvine.
curl: no URL specified!
curl: try 'curl --help' or 'curl --manual' for more information
No cover.jpg found. Using fallback.jpg.

Geeze, I do not know how to do javascript.... Anyway!   I found that if you're using Story Arcs, or have other comic paths setup, then line 369 in themscript.js needs to be updated to look at breadcrumb item 2, instead of 1.


var publisher = $('#cmx_breadcrumb a:eq(1)').text();


var publisher = $('#cmx_breadcrumb a:eq(2)').text();

Hey I figured it out! What I did was get the length of the breadcrumb trail and subtract one, to always get the name of the parent directory. I did this because I have a lot of comics organized based on Event, such as in the picture.

New Code starting around line 367:

        var curloc = 2
        if ($('#cmx_breadcrumb a:eq(0)').length > 0){
            var curloc = $('#cmx_breadcrumb a').length - 1;
        var publisher = $('#cmx_breadcrumb a:eq('+curloc+')').text();

        publisher = publisher.replace('_', '');


Now the label on the right side will always show what directory you're in.  I also replaced any underscores in the folder name, because of how I used to organize my Event folders. I haven't figured out where the name is stored for the section on top, and probably won't bother.

Oh, here. I'll just make it easy and provide the actual file.


Alrighty,  I revisited the whole "text wrapping" vs "ellipses" issue and decided that I didn't like where the "Issue x" was sitting for this.  So, I swapped their positions, and made the title box larger to fit 3 full lines. Yes, I also updated the Bookmarks page.

I used Rick and Morty as my basis, because those titles can get long.  ( A caveat, I solely use Ubooquity on my tablet. I setup a scripted shortcut on my home screen that opens directly to my Publishers page and hides the notification bar and bottom buttons to give full screen, so I never visit the Home page of Ubooquity.)

Here are screenshot and my file.



Now that I've dug more into this, I think I found the portion gets the "Read Progress" of each comic but cannot find the function "returnval" that is being called. I think this can be edited to give the number of "Unread" comics instead of total, but I cannot figure out where the function lives that is doing the scraping. I'm sure it's in the Ubooquity.far files, but I have can't find it.


It did slightly increase the vertical spacing.

Really great, I like it

could you explain how you switched the positions of the issue no. and title please?

it's just positioning and z-index. If you inspect the issue number you'll see it has a large negative number on it now, to bring it above the Title that it is built after. I also needed to massively increase its vertical size, because the read button is built after it.

I went ahead and found the size for the title on the Home screen. Set the height in Comixology.css

.list-container .cellcontainer .content-title {
    font-size: 15px;
    height: 35px;

so I'm feeling like a real idiot here

This is my actual folder structure:

which is shared thus:

I've got these settings in settings.js

but for some reason I've got:

it's showing random, despite that being false and publishers has replaced comics

and when I click it, it just takes me to root:

if I click comics:

I don't suppose anyone knows why this is happening to me?  Any help would be HUGELY appreciated


Read the description on the settings. Showrandom is for that section showing up on the Home screen.

The Comics/Comics section, then going to Comics/Publishers can be confusing, this happens because you have multiple sections Comics and Events (Story Arcs). If you had only the Comics section then the Publishers button would take you straight in there. It does this because if you have another comics section, it is shared at the same level and the system needs to allow the user to pick which they want to enter.

As I'm catching up I realized it would probably make sense if showRandom also hid those, so that's getting rolled into the next update.

Ah thanks for that - I managed to work it out and it's all appearing exactly as it should now!

Only other thing I'm hoping to figure out is whether there's a way to automate getting a folder.jpg and series.json added/generated when a new folder gets added?

I've got Mylar sourcing comics for me, would be great to also automate this bit so it's completely taking away the manual steps.

Good to hear. I'm guessing you edited the text of the Publishers button in the .js file, and did a remove on the line for the Random button.

I use Mylar as well, and have considered editing the metadata grabber, but that program is hundreds of files each thousands of lines long. I just can't find it. If you can, it's a matter of getting the square image in comicvines search, for the folder.jpg, though theirs aren't the cool customs thumbs that comixology has. And generating a series.json would be simple, but comicvine doesn't have a series synopsis to parse either, atleast you could get the page setup though.

What do you need help with in regards to Mylar? I am the unofficial QA, and I'm constantly bringing stuff like this to evilhero and others who help code it, so if there's something you would like, let me know and I'll get a bug report/feature request in for it.

Awesome, thank you. Honestly, if you can point us in the direction of the metatagger script, we can probably figure this out. I doubt evilhero cares to bother with some custom features for a single theme on Ubooquity when they're currently busy getting the Python3 code cleaned up.

It would be great if the metadata parser had an option to download the thumbnail image of the Comicvine search result, which is nested under "img imgflare" in its inspection, and save it as "folder.jpg".  The 2nd, and easier, part is to create a "series.json" file in the comic directory with the below format. Without this file the directory is missing some custom features.

{"metadata": [{ "type": "comicSeries", "publisher": "Oni Press", "name": "Rick and Morty", "year": "2015", "description": "Description Here"}]}

Here's my file because I can't get it format in this forum.


eh, you'd be surprised. The Python3 stuff is pretty much done, as the py2 branch is dead and buried, and py3 has been the only active development branch since...October? He's working on a bunch of re-write stuff, but I think this would be easy enough to get added, even if it is only for one theme, a lot of us used or used Ubooquity (including himself) for reading the comics, so I'll poke him later today.

So evilhero just pointed out that the folder.jpg is already being written out when you enable the option, and it (usually) gets updated each time there's a new comic if you tell it to do that. Here's the screenshot from the Advanced Settings tab in question:

As for the series.json, we're talking about it now so it won't be quick, but we are discussing how it might be able to be done.

EDIT: That only spits it out as cover.jpg, not as folder.jpg. I'm talking to him about either adding an option to name it folder.jpg, or possibly do both. If you want to join in, we're on IRC on the Freenode network in #mylar.

I saw this and joined an IRC chat, for the first time ever, 4 hours later, via the link in Mylar's settings page. Looks like it's just me in there, Red_M_ is afk

Renaming the regular cover.jpg file to folder.jpg doesn't work for this because the folder.jpg is actually a square thumb. Ubooquity actually scrapes the cover of the first comic in each directory itself and will display that as the folder image if one doesn't exist.

I actually thought the series.json creation would be easier since the data is actually already being parsed from Comicvine in the metata, the description for the series on Comixology is usually just the same thing Comicvine has for the first issue.

hrm, are you sure you're on irc.freenode.net and that you've registered your nick to join #mylar? evilhero and I are chatting away right now about the JSON stuff, actually right now.

What about using https://webchat.freenode.net/ and joining #mylar? That should work.

OK, I don't know which channel you're in that you see Red_M_, but you need to register your nickname (Freenode tells you how when you login) so you can join #mylar. Once you register your nickname, we can figure out what it is you're trying to do.

Latest from evilhero: PR coming in a few hrs - covers both cover/folder.jpg as well as writing out series.json to the series dir.

So there you have it, Mylar will be doing both.

Guys I used Mylar for quite some time but once 32p shutdown it seemed kind useless. Are you using usenet as your sources now?

I use AirDCPP, DDL and usenet for my sources. DDL is an amazing feature that evilhero added.

I use AirDC++ myself. I thought mylar only used torrent/usenet 

nah, he added Getcomics a long time ago and it's pretty good now. But yeah, I use usenet for everything

I download the weekly packs, then manually post-process all of the comics to pick up what I've got in my Wanted list. barbequesauce is looking into adding DC++ support to Mylar, but it's slow going but if he's able it pull it off, it would be similar to torrents/newsgroups.

thats amazing, it never occurred to me that we could get the feature added to Mylar. I'll be obsessively checking for Mylar updates lol

He's holding off on adding the feature right now as we're waiting for Bobby Hill to hop in so we can clarify what exactly he's looking for. The channel's had the registration requirement removed as well, so it should be a lot easier to connect and join up now.

Oh I gave up on the Random thing - not a big deal to me.

It was your advice on sorting folder structure that sorted me out!

I'm now trying to work out where the Publisher link and image are sourced from on an individual comic

They're all working fine, except for one publisher (Marvel) which gives me the default folder image and a link to a folder that doesn't exist


The publisher ID cache might've associated the wrong thing with Marvel. At the top of the page, click the username and choose Clear Cache. Then go back to your publisher page and it should start a new array.

you star, that's worked, thanks!!

So coming back to this thread after a couple of years being away, what's the latest link to the actual theme that people are using? I know Mike Waters and Bobby Hill have gotten fixes, but I'm not seeing a current package of everything so that I can nuke my current theme and put the new one in its place. Any help would be very much appreciated.

The main link is still it.  Martin and I have done some custom work, to fit our individual wants, but it's all just edits of the comixology.css & themescript.js files, and we just share them here. You simply just copy/paste the files into your theme directory.

I did go ahead and submit my getSeriesJson edit to the github master, but I have no idea if Scott is even still alive, he hasn't visited this forum in a long time.

is it maybe an idea then for someone who is more active in the community to fork the master and keep it updated? 

Well here's mine then I guess.  It's a more mobile friendly version with larger button up top, in the dropdown, and in the breadcrumb trail.  I s'pose I'll try to keep it updated as I make changes, but I don't forsee myself doing anything more unless we can crack the ability to only display the number of issues unread instaed of the total, but we can probably get that into a toggle in Scott's version too.

Budlyte/Comixology_Ubooquity_2 (github.com)

I'll take a look at adding a toggle for those changes. The mobile-friendly css could likely just get wrapped in a media query, since it's only useful on smaller screens. Might be worth taking a look at that. https://www.w3schools.com/css/css_rwd_mediaqueries.asp

That's true, but I got an abundance of email notifications in the last couple days so I figured I'd see what's up. It's definitely been a while.

I'm not sure how you submitted the edit, but there's no active pull requests on the git. I'm happy to check it out if you wanted to submit one.

Just as a general "hey look, I'm back sorta", I'm more than happy to add any features bouncing around in this thread, as long as anything new is a toggle. My goal was definitely to replicate the Comixology layout directly, so anything that veers away from that in a more permanent fashion isn't something I'm looking to add. I'll never turn down the option of more options.

If there are code edits, feel free to submit a pull request on Github and I'll take a look and merge if they don't contradict what I just said. The idea of using Github to host this was for people to be able to contribute (and it being free), so using those built in abilities via Pull Requests would be handy to facilitate that.

Scott, welcome back! sorta.  Your theme is wonderful and pretty simple to edit by tracking things down with Inspect.

I figured you want to stay as close as possible to the source material, hence my own custom "upgrades" for my specific needs and simply sharing them here. I suppose we could work to change the "mobile" button to have the them load up a more mobile friendly css file, instead of jumping to that "Just use a OPDS app" landing page. The only real fix I have is the one I submitted now, I apparently didn't hit the Commit button on my pull request earlier...

Since you're here.....  could you tell me where the Read Progress data comes from?

I think I found the portion that gets the "Read Progress" of each comic but cannot find the function "returnval" that is being called. This seems like it could be edited to scan for comics in the directory that are a % complete, to be determined in Settings.js but defaults to 95?, and only count those.

Thanks! Glad it worked out that way, it was a big reason I rewrote a lot of the code between version 1 and this one.

Sounds good, I saw your pull request. I think you intended that to come off of the patch-1 branch, since every commit you added since is also ending up in the PR. I'm all for adding that breadcrumb fix and what I'm assuming is a conversion from space to tabs or vise-versa.

The "returnval" is the value returned from Ubooquity's built-in "bookmark" (actually read progress) API, run for each issue as it loads. What you're describing for a folder unread count would be something that checks every issue in every subfolder. That's a lot of calls each page load, so that might not be a great idea.

Thank you.  yeah the replacement for underscores is really just my thing, it will probably never affect anyone else. My old way of organizing folders of events in my library, before you implemented this theme and those hyperlink buttons, was to have them in folders that started with an underscore (IE:  _Rebirth) so that they appeared at the front of my directory, and so those messed up names ended up appearing in my new link on the right.

This pic shows it.  Honestly, the better approach may be to replace underscores with spaces, in case someone out there has their directory names setup with underscores instead of spaces, which is likely to happen on Linux. I just tested it, it doesn't break the page.

What I meant was, you did your PR off of your master branch, so after the change you intended the next one was https://github.com/Budlyte/Comixology_Ubooquity_2/commit/c2a51f61297713276a8fc9cc9fd8f225cccfed08

But yeah, I just saw your new PR. Using a space is a good idea. After I accept that I'll add a filter on folder names, so your _New 52 will just be " New 52" so it's alphabetically first but looks better.


Alrighty, so after catching up on what I missed, I believe I've incorporated most of what people are looking for. The new update is here https://github.com/scooterpsu/Comixology_Ubooquity_2/releases/tag/v3.5 with a break down of what has been added/changed.

The only thing it seems people are looking for that I didn't add is better css for mobile use. Rolling in some changes inside of media queries would allow the base css to stay as-is, while working better via mobile. That's not something I'm looking to do, but I'll gladly take a Github Pull Request if someone adds it.

I wonder if it would be possible to have some kind of read/unread flag, even if it's manual for individual comics and whole series?

There's the progress bar that shows up if you're using the built-in reader, but not something you can toggle.

Beyond that, it gets more complicated. If you wanted, say, every issue that is beyond 85% read, you'd need to cache the IDs for each issue of the series. Then ping that through the built-in progress API for each of those IDs. That would lead to just hammering the crap out of the server if you were on a page with a lot of series on it. Since the read status persists across devices, it's not something I'd want to just store locally or it'd occasionally be wrong.

Obviously I'm speaking more as something to add on my end, this does seem like something Tom could add to Ubooquity itself.

This is something that Tom has marked as "Planned", though he's been mostly MIA for long time now.  But, hey, you returned from the grave, so there's still hope!  =D

You'll see my post in there, I'm pretty sure I damn near edited this theme so that it would have marked every comic in my library as currently being on the last page in my attempt to add a button for "Mark as Read".   Probably best if I create a duplicate of my Ubooquity and play in that one if I ever bother with that again!

mark readed comics / General / Ubooquity (userecho.com)

Did you post your code attempt anywhere? Your post about your attempt just links back to this thread, and if it's here I can't find it.

Negative, as indicated by me playing with my active copy of Ubooquity, I'm not great about version handling and document control.  

No problem, this exact problem is why I started using GitHub in the first place.

Just released a small update to cover some changes to series.json in supporting Mylar's new built-in creation.

Nothing will need to change with existing files, this adds support for the new files while still supporting the old ones.


Since the books section has gotten less attention, I wanted to expand that a bit. Now there's a new series.json format for author bio pages. (With an example on the GitHub page).


I made some changes with how labels are handled for books, so hopefully I didn't break anything comic-related. If I did, please let me know.

Also the new Mylar-created series.json has more info, so I added an option to use the publication run for the year field on the series page (2016-2019) instead of just (2016).

Also I updated to the latest jQuery, just to not have that old lib hanging over my head.

Same link as before: https://github.com/scooterpsu/Comixology_Ubooquity_2/releases/latest