A plugin that adds a new Jekyll command to easily copy files and directories from a theme-gem to your site's source directory.
Add this plugin to your site's Gemfile:
group :jekyll_plugins do
gem "jekyll-extract"
end
...and run:
$ bundle
jekyll extract
command is meant to simplify accessing a Jekyll theme-gem and copying the files you wish to customize, to your site's configured source directory.
Run jekyll extract
with a --list-all
switch to get an idea about all files bundled in the current theme:
# demo using Minima v2.1.1
$ bundle exec jekyll extract --list-all
[...]
Listing: All files in current theme
* assets/main.scss
* LICENSE.txt
* README.md
* _includes/disqus_comments.html
* _includes/footer.html
* _includes/google-analytics.html
* _includes/head.html
* _includes/header.html
* _includes/icon-github.html
* _includes/icon-github.svg
* _includes/icon-twitter.html
* _includes/icon-twitter.svg
* _layouts/default.html
* _layouts/home.html
* _layouts/page.html
* _layouts/post.html
* _sass/minima/_base.scss
* _sass/minima/_layout.scss
* _sass/minima/_syntax-highlighting.scss
* _sass/minima.scss
To copy an entire directory over to the source directory (henceforth referenced by the phrase "extract to source"), pass the directory-path, relative to the gem, as the argument:
$ bundle exec jekyll extract _layouts
To extract multiple directories simultaneously, pass each directory path as arguments:
$ bundle exec jekyll extract _layouts _sass/minima
will extract contents of both _layouts
and _sass/minima
to source, creating the directories as required.
Similarly extract certain files like below:
To check what files are bundled in a particular directory, run the command with a --show
switch:
$ bundle exec jekyll extract _layouts --show
[...]
Listing: Contents of '_layouts' in theme gem...
* _layouts/default.html
* _layouts/home.html
* _layouts/page.html
* _layouts/post.html
Now, to extract just a couple of layouts from the list, run:
$ bundle exec jekyll extract _layouts/default.html _layouts/page.html
The above command will extract these two files to your site's source directory.
Bug reports and pull requests are welcome on GitHub at https://github.com/ashmaroli/jekyll-extract. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
The gem is available as open source under the terms of the MIT License.