Post

Updating Chirpy Jekyll Theme

From time to time it is nessary to update the Chirpy theme I use here on my site. I end up failing to recall my steps everytime so I figured I better write them out and maybe someone might find it interesting.

Github sync

So I use the ‘production’ branch as what I base my site off of. So step one is to sync the production branch to my repos. I simply go to the branch and hit sync fork. I also do this for the master branch as well, for no reason. I dont make any changes to production or master branches, they are just replicas for my purpose.

Update the developmenet branch

I have a branch called mtcom-development where I do all my changes and inital blog posts editing. To sync this branch with the themes production branch I have to run the following.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
~/mindlesstux.com$ git checkout mtcom-development
Switched to branch 'mtcom-development'
Your branch is up to date with 'origin/mtcom-development'.

~/mindlesstux.com$ git pull
Already up to date.

~/mindlesstux.com$ git merge origin/production
Auto-merging _layouts/post.html
CONFLICT (content): Merge conflict in _layouts/post.html
Auto-merging _layouts/home.html
CONFLICT (content): Merge conflict in _layouts/home.html
Removing _javascript/modules/components/img-lazyload.js
Auto-merging _includes/head.html
Auto-merging _drafts/old_stuff/1970-01-03-getting-started.md
CONFLICT (content): Merge conflict in _drafts/old_stuff/1970-01-03-getting-started.md
Auto-merging _drafts/old_stuff/1970-01-02-write-a-new-post.md
Auto-merging _drafts/old_stuff/1970-01-01-text-and-typography.md
CONFLICT (content): Merge conflict in _drafts/old_stuff/1970-01-01-text-and-typography.md
Auto-merging _config.yml
CONFLICT (content): Merge conflict in _config.yml
Auto-merging Gemfile
CONFLICT (content): Merge conflict in Gemfile
Removing .github/ISSUE_TEMPLATE/feature_request.md
Removing .github/ISSUE_TEMPLATE/bug_report.md
Automatic merge failed; fix conflicts and then commit the result.

Deal with conflicts

Yay for conflicts of my changes.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
~/mindlesstux.com$ git status
On branch mtcom-development
Your branch is up to date with 'origin/mtcom-development'.

You have unmerged paths.
  (fix conflicts and run "git commit")
  (use "git merge --abort" to abort the merge)

Changes to be committed:
        new file:   .github/DISCUSSION_TEMPLATE/general.yml
        new file:   .github/DISCUSSION_TEMPLATE/q-a.yml
        deleted:    .github/ISSUE_TEMPLATE/bug_report.md
        new file:   .github/ISSUE_TEMPLATE/bug_report.yml
        deleted:    .github/ISSUE_TEMPLATE/feature_request.md
        new file:   .github/ISSUE_TEMPLATE/feature_request.yml
        modified:   .github/PULL_REQUEST_TEMPLATE.md
        modified:   .stylelintrc.json
        modified:   README.md
        modified:   _data/locales/de-DE.yml
        modified:   _data/locales/en.yml
        modified:   _data/locales/ru-RU.yml
        modified:   _data/origin/basic.yml
        modified:   _data/origin/cors.yml
        modified:   _drafts/old_stuff/1970-01-02-write-a-new-post.md
        modified:   _includes/comments/disqus.html
        modified:   _includes/comments/giscus.html
        modified:   _includes/comments/utterances.html
        modified:   _includes/embed/twitch.html
        modified:   _includes/embed/youtube.html
        modified:   _includes/head.html
        modified:   _includes/js-selector.html
        modified:   _includes/refactor-content.html
        modified:   _includes/related-posts.html
        modified:   _includes/toc.html
        modified:   _javascript/home.js
        modified:   _javascript/modules/components/clipboard.js
        deleted:    _javascript/modules/components/img-lazyload.js
        new file:   _javascript/modules/components/img-loading.js
        modified:   _javascript/modules/plugins.js
        modified:   _javascript/page.js
        modified:   _javascript/post.js
        modified:   _layouts/default.html
        modified:   _layouts/page.html
        modified:   _sass/addon/commons.scss
        modified:   _sass/addon/module.scss
        modified:   _sass/addon/syntax.scss
        modified:   _sass/addon/variables.scss
        modified:   _sass/colors/syntax-dark.scss
        modified:   _sass/colors/syntax-light.scss
        modified:   _sass/colors/typography-dark.scss
        modified:   _sass/colors/typography-light.scss
        modified:   _sass/layout/home.scss
        modified:   _sass/layout/post.scss
        modified:   assets/js/pwa/sw.js
        modified:   assets/lib
        renamed:    CHANGELOG.md -> docs/CHANGELOG.md
        modified:   docs/CONTRIBUTING.md
        modified:   jekyll-theme-chirpy.gemspec
        modified:   package.json
        modified:   tools/release

Unmerged paths:
  (use "git add <file>..." to mark resolution)
        both modified:   Gemfile
        both modified:   _config.yml
        both modified:   _drafts/old_stuff/1970-01-01-text-and-typography.md
        both modified:   _drafts/old_stuff/1970-01-03-getting-started.md
        both modified:   _layouts/home.html
        both modified:   _layouts/post.html

~/mindlesstux.com$

It could be worse, I only have to look at 4 files this time. I ignore the ones in _drafts. To modify those 4 files I tend to use VSCode with a git plugin to handle the compare.

VS Code Diff View

Though sometimes I forget that git status puts in things to identify changes. I just need to go back in and remove those ensuring the upstream and my changes are what I want.

VS Code Diff View

Push to github development branch

After that usually in VSCode I do the equivalent of git push to push the changes up into the repository. After that is done it takes just a moment for CloudFlare Pages to kick and pull the repo, build the site, and give me a semi temporary url to go view the results in.

Cloudflare Pages

Push to github production branch

After a quick review of does everything look good still? If it does I just switch the mtcom-production branch and pull changes from mtcom-development. It should have no conflicts and serves as the new production that github will pickup, compile, and publish for me.

This post is licensed under CC BY 4.0 by the author.

Site last built .
© MindlessTux. Some rights reserved.

Using the Chirpy theme for Jekyll.