Jekyll Custom Plugin Deploy
How to deploy a Jekyll custom plugin.
As shown on the Github Pages docs. Github Pages cannot build sites using unsupported plugins.
Here is the list of approved plugins. Go to dependency versions.
As shown in this blog post Deploy Jekyll to Github Pages. You can use a gem to setup deployment of Jekyll when you are using custom plugins.
Update your Gemfile:
gem 'jgd'
Run bundle
$ bundle
Output:
Fetching trollop 2.9.9
Installing trollop 2.9.9
Fetching jgd 1.12
Installing jgd 1.12
Post-install message from trollop:
! The 'trollop' gem has been deprecated and has been replaced by 'optimist'.
! See: https://rubygems.org/gems/optimist
! And: https://github.com/ManageIQ/optimist
More about trollop in the official doc and this tutorial: writing a Ruby CLI using Trollop.
To deploy use this:
$ JEKYLL_ENV=production jgd
Change the source of your Github Pages
- Go to your Github repo
- Settings
- Options
- Scroll down to Github Pages
- Source
- Change your branch from
mastertogh-pages. - Save
Then deploy again:
$ JEKYLL_ENV=production jgd
Some of the output:
[DEPRECATION] This gem has been renamed to optimist
and will no longer be supported. Please switch to optimist
as soon as possible.
+ set -e
+ set -o pipefail
+ URL=https://github.com/...git
+ BRANCH=gh-pages
+ BRANCH_FROM=master
+ DEPLOY_CONFIG=_config-deploy.yml
+ BUNDLE=
+ DRAFTS=
++ pwd
+ SRC=/home/.../blog
++ mktemp -d -t jgd-XXX
+ TEMP=/tmp/jgd-NAn
+ trap 'rm -rf /tmp/jgd-NAn' EXIT
+ CLONE=/tmp/jgd-NAn/clone
+ COPY=/tmp/jgd-NAn/copy
+ echo -e 'Cloning Github repository:'
Cloning Github repository:
+ git clone -b master https://github.com/... /tmp/jgd-NAn/clone
Cloning into '/tmp/jgd-NAn/clone'...
remote: Enumerating objects: 3025, done.
remote: Counting objects: 100% (3025/3025), done.
remote: Compressing objects: 100% (1920/1920), done.
remote: Total 3025 (delta 1272),
reused 2692 (delta 954), pack-reused 0
Receiving objects: 100% (3025/3025), 31.22 MiB
| 13.20 MiB/s, done.
Resolving deltas: 100% (1272/1272), done.
+ cp -R /tmp/jgd-NAn/clone /tmp/jgd-NAn/copy
+ cd /tmp/jgd-NAn/clone
+ echo -e '\nBuilding Jekyll site:'
Building Jekyll site:
+ rm -rf _site
+ '[' -r _config-deploy.yml ']'
+ jekyll build
Configuration file: /tmp/jgd-NAn/clone/_config.yml
Source: /tmp/jgd-NAn/clone
Destination: /tmp/jgd-NAn/clone/_site
Incremental build: disabled. Enable with --incremental
Generating...
Jekyll Feed: Generating feed for posts
done in 1.67 seconds.
Auto-regeneration: disabled. Use --watch to enable.
+ '[' '!' -e _site ']'
+ cp -R _site /tmp/jgd-NAn
+ cd /tmp/jgd-NAn
+ rm -rf /tmp/jgd-NAn/clone
+ mv /tmp/jgd-NAn/copy /tmp/jgd-NAn/clone
+ cd /tmp/jgd-NAn/clone
+ echo -e '\nPreparing gh-pages branch:'
Preparing gh-pages branch:
++ git branch -a
++ grep origin/gh-pages
+ '[' -z '' ']'
+ git checkout --orphan gh-pages
Switched to a new branch 'gh-pages'
+ echo -e '\nDeploying into gh-pages branch:'
Deploying into gh-pages branch:
+ rm -rf 404.md about.md assets CNAME _config.yml Gemfile
Gemfile.lock _includes index.markdown _layouts _posts
+ cp -R /tmp/jgd-NAn/_site/404.html /tmp/jgd-NAn/_site/about.html
+ rm -f README.md
+ git add .
++ date
+ git commit -am 'new version Thu 08 Oct 2020
12:10:05 AM EDT' --allow-empty
[gh-pages (root-commit) a36ecd2] new version
Thu 08 Oct 2020 12:10:05 AM EDT
819 files changed, 61268 insertions(+)
create mode 100644 .github/FUNDING.yml
create mode 100644 .gitignore
create mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Cache/b7
...
+ git push origin gh-pages
+ sed 's|https://github.com/...|[skipped]|g'
remote:
remote: Create a pull request for 'gh-pages' on GitHub by visiting:
remote: https://github.com/.../pull/new/gh-pages
remote:
To [skipped]
* [new branch] gh-pages -> gh-pages
+ echo -e '\nCleaning up:'
Cleaning up:
+ rm -rf /tmp/jgd-NAn/clone
+ rm -rf ''
+ rm -rf /tmp/jgd-NAn
See Jekyll without Plugins for other customizations.