una ultima poner modificación hora fecha como celda actualizacion date jekyll liquid

date - modificación - como poner fecha de ultima actualizacion en excel



¿Cómo mostrar la fecha de modificación de un archivo en Jekyll? (5)

Basándome en la publicación de krlmlr, escribí un script de pre-confirmación para actualizar la hora de modificación de la date: campo en el asunto YAML de los archivos modificados.

#!/bin/sh # Contents of .git/hooks/pre-commit git diff --cached --name-status | grep "^M" | while read a b; do cat $b | sed "/---.*/,/---.*/s/^date:.*$/date: $(date -u "+%Y-%m-%d %T %Z")/" > tmp mv tmp $b git add $b done

Está funcionando bien para mí. En realidad uso el campo update: para indicar la hora modificada y el campo date: para indicar la hora de creación.

Sé que puedo especificar una date variable en el frontmatter YAML de un archivo y acceder a su valor con {{ page.date }} . Esto es engorroso ya que uno olvida fácilmente cambiar la fecha en que se actualiza un archivo. Entonces, ¿cómo puedo acceder a la fecha de modificación de un archivo?


Desde Jekyll 1.x hay una page.path que le da el nombre de archivo de la publicación o página que se está procesando actualmente. Agregue el siguiente filtro (coloque, por ejemplo, en _plugins/myfilters.rb ) para obtener la hora de modificación de un nombre de archivo dado:

module Jekyll module MyFilters def file_date(input) File.mtime(input) end end end Liquid::Template.register_filter(Jekyll::MyFilters)

Así que ahora puede representar la fecha en sus publicaciones y páginas, por ejemplo, como

{{ page.path | file_date | date_to_string }}



No creo que sea posible hacer esto sin usar el material de frente YAML. Sin embargo, tenga en cuenta que la date especificación en el frontmatter en realidad invalida la date dada en el nombre de archivo de la publicación.

Por lo tanto, si tiene un archivo 2013-02-19-my-post.md y en su orden frontal tiene date: 2013-02-20 , el frontmatter tiene prioridad, y la fecha de la publicación es 2013-02-20 .

Si desea realizar un seguimiento de cuándo se modifica una publicación, me temo que no hay manera de hacer esto sin usar un campo personalizado en su frontmatter. Llámalo modified-date o algo así. Sí, es un poco tedioso. Tengo un fragmento de TextExpander que genera automáticamente la fecha / hora actual en el formato adecuado, lo cual es práctico.


Si está utilizando Git, puede instalar un enlace de confirmación previa que actualiza automáticamente el campo de fecha en la parte frontal de los archivos modificados. Me sorprendió mucho saber que un enganche de precompromiso puede cambiar los contenidos del compromiso. Solo tiene que instalar manualmente un enlace de confirmación previa en cada clon del repositorio; el siguiente borrador me funciona para actualizar el tiempo de modificación general de todo el sitio web:

#!/bin/sh # Contents of .git/hooks/pre-commit set -e set -x sed -i "s/^date:.*$/date: $(TZ=UTC date "+%Y-%m-%d %H:%M:%S %Z")/" _config.yml git add _config.yml

Se espera que _config.yml tenga un campo "fecha", su contenido será reemplazado por cada confirmación. Se puede acceder luego a través de {{ site.date }} . Ejemplo:

date: 2015-04-10 10:51:37 UTC

El script se puede generalizar para actualizar solo las páginas o publicaciones que han cambiado (consulta a través de git diff-index --cached ). No tengo tiempo para implementar esto, pero me interesaría saber si hay una solución mejor. salta eventualmente