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 }}
Este es un complemento relativamente nuevo que hace lo que estás buscando:
https://github.com/gjtorikian/jekyll-last-modified-at
(Lo encontré mientras buscaba en Google alternativas a las otras respuestas en este hilo)
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