Changer de thème dans une installation Jekyll existante

il y a de nombreux thèmes pour Jekyll, par exemple https://github.com/jekyll/jekyll/wiki/Themes.

Quelle est la façon la plus facile de passer à un nouveau thème dans une installation Jekyll existante?

35
demandé sur majom 2015-07-09 22:57:26

5 réponses

alors que vous migrer vers une installation existante en bifurquant un nouveau thème et ensuite copier et coller manuellement des ressources comme CSS, JS, HTML dans le _includes,_layouts et d'autres fichiers dont vous pourriez avoir besoin, ce n'est probablement pas une bonne idée car vous finissez par avoir un mash up de ressources anciennes et nouvelles, qui peuvent ne pas être du même nom, mais dans le scénario qu'ils sont (par exemple, vous n'avez pas écrasé une ancienne feuille de style que vos références post), il va provoquer des CSS mélangés styles que vous devrez débugger et réparer lentement.

Depuis que je suis en supposant que vous avez un Jekyll installer avec Git (si vous ne le faites pas vous devriez vraiment), vous pourriez créer une branche appelée new-theme et passer à cette branche de la master en tant que branche de travail. (Une façon simple d'avoir quelque chose comme ça est de simplement copier votre installation Jekyll et de la coller ailleurs comme old-Jekyll-install si vous ne voulez pas traiter avec Git branches (mais vraiment, vous devriez. Voici un tutoriel qui m'a aidé à apprendre)

  1. extraire les fichiers pour le nouveau thème.
  2. copier manuellement sur _posts et vos modifications personnalisées.
  3. Port-dessus de votre _config.yml en les comparant manuellement et en se déplaçant sur ce qui est nécessaire.
  4. construisez le site et voyez ce que vous manquez, ce qui pourrait être foiré (par exemple dans le passé vous pourriez avoir ajouté quelques <br \> balises pour l'espacement et vous ne voulez pas que dans le nouveau thème.)
  5. Fusionner avec master (ou le pousser à la production)

cela dit, tout cela est assez manuel et pénible, mais au moins vous n'aurez pas à gérer les conflits de ressources. l'inconvénient de faire ceci cependant est que votre dépôt ne sera pas synchronisé avec le thème repo. Donc vous n'aurez pas de mises à jour en amont. Je voudrais encore vous suggérons fourche le thème repo, port sur vos personnalisations personnelles pour votre site Jekyll, et ensuite renommer ce repo pour la production. (ceci n'utiliserait évidemment plus L'installation "existante" de Jekyll)

15
répondu matrixanomaly 2015-07-10 15:07:22

C'est ce que j'ai fait pour changer le thème d'un Jekyll installation. Adaptez ces instructions à vos besoins.

Tirez le nouveau thème

nous créons une nouvelle branche orpheline newtheme et assurez-vous qu'il est vide.

git checkout --orphan newtheme
git rm -rf .
git clean -dfx

puis nous y insérons les fichiers theme en ajoutant le thème comme une télécommande en amont. Dans cet exemple, je tire le thème Pixyll de John Otander master branche.

git remote add upstream https://github.com/johnotander/pixyll.git
git fetch upstream
git pull upstream master

construire le thème et tester il.

bundler install
jekyll serve

Fusionner vos modifications

maintenant nous fusionnons nos messages, notre configuration,etc. Vous pouvez utiliser Git checkout pour copier un fichier ou un dossier de votre ancien site Jekyll. Notez que cela écrasera le fichier du thème s'il existe.

git checkout master -- _posts

Sinon, vous pouvez copier un fichier sous un nouveau nom, par exemple de fusionner manuellement.

git show master:_config.yml > _config.yml.old

si vous avez accidentellement surdimensionné un fichier theme, vous pouvez le restaurer.

git checkout upstream/master -- about.md

Ces sont les fichiers que j'ai dû copier, fusionner, ajuster ou supprimer:

  • Markdown fichiers dans le dossier racine.
  • les poteaux dans le _posts dossier.
  • projets _drafts dossier.
  • _config.yml fichier de configuration.
  • Gemfile fichier gem.
  • CNAME fichier (pour les pages GitHub).
  • Rakefile (le cas échéant).
  • les fichiers favicon (le cas échéant).
  • changements de thème manuels tels que comme les champs Google Analytics, Disqus, SEO (s'il y a lieu).

valider vos modifications, et n'oubliez pas de tester à nouveau le thème.

remplacer la branche principale

Enfin, nous remplaçons notre master branche avec la nouvelle newtheme branche. En supposant que nous sommes sur la newtheme branche:

git checkout newtheme
git merge -s ours master
git checkout master
git merge newtheme

appuyez sur les changements.

git push

Et nettoyer le local newtheme branche.

git branch -d newtheme

C'est ça! Vous avez remplacé avec succès votre thème. S'il y a quelque chose que j'ai manqué, ou que vous avez quelque chose à ajouter, veuillez laisser un commentaire.


mise à Jour du thème

si par la suite vous souhaitez mettre à jour le thème pour y inclure les dernières modifications en amont, il vous suffit de:

git pull upstream master

et corriger les conflits de fusion. Ici, je suppose que le upstream remote est toujours positionné sur le dépôt du thème (vous pouvez vérifier cela avec git remote -v).

26
répondu Daniel Pelsmaeker 2016-10-10 13:06:57

Jekyll v3.2 introduite gem-thèmes (pour les plans futurs, voir ici):

grâce aux thèmes Gem, les développeurs de thèmes peuvent facilement faire des mises à jour disponible pour tous ceux qui ont le thème gemme. Quand il y a une mise à jour, les développeurs de thème poussent la mise à jour à RubyGems

le but des thèmes gem est de vous permettre d'obtenir tous les avantages d'un thème robuste, continuellement mis à jour sans avoir tout le thème de l' des dossiers se mettant en travers de votre chemin et compliquant ce qui pourrait être votre objectif principal: la création de contenu.

installer un thème gem est simple:

  1. ajouter le thème à votre Gemfile site:gem "jekyll-theme-awesome"
  2. installez le thème:bundle install.
  3. ajouter ce qui suit à votre site _config.yml pour activer le thème: theme: jekyll-theme-awesome
  4. Construisez votre site:bundle exec jekyll serve

Pour changer de thème, je crois quelque chose comme ceci devrait fonctionner:

  1. modifier le nouveau thème dans le fichier Gemfile de votre site:gem "jekyll-theme-new"
  2. installez le thème:bundle install
  3. Modifier la vous du site _config.yml pour référencer le nouveau thème: theme: jekyll-theme-new
  4. Construisez votre site:bundle exec jekyll serve
  5. (facultatif - désinstaller l'ancien thème de votre machine) Notez le vieux thème du dossier d'installation (bundle show jekyll-theme-awesome) et de le désinstaller avec gem uninstall jekyll-theme-awesome. Pour être sur le côté sûr, assurez-vous de son dossier a été effectivement supprimé.

mise à Jour de gem sur des thèmes est facile:

Si vous avez le thème gem, vous pouvez (si vous le désirez) run bundle update pour mettre à jour toutes les gemmes dans votre projet. Ou vous pouvez exécuter bundle update <THEME>, remplaçant par le nom du thème, tel que minima juste mettre à jour le thème de la gemme. Tout nouveau fichier ou mise à jour du thème développeur a fait (comme pour les feuilles de style ou comprend) sera tiré dans votre projet automatiquement.

Note importante: au moment de l'écriture, GitHub pages supporte seulement un ensemble spécifique de thèmes gem:Architecte, Cayman, Dinky,Pirates,Bissextile, Merlot,Minuit,a Minima,Minimum,Moderniste,Ardoise, Tactile et Time machine. Parmi ceux-ci, il semble que seule la version Minima est axée sur les blogs (par exemple, C'est la seule avec le support Disqus intégré). Toutefois, vous devriez être en mesure d'utiliser n'importe quel thème si vous êtes prêt à exécutez le processus de construction Jekyll vous-même.

une Autre alternative est GitLab pages (tutoriel,site échantillon).

4
répondu Ohad Schneider 2017-08-27 16:01:08

With GH-Pages

I testé cette, mais je l'ai fait avec un projet où je n'avais rien que je voulais sauver, et avec des thèmes assez simples, donc cela pourrait ne pas fonctionner si bien avec la complexité accrue.

  1. pour la sécurité, créer une nouvelle branche

    git checkout -b newtheme

  2. puis ajouter le nouveau thème à distance

    git remote add new-theme-upstream https://github.com:drjekyllthemes/jekyll-minimal-theme.git git pull new-theme-upstream HEAD

  3. la partie désordonnée, vous êtes va avoir un tas de conflits de fusion. Vérifiez quels fichiers ont des conflits de fusion avec git status, espérons que ces conflits ne devraient être que dans des fichiers de style que vous voulez écraser. S'il y a des fichiers que vous voulez garder, vous pouvez les éditer avec un éditeur de texte: git aura étiqueté les modifications dans le fichier
  4. Push-to-votre point de départ

    git push origin newtheme

  5. allez à la page de votre projet sur github et vous remarquerez quelque chose comme ceci:

  6. créer une pull-request et fusionner les nouveaux changements.
  7. votre projet va toujours se montrer comme étant une fourche du premier thème, et vous ne serez pas en mesure de créer des pull-requests pour l'amont du nouveau thème. Mais vous pouvez fusionner dans de nouvelles mises à jour pour votre nouveau thème en utilisant git pull new-theme-upstream

si vous n'utilisez pas gh-pages ou si vous construisez jekyll localement avant de pousser vers github (I pense)

Vous pouvez garder vos thèmes dans submodules, comme des dossiers distincts, puis lier des éléments clés pour jekyll. Ce ne travail gh-pages exemple brut blog | +-- theme_1/ | +-- theme_2/ | | | +-- _layouts/ | +-- _layouts ln - theme_2/_layouts De cette façon, lorsque vous changez de thème, les thèmes ne se heurtent pas.

3
répondu raphael 2015-08-06 15:10:05

la façon la plus simple de changer de thème dans une installation jekyll existante ou nouvelle est d'utiliser le plugin suivant: jekyll-à distance-thème