Saltar al contenido

Cambiar tema en una instalación de Jekyll existente

Presta atención porque en este post encontrarás el arreglo que buscas.

Solución:

Esto es lo que hice para cambiar el tema de una instalación de Jekyll existente. Ajuste estas instrucciones para que se adapten a sus necesidades.

Tira del nuevo tema

Creamos una nueva sucursal huérfana newtheme y asegúrese de que esté vacío.

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

Luego, incorporamos los archivos del tema agregando el tema como un control remoto ascendente. En este ejemplo, extraigo el tema Pixyll de John Otander master rama.

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

Crea el tema y pruébalo.

bundler install
jekyll serve

Fusiona tus cambios

Ahora fusionamos nuestras publicaciones, configuración, etc. Puedes usar Git checkout para copiar un archivo o carpeta de su antiguo sitio Jekyll. Tenga en cuenta que esto sobrescribirá el archivo del tema si existe.

git checkout master -- _posts

Alternativamente, puede copiar un archivo con un nuevo nombre, por ejemplo, para fusionarlo manualmente.

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

Si accidentalmente sobrescribió un archivo de tema, puede restaurarlo.

git checkout upstream/master -- about.md

Estos son los archivos que tuve que copiar, fusionar, ajustar o eliminar:

  • Archivos de Markdown en la carpeta raíz.
  • Publicaciones en el _posts carpeta.
  • Borradores en el _drafts carpeta.
  • los _config.yml archivo de configuración.
  • los Gemfile archivo de gema.
  • los CNAME archivo (para páginas de GitHub).
  • los Rakefile (Si alguna).
  • Los archivos de favicon (si los hay).
  • Cambios de tema manuales como Google Analytics, Disqus, campos de SEO (si corresponde).

Confirme sus cambios y no olvide volver a probar el tema.

Reemplazar la rama maestra

Finalmente reemplazamos nuestro master rama con el nuevo newtheme rama. Asumiendo que estamos en el newtheme rama:

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

Empuje los cambios.

git push

Y limpiar el local newtheme rama.

git branch -d newtheme

¡Eso es todo! Has reemplazado tu tema con éxito. Si hay algo que me perdí o si tiene algo que agregar, deje un comentario.


Actualizando el tema

Si en algún momento posterior desea actualizar el tema para incluir los últimos cambios ascendentes, simplemente:

git pull upstream master

Y solucione cualquier conflicto de fusión. Aquí asumo el upstream remoto todavía está configurado en el repositorio del tema (puede verificar esto con git remote -v).

Mientras tu podría migrar a una instalación existente bifurcando un nuevo tema y luego copiar y pegar manualmente recursos como CSS, JS, HTML en el _includes, _layouts y otros archivos que pueda necesitar, probablemente esta no sea una gran idea, ya que termina teniendo una combinación de recursos antiguos y nuevos, que pueden no tener el mismo nombre, pero en el escenario en el que lo son (por ejemplo, no no sobrescriba una hoja de estilo antigua a la que hace referencia su publicación), causará mixed hasta estilos CSS que tendrá que depurar y corregir lentamente.

Dado que supongo que tiene una instalación de Jekyll con Git (si no es así, debería hacerlo), puede crear una rama llamada new-theme y cambiar a esa rama desde el master como rama de trabajo. (Una forma sencilla de tener algo como esto es simplemente copiar toda la instalación de Jekyll y pegarla en otro lugar como old-Jekyll-install si no quieres lidiar con las ramas de Git (pero realmente deberías. Aquí tienes un tutorial que me ayudó a aprender)

  1. Baje los archivos del nuevo tema.
  2. Copiar manualmente _posts y sus cambios personalizados.
  3. Transfiera su _config.yml comparándolos manualmente y pasando por lo que sea necesario.
  4. Cree el sitio y vea lo que se está perdiendo, lo que podría estar estropeado (por ejemplo, en el pasado, podría haber agregado algunos
    etiquetas para el espaciado y no quieres eso en el nuevo tema).
  5. Fusionarse con master (o llevarlo a producción)

Dicho esto, todo esto es bastante manual y una molestia, pero al menos no tendrá que lidiar con conflictos en los recursos. los Abajo Sin embargo, de hacer esto es que su repositorio no se sincronizará con el repositorio de temas. Por lo tanto, no recibirá actualizaciones ascendentes. Todavía te sugiero que tenedor el repositorio de temas, transfiera sus personalizaciones personales para su sitio Jekyll y luego cambie el nombre de ese repositorio para producción. (esto, por supuesto, ya no usaría la instalación de Jekyll ‘existente’)

Jekyll v3.2 introdujo temas basados ​​en gemas (para planes futuros, consulte aquí):

Los temas basados ​​en gemas facilitan a los desarrolladores de temas poner actualizaciones a disposición de cualquiera que tenga la gema del tema. Cuando hay una actualización, los desarrolladores de temas envían la actualización a RubyGems

El objetivo de los temas basados ​​en gemas es permitirle obtener todos los beneficios de un tema robusto y continuamente actualizado sin que todos los archivos del tema se interpongan en su camino y compliquen demasiado lo que podría ser su enfoque principal: crear contenido.

Instalar un tema basado en gemas es simple:

  1. Agregue el tema al archivo Gemfile de su sitio: gem "jekyll-theme-awesome"
  2. Instale el tema: bundle install.
  3. Agregue lo siguiente a su sitio _config.yml para activar el tema: theme: jekyll-theme-awesome
  4. Construye tu sitio: bundle exec jekyll serve

Para cambiar de tema, creo que algo como esto debería funcionar:

  1. Cambie al nuevo tema en el Gemfile de su sitio: gem "jekyll-theme-new"
  2. Instale el tema: bundle install
  3. Cambia tu sitio _config.yml para hacer referencia al nuevo tema: theme: jekyll-theme-new
  4. Construye tu sitio: bundle exec jekyll serve
  5. (opcional: desinstale el tema antiguo de su máquina) Anote la carpeta de instalación del tema antiguo (bundle show jekyll-theme-awesome) y desinstálelo con gem uninstall jekyll-theme-awesome. Para estar seguro, asegúrese de que su carpeta haya sido eliminada.

Actualizar temas basados ​​en gemas es fácil:

Si tiene la joya temática, puede (si lo desea) ejecutar bundle update
para actualizar todas las gemas en su proyecto. O puedes correr bundle update , reemplazándolo por el nombre del tema, como minima, para actualizar la joya del tema. Todos los archivos nuevos o actualizaciones que haya realizado el desarrollador del tema (como hojas de estilo o inclusiones) se incluirán en su proyecto automáticamente.

Nota IMPORTANTE: en el momento de escribir este artículo, las páginas de GitHub solo admiten un conjunto específico de temas basados ​​en gemas: Arquitecto, Caimán, Mono, Hacker, Día intercalar, Merlot, Medianoche, Mínimos, Mínimo, Modernista, Pizarra, Táctil, y Máquina del tiempo. De ellos, parece que solo Minima está orientado a blogs (por ejemplo, es el único con soporte integrado para Disqus). Sin embargo, debería poder usar cualquier tema si está dispuesto a ejecutar el proceso de compilación de Jekyll usted mismo.

Otra alternativa son las páginas de GitLab (tutorial, sitio de muestra).

Si guardas algún titubeo o disposición de progresar nuestro tutorial puedes ejecutar una crítica y con mucho gusto lo observaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *