# How to use remote theme?

**URL:** <https://talk.jekyllrb.com/t/how-to-use-remote-theme/2019>\
**Category:** Help\
**Created:** [August 4, 2018, 4:20pm UTC](https://talk.jekyllrb.com/t/how-to-use-remote-theme/2019 "2018-08-04T16:20:01Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![yashumittal](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.jekyllrb.com/yashumittal/32/1260_2.png) [@yashumittal](https://talk.jekyllrb.com/u/yashumittal)\
**Post date:** [August 4, 2018, 4:20pm UTC](https://talk.jekyllrb.com/t/how-to-use-remote-theme/2019/1 "2018-08-04T16:20:01Z")

</div>

Does anyone know how to use **remote themes**?

---

<div class="post-metadata">

**Author:** ![mmistakes](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.jekyllrb.com/mmistakes/32/2169_2.png) [@mmistakes](https://talk.jekyllrb.com/u/mmistakes)\
**Post date:** [August 4, 2018, 11:36pm UTC](https://talk.jekyllrb.com/t/how-to-use-remote-theme/2019/2 "2018-08-04T23:36:23Z")

</div>

Have you read the documentation? They’re pretty straight forward if you ask me.

> **[benbalter/jekyll-remote-theme](https://github.com/benbalter/jekyll-remote-theme)**
>
> Jekyll plugin for building Jekyll sites with any GitHub-hosted theme - benbalter/jekyll-remote-theme

---

<div class="post-metadata">

**Author:** ![yashumittal](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.jekyllrb.com/yashumittal/32/1260_2.png) [@yashumittal](https://talk.jekyllrb.com/u/yashumittal)\
**Post date:** [August 5, 2018, 7:50am UTC](https://talk.jekyllrb.com/t/how-to-use-remote-theme/2019/3 "2018-08-05T07:50:58Z")

</div>

It doesn’t support GitLab.

---

<div class="post-metadata">

**Author:** ![mmistakes](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.jekyllrb.com/mmistakes/32/2169_2.png) [@mmistakes](https://talk.jekyllrb.com/u/mmistakes)\
**Post date:** [August 6, 2018, 1:39am UTC](https://talk.jekyllrb.com/t/how-to-use-remote-theme/2019/4 "2018-08-06T01:39:05Z")

</div>

Couldn’t you just use a Ruby gem theme? GitLab supports them. Remote theme is more of a way around GitHub not supporting 3rd party theme gems.

If given the choice I’d go with a Ruby theme gem.

---

<div class="post-metadata">

**Author:** ![yashumittal](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.jekyllrb.com/yashumittal/32/1260_2.png) [@yashumittal](https://talk.jekyllrb.com/u/yashumittal)\
**Post date:** [August 6, 2018, 5:42am UTC](https://talk.jekyllrb.com/t/how-to-use-remote-theme/2019/5 "2018-08-06T05:42:27Z")

</div>

How to convert a customized theme into gem?

---

<div class="post-metadata">

**Author:** ![mmistakes](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.jekyllrb.com/mmistakes/32/2169_2.png) [@mmistakes](https://talk.jekyllrb.com/u/mmistakes)\
**Post date:** [August 6, 2018, 2:29pm UTC](https://talk.jekyllrb.com/t/how-to-use-remote-theme/2019/6 "2018-08-06T14:29:07Z")

</div>

Jekyll’s site is a good place to start with any of your questions. They cover how to convert a customized site into a Ruby gem.

> **[Themes](https://jekyllrb.com/docs/themes/)**
>
> Jekyll has an extensive theme system that allows you to leverage community-maintained templates and styles to customize your site’s presentation. Jekyll themes specify plugins and package up assets, layouts, includes, and stylesheets in a way that...

If you Google around there are also several blog post tutorials out there if you need more direction.

And finally, take a peek at Jekyll’s default theme Minima’s source. About the only difference is the presence of a `.gemspec` file that defines all the theme’s info and dependencies.

---

<div class="post-metadata">

**Author:** ![yashumittal](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.jekyllrb.com/yashumittal/32/1260_2.png) [@yashumittal](https://talk.jekyllrb.com/u/yashumittal)\
**Post date:** [August 9, 2018, 9:01am UTC](https://talk.jekyllrb.com/t/how-to-use-remote-theme/2019/7 "2018-08-09T09:01:19Z")

</div>

I have created a [Ruby gem](https://rubygems.org/gems/jasper-theme), thanks @mmistakes.

But I want to ask should I keep the icons inside a gem. What’s your suggestion?

---

<div class="post-metadata">

**Author:** ![mmistakes](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.jekyllrb.com/mmistakes/32/2169_2.png) [@mmistakes](https://talk.jekyllrb.com/u/mmistakes)\
**Post date:** [August 9, 2018, 12:11pm UTC](https://talk.jekyllrb.com/t/how-to-use-remote-theme/2019/8 "2018-08-09T12:11:17Z")

</div>

Not sure what you mean by icons. But if they are assets needed for the theme’s layout or UI then yes, bundle them in the gem.

Anything that isn’t user-generated or content related (posts, pages, assets for posts/pages) then you should bundle it in. This would be all layouts, includes, CSS, JavaScript, fonts, and images needed for the UI.

---

<div class="post-metadata">

**Author:** ![yashumittal](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.jekyllrb.com/yashumittal/32/1260_2.png) [@yashumittal](https://talk.jekyllrb.com/u/yashumittal)\
**Post date:** [August 9, 2018, 3:31pm UTC](https://talk.jekyllrb.com/t/how-to-use-remote-theme/2019/9 "2018-08-09T15:31:25Z")

</div>

Here’s the screenshot of the `_inclues` directory, in which I have few icons and currently I have bundled them in the gem.

![image](https://canada1.discourse-cdn.com/flex030/uploads/jekyllrb/original/2X/4/40d385c0a3b6b1178096efa23862e9447b0dfc23.png)

I have bundled them, what if user add his own icons? What will happen? Will it create some kind of conflicts? How to tell the user that there are icons already bundled inside the gem.

---

<div class="post-metadata">

**Author:** ![mmistakes](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.jekyllrb.com/mmistakes/32/2169_2.png) [@mmistakes](https://talk.jekyllrb.com/u/mmistakes)\
**Post date:** [August 9, 2018, 3:48pm UTC](https://talk.jekyllrb.com/t/how-to-use-remote-theme/2019/10 "2018-08-09T15:48:56Z")

</div>

It won’t cause any conflicts. I suggest you read [Jekyll’s full docs on themes](https://jekyllrb.com/docs/themes/#overriding-theme-defaults) (both Ruby gem and remote) work… it explains all of this well.

Any `_includes` and `_layouts` included in the theme can be overwritten locally. Meaning if for some reason I was using your theme and wanted to use a different version of your `web.svg` icon bundled in.

I could add my own version locally at `_includes/icons/web.svg` and Jekyll will use that instead. The same goes for any other include, layout, or asset you’ve bundled in the theme.

If the user wanted to add their own icons that aren’t in the theme bundle they can do that too. They’d just drop them into the appropriate folder and Jekyll will use them the same way as if you weren’t using a gem/remote theme.

All that’s really happening is Jekyll downloads the includes/layouts/assets from the gem/remote theme for you to use. Anything with the same path/filename in your local structure overwrites the bundled stuff.

---

<div class="post-metadata">

**Author:** ![yashumittal](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.jekyllrb.com/yashumittal/32/1260_2.png) [@yashumittal](https://talk.jekyllrb.com/u/yashumittal)\
**Post date:** [August 13, 2018, 9:25am UTC](https://talk.jekyllrb.com/t/how-to-use-remote-theme/2019/11 "2018-08-13T09:25:01Z")

</div>

Hey @mmistakes,

Is there any way to add the option that when the users install the gem it add some files to the directory?
