53

Jekyll には多くのテーマがあります (例: https://github.com/jekyll/jekyll/wiki/Themes )

既存の Jekyll インストールで新しいテーマに切り替える最も簡単な方法は何ですか?

4

5 に答える 5

22

新しいテーマをフォークして既存のインストールに移行し、CSS、JS、HTML などのリソース、および必要なその他のファイルを手動でコピー アンド ペーストすることもできますが、これはおそらく良い考えではありません。古いリソースと新しいリソースのマッシュアップ。同じ名前ではない可能性がありますが、同じ名前のシナリオ (たとえば、投稿が参照する古いスタイルシートを上書きしなかった場合) では、CSS スタイルの混合が発生します。デバッグしてゆっくりと修正する必要があります。_includes_layouts

Git を使用して Jekyll をインストールしていると仮定しているため(そうでない場合)、 というブランチを作成し、作業ブランチとしてnew-themeからそのブランチに切り替えることができます。master(このようなものを作成する簡単な方法はold-Jekyll-install、Git ブランチを処理したくないかのように、Jekyll インストール全体をコピーして別の場所に貼り付けることです (しかし、実際には、そうすべきです。学習に役立つチュートリアルを次に示します)。

  1. 新しいテーマのファイルをプルダウンします。
  2. _postsカスタマイズした変更を手動でコピーします。
  3. _config.ymlそれらを手動で比較し、必要なものを移動することにより、移植します。
  4. サイトを構築し、不足しているもの、混乱している可能性のあるものを確認してください (たとえば、過去<br \>に間隔のためにいくつかのタグを追加したことがあり、新しいテーマではそれを望まない場合など)。
  5. とマージするmaster(または本番環境にプッシュする)

そうは言っても、これはかなり手作業で面倒ですが、少なくともリソースの競合に対処する必要はありません。ただし、これを行うことの欠点は、リポジトリがテーマ リポジトリと同期されないことです。したがって、アップストリームの更新を取得できません。テーマ リポジトリをフォークし、Jekyll サイトの個人的なカスタマイズを移植し、そのリポジトリの名前を本番用に変更することをお勧めします。(もちろん、これは「既存の」Jekyll インストールを使用しなくなります)

于 2015-07-10T15:07:22.760 に答える
5

GH ページあり

これをテストしましたが、保存したいものが何もないプロジェクトとかなり単純なテーマで行ったので、複雑さが増すとうまく機能しない可能性があります。

  1. 安全のため、新しいブランチを作成してください

    git checkout -b newtheme
    
  2. そして、新しいテーマをリモートとして追加します

    git remote add new-theme-upstream https://github.com:drjekyllthemes/jekyll-minimal-theme.git
    git pull new-theme-upstream HEAD
    
  3. 厄介な部分は、マージの競合がたくさん発生することです。どのファイルに とのマージ競合があるかを確認してくださいgit status。うまくいけば、これらの競合は、上書きしたいスタイル ファイルにのみ存在するはずです。保持したいファイルがある場合は、テキスト エディターで編集することができます。git はファイルの変更にラベルを付けます。
  4. 原点にプッシュ

    git push origin newtheme
    
  5. github のプロジェクトのページに移動すると、次のように表示されます。
  6. プル リクエストを作成し、新しい変更をマージします。
  7. あなたのプロジェクトは依然として最初のテーマのフォークとして表示され、新しいテーマのアップストリームのプルリクエストを作成することはできません. ただし、次を使用して、新しいテーマの新しい更新をマージできます。git pull new-theme-upstream

gh-pages を使用していない場合、または github にプッシュする前に jekyll をローカルでビルドしている場合 (と思います)

テーマを個別のフォルダーとして git サブモジュールに保持し、jekyll の主要な要素をシンボリック リンクすることができます。これはgh-pages の粗雑な例では機能しません

blog
|
+-- theme_1/
|
+-- theme_2/
|  |
|  +-- _layouts/
|
+-- _layouts ln - theme_2/_layouts

そうすれば、テーマを変更するときにテーマが衝突しません。

于 2015-08-03T20:43:06.663 に答える