new-xkit / XKit

Fork of XKit, the extension framework for Tumblr
https://new-xkit-extension.tumblr.com
Other
459 stars 135 forks source link

Enhance the extensions gallery with categories #390

Open 0xazure opened 9 years ago

0xazure commented 9 years ago

It would be nice to add some categories to the Gallery to help the end-user with things like extension discoverability. Some examples of categories:

The Gallery is a little small; I wouldn't mind seeing the window enlarged a bit and adding tabs for the categories along the side, kind of like how installed extensions are listed on 'My XKit'.

Wolvan commented 9 years ago

how would we do this? Would we add coma-seperated tags to the extension headers or something?

0xazure commented 9 years ago

Probably the easiest, short-term way would be to add additional keys to gallery.json and update xkit_preferences.js accordingly. Longer-term, categories should probably be managed more dynamically through some kind of web UI that's easy to update to reduce code churn as we cycle extensions in and out of categories like featured.

I'm undecided on if we should categorize extensions more granularly with categories like accessibility, etc. Maybe 'categories' is the wrong term; 'sections' might be more correct.

Wolvan commented 9 years ago

But how would we accomplish the web ui part? That would mean xkit_preferences.js would have to load another source just to get the sections/categories/tags

0xazure commented 9 years ago

Sure, so xkit_preferences.js could first try to reach a URL that serves dynamic (server-generated) enhanced gallery json and, failing that, could fall back to the static gallery.json file served from gh-pages.

We would, of course, need to build a web UI to manage this. Could be included with, or be separate from, XCloud functionality.

Wolvan commented 9 years ago

I had the idea to leave gallery.json unchanged, let that be loaded first by xkit_preferences.js. After successfully loading gallery.json we load another file (categories.json or something like that) which contains the categories + the extensions by name in those categories, which xkit_preferences.js then parses. In case of categories.json downloading failure, we can just put all the extensions into an untagged category