Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Randomize order of themes #4

Closed
daattali opened this issue Sep 7, 2015 · 11 comments
Closed

Randomize order of themes #4

daattali opened this issue Sep 7, 2015 · 11 comments

Comments

@daattali
Copy link

daattali commented Sep 7, 2015

This is an issue I've been wanting to open for jekyllthemes.org but it didn't make sense there because of pagination.

I think it's a little unfair for any themes that are not the last ones to be added that the order is chronological, because I assume most come to the site and look at the first few rows and the further down you scroll the more people you lose. Since all the themes are shown on one page, I think it'll be pretty easy to randomize the order of the themes on each page load. It could even be done with javascript.

I'm not sure if you guys agree with this idea or not, just my two cents.

@jacobtomlinson
Copy link

I've thought along similar lines and I did raise an issue on jekyllthemes.org along these lines a while back.

My ideal scenario would be to sort by date added automatically but then allow reordering alphabetically (which looks like it's already there), and by stars on GitHub. That would require some interesting scripting and may end up having to be a build time feature as I'm sure GitHub wouldn't want us making multiple API calls for every page load, however that conflicts with my desire to keep this simple GitHub pages with no build scripts.

Random could also be good as it would allow less popular themes to get to the top of the list.

@erlend-sh
Copy link

Yeah, I like the simplicity of a randomised order.

I don't really like the common practice of pushing the repos with many stars to the top. It's a bit of a "the rich get richer" sort of thing; you're rewarding the repos with good publicity with more publicity.

If I were to suggest a more advanced approach for a later iteration, I'd go with something like:

Randomise order within 4 different groupings (not necessarily with visible headers on the page) based on "freshness" of the code:

  • New (theme was updated in the last 2 months)
  • Recent (2-6)
  • Aging (6-12)
  • Old (12+)

This encourages developers to try by every once in a while and check that everything's OK, without really being able to game the system.

@daattali
Copy link
Author

daattali commented Sep 8, 2015

I also prefer not to default to "most popular" and I think a random order would be the most fair by default. @mushishi78 as the maintainer of this repo, what do you think?

@gynter
Copy link
Member

gynter commented Sep 8, 2015

Hmm we could indeed drop the whole list into a minified json file (date, title, author, thumbnail), then order it via javascript. This would also give the possibility to make loading while scrolling (i.e imgur style, also described in #2 (comment)), make a search box using js, and create fast filters using js (i.e select author from drop down etc).

@daattali
Copy link
Author

daattali commented Sep 8, 2015

@gynter yes that's a possibility. It can also be as simple as literally just putting some javascript that on page load looks at all the

  • tags in the theme list and just reorganizes them randomly. It's a bit more hacky I suppose.

  • @gynter
    Copy link
    Member

    gynter commented Sep 8, 2015

    I'd like that more, because since then for people like me, who have javascript disabled by default, can still see the content.

    @mushishi78
    Copy link

    @daattali All these guys are maintainers now, I've just been doing a lot over the last few days.

    @gynter I would put the data straight into the javascript file, as that's one less file to load and we don't have to add an ajax library to request it.

    We could also query GitHub for stats to get a feel for how well maintained the repo is.

    We could also add tags to the projects to filter by.

    I like the 'freshness' idea as default.

    @mushishi78
    Copy link

    I've added alphabetical, latest and shuffle to the main branch, with shuffle as default and no change for javascript turned off. But we can leave this issue open to discuss improvements.

    @daattali
    Copy link
    Author

    daattali commented Sep 8, 2015

    Nice! Thanks!

    @jacobtomlinson
    Copy link

    This is cool!

    Just a note on the sort by most stars. I think it is important to allow users to do that as I think they will want it. However I agree that it should not be the default.

    @mushishi78
    Copy link

    Added sort by stars.

    @gynter gynter closed this as completed Sep 28, 2015
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Labels
    None yet
    Projects
    None yet
    Development

    No branches or pull requests

    5 participants