ghost updateをすると編集したテーマファイルが元に戻ってしまう問題の解決策
以前Sourceテーマのファイルを編集して、タグ一覧のページを作りました。
この時はこれで満足していたのですが、Ghostのアップデートをするとテーマが入っているディレクトリが上書きされて、せっかくカスタムした部分が丸ごと消えてしまいました。
この記事では、この問題の対処法を記録しておきます。
ghost updateでテーマのカスタム部分が消える?
Ghostを入れているフォルダに移動して定期的に
ghost update
をするんですが、これをするとthemeディレクトリの中身も書き換えられてしまうらしい。
一旦、Tagsページを作った時の処理を再度実行して、元に戻しました。
前回記事のTagsページを作るコードを再掲。クリックで開きます
Ghostの入っているディレクトリに移動して、
cd /current/content/themes/source
touch custom-tags.hbs
nano custom-tags.hbs
{{!< default}}
{{!-- The tag above means: insert everything in this file into the body of the default.hbs template --}}
{{#post}}
<main class="gh-main">
<article class="gh-article {{post_class}}">
<header class="gh-article-header gh-canvas">
<h1 class="gh-article-title is-title">{{title}}</h1>
</header>
<section class="gh-content gh-canvas">
{{#get 'tags' limit='all' include='count.posts' order='count.posts desc'}}
{{#foreach tags}}
<a href='{{ url }}'>
<h2>{{ name }} <small>({{ count.posts }})</small></h2>
<img src='{{ img_url feature_image }}' alt='{{ title }}' style="height:128px;"/>
</a>
{{/foreach}}
{{/get}}
</section>
</article>
</main>
{{/post}}
ghost restart
さて、週に何回もupdateをするわけで、毎回こんなことをするのはなかなかめんどくさい。
対処法を調べました。
Official themeはghost update
で上書きされる
上記リンクで言及されているように、Ghostのofficial themeはghost updateを実行すると上書きされるようです。
上記ではCasperの話をしていますが、僕が使っているSourceも同様。
対策
この対策は3つくらいありそう。
1. updateの度にカスタムした部分を再度対応する
これが今回やったこと。
現時点ではカスタムしている部分が1つのファイルを追加するだけなので、それほど労力はいらないが、もっとカスタムが増えてくるとあまり現実的じゃない
2. カスタムしたテーマフォルダを別名で保存して、カスタムテーマとしてアップロードする
リンク先で提案されている対応方法。
これだとGhostのupdateをしてもテーマ自体に変更は加えられないので、気にせずupdateできる(らしい。未確認です。今度ghost updateしたときにその結果を書きます → update後もカスタム部分は消えずに済みました、よかった!)。
ただし、テーマ自体にupdateがあった場合に、新しいバージョンを使いたいなら再度編集し直してカスタムテーマとしてアップロードする必要がある。
1.と比べるとめんどくさい頻度は減るが、めんどくさい度合いはちょっぴり増えます。
3. テーマをGitHubからforkして編集。テーマのアップデートがあればマージしてサーバーにアップロード
多分これが一番管理しやすい。
ただこの辺の話に詳しくない(フォークとかマージとかなんとなくしかわかってない)ので最初に取り組む際に時間がかかりそう。
あとはテーマのアップデートがどれくらい頻繁にあるのかわからないので、それ次第なところもあります。ほとんどアップデートないなら2のやり方で十分かな。
現時点での僕の対応
とりあえず1.はGhostのアップデートのたびに毎回やるのは流石にめんどくさいので、ひとまず2.で対応することにする。
並行して3.についても調べながら、ワークフローが理解できたら移行しようと思います。
以下には2.での対応方法についてまとめておきます
カスタムしたテーマを別名で保存して管理する方法
以下の手順でカスタムしたテーマをGhostにアップロードして、新しいテーマを有効にします。
テーマのダウンロード
SourceテーマはGitHubにあります。
ここからテーマをまるっとダウンロードします。
緑色のCodeと書いてあるボタンをクリックして、Download ZIPを押します。
必要な編集
ダウンロードできたら、以下の編集をします。
- zipを展開してディレクトリ名の変更
- テーマファイルをいじる(僕の場合はTagsページを作る)
- zipする
Ghostにカスタムテーマとしてアップロード
テーマのアップロードは管理画面から可能です。
以下のように進んでいって、先ほど作ったzipファイルをアップロードします。
Settings -> Design & branding -> Change theme -> Upload theme
以下のリンクにもやり方が書いてありますので、必要に応じて参照してください。
テーマの変更
最後にアップロードしたテーマをActivateすればOKです。
大体の設定はなんとなく覚えているでしょうし、せっかくなのでいじってみてもっといい設定を見つけてもいいですが、Background colorだけはメモしておかないと感覚で戻すのは難しいです、というか多分むり。
おしまい
テーマのいじった部分が消えてしまったときはびっくりしましたが、あまりカスタムしてない状態でよかったです。
ブログ記事に変更部分をちゃんと書いてあったのも助かりました。
GhostのOfficial Themeをカスタムする際はお気をつけください。