Display link to github for remote themes

Hi folks,

it would be nice if a remote theme page contained a direct link to the respective Github repo.
There is a link “About theme” which typically leads to a topic here on meta (where the link to github can be found) and the License link would typically link to the github repo. However, both of these are useless if you happen to fork a theme and make local modifications.

Maybe something like this could work?

image

Alternatively, the link could be below the Check updates button.

Also, now that we can import from specific branches, the branch itself should be displayed as well or at least the link to Github should go to that branch.

If this sounds reasonable, would you accept a PR?

8 Likes

Definitely would!

Be sure to include before/after screenshots as well :wink:

7 Likes

Hmm, I started working on this here, but am having two problems (I am Handlebars noob so they are probably trivial):

  1. In app/assets/javascripts/admin/templates/customize-themes-show.hbs, I would expect variable model.remote_theme.branch to work, but it doesn’t i.e it does not return the non-default branch that I imported.

  2. I will probably need a Handlebars helper to create a proper Github link for non-default branch, but I do not know where to put the code. I will need something like this:

Handlebars.registerHelper('getGithubUrl', function(baseUrl, branch) {
   if (! branch) { 
     return baseUrl;
   } else {
     // strip '.git' from the end, it is added there automatically in GitImporter
     var url = str.substring( 0, str.indexOf( ".git" ) );;
     return url + '/tree/' + branch;
   }
});

Sorry for noob questions, any pointers will be highly appreciated. :blush:

One quick note here, I am not too easy baking “GitHub” into our UIs here, we want to allow diversity here, if people want to use bitbucket or gitlab for themes it is A-OK.

5 Likes

Thank you! I wasn’t sure others are supported, will change it.

3 Likes

We should own this feature and not outsource it @sam

3 Likes

There is now a cool “Source” link for remote themes! :clap:

image

One minor improvement would be good though. The link always goes to the default branch, even if the theme was imported from a custom branch.

I clumsily tried to fix this, but couldn’t quite get there. I’ve submitted a draft PR if anyone was willing to help or pick this up. Thanks!

https://github.com/discourse/discourse/pull/9184

8 Likes

Nice fix, @vinothkannans can you review and a small js test maybe?

4 Likes

https://github.com/discourse/discourse/commit/48d690ae01e6a65c2c5ac7995b7e0b8a741599c2

It’s now merged in the commit above.

6 Likes