pages - jekyll static files
PublicaciĆ³n de Jekyll no generada (7)
He escrito pruebas Rspec para mi blog que expresan estas reglas:
require ''spec_helper''
require ''yaml''
# Documented at https://jekyllrb.com/news/2017/03/02/jekyll-3-4-1-released/
post_regex = %r!^(?:.+/)*(/d{2,4}-/d{1,2}-/d{1,2})-(.*)(/.[^.]+)$!
def date_in_front_matter(date)
return date if date.is_a?(Date)
return date.to_date if date.is_a?(Time)
return Date.parse(date) if date.is_a?(String)
end
describe ''posts'' do
Dir.glob("_posts/*md").each do |file|
basename = File.basename(file)
context basename do
front_matter = YAML.load(File.read(file).split(/---/)[1])
it ''filename must match documented post regex'' do
expect(basename).to match post_regex
end
it ''date in file name same day as date in front matter'' do
date_in_file_name = Date.parse(post_regex.match(basename).captures[0])
expect(date_in_front_matter(front_matter[''date''])).to eq date_in_file_name
end
it ''title in front matter should not contain a colon'' do
expect(front_matter[''title'']).to_not match /:/
end
it ''front matter should not have published: false'' do
expect(front_matter[''published'']).to_not be false
end
end
end
end
Esto puede ser útil para otros, ya que estaba perdiendo mucho tiempo debido a errores tipográficos en la fecha, etc.
Estas pruebas junto con el resto de la configuración Rspec se pueden ver en contexto here .
Estoy tratando de agregar una nueva publicación a mi sitio Jekyll, pero no puedo verla en las páginas generadas cuando ejecuto
jekyll serve
.
¿Cuáles son algunas de las razones comunes por las que no se genera una publicación de Jekyll?
Mi publicación tampoco apareció y el error fue que en mi nombre usé un punto, por ejemplo,
2017-10-18-test.2.md
.
Esto no es aceptado, debe usar
2017-10-18-test2.md
.
O también puede ser caché del navegador si no está buscando en la carpeta _site sino directamente en la página principal del blog con la lista de publicaciones.
Puede usar
jekyll build --verbose
para ver el proceso de compilación en detalle.
Salida de ejemplo:
Logging at level: debug
Configuration file: /home/fangxing/fffx.github.io/_config.yml
Logging at level: debug
Requiring: jekyll-archives
Requiring: jekyll-livereload
Requiring: kramdown
Source: /home/fangxing/fffx.github.io
Destination: /home/fangxing/fffx.github.io/_site
Incremental build: enabled
Generating...
EntryFilter: excluded /Gemfile
EntryFilter: excluded /Gemfile.lock
Reading: _posts/2018-01-14-new-post.md
Reading: _posts/2014-01-01-example-content.md
Reading: _posts/2014-01-02-introducing-lanyon.md
Reading: _posts/2017-11-21-welcome-to-jekyll.markdown
Reading: _posts/2018-01-14-boot-android-on-charge.md
Reading: _posts/2013-12-31-whats-jekyll.md
Skipping: _posts/2018-01-14-boot-android-on-charge.md has a future date
Generating: Jekyll::Archives::Archives finished in 0.000122873 seconds.
Generating: JekyllFeed::Generator finished in 0.000468846 seconds.
...
del registro que encontré jeklly se saltó
2018-01-14-boot-android-on-charge.md
porque tiene una fecha futura.
Solo para agregar una razón más, cuando mueves un artículo de
_drafts
a
_post
, a veces necesitas eliminar el
_site
para que el artículo se regenere.
En mi caso, a menudo sucede que
_site
no se eliminará por completo antes de la
_site
, por lo que el nuevo artículo no aparecerá.
De todos modos
rm -rf _site
y
bundle exec jekyll serve
works :)
Una posible razón es que la
date
especificada en el asunto inicial no contiene un desplazamiento de zona horaria, en cuyo caso se establece de manera predeterminada en UTC, no en la zona horaria de la máquina local como podría esperarse.
Perdí una hora en esto hasta que UTC "se puso al día" con mi zona horaria local actual, BST.
No he encontrado una respuesta definitiva a esto, pero creo que la fecha en el asunto principal debe darse en UTC con un desplazamiento de zona horaria (que se omite por defecto si se omite).
Así que la
date: 2018-05-03 12:34:27
está en UTC,
independientemente de en qué parte del mundo se encuentre, e independientemente de la configuración de la
timezone
en
_config.yml
.
Así que tenga cuidado de especificar fechas como esta:
date: 2018-05-03 12:34:27 +0100
-
La publicación no se coloca en el
directorio
_posts
. -
La publicación tiene un título incorrecto.
Las publicaciones deben llamarse
YEAR-MONTH-DAY-title.MARKUP
(YEAR-MONTH-DAY-title.MARKUP
cuenta la extensión.md
, que generalmente es.md
o.markdown
) -
La fecha de publicación es en el futuro.
Puede hacer que la publicación sea visible estableciendo
future: true
en_config.yml
(documentation) -
El post ha
published: false
en su tema principal. Ponlo entrue
. -
El título contiene un:
personaje.Reemplácelo conFunciona en jekyll:
.3.8.3
(y probablemente en otras versiones ''recientes'').