Add timestamp of source revision to HTML doc

* doc/yas-doc-helper.el: Put revision's commit date into :html-postamble
project property.  Use SOURCE_DATE_EPOCH instead of git data, if it's
defined.
This commit is contained in:
Noam Postavsky 2016-12-10 12:56:01 -05:00
parent cce2e0df5d
commit 4ef1768e81

View File

@ -120,11 +120,20 @@
(let* ((dir (if load-file-name (file-name-directory load-file-name)
default-directory))
(rev (with-temp-file (expand-file-name "html-revision" dir)
(or (when (eq (call-process "git" nil t nil
"rev-parse" "--verify" "HEAD") 0)
(buffer-string))
(princ yas--version (current-buffer)))))
(src-epoch (getenv "SOURCE_DATE_EPOCH"))
;; Presence of SOURCE_DATE_EPOCH indicates a reproducible
;; build, don't depend on git.
(rev (unless src-epoch
(ignore-errors
(car (process-lines "git" "rev-parse" "--verify" "HEAD")))))
(date (format-time-string
"(%Y-%m-%d %H:%M:%S)"
(seconds-to-time
(string-to-number
(or (if rev (car (process-lines "git" "show" "--format=%ct" rev))
src-epoch)
"0")))
t))
(proj-plist
`(,@(when (fboundp 'org-html-publish-to-html)
'(:publishing-function org-html-publish-to-html))
@ -134,10 +143,13 @@
(insert-file-contents (expand-file-name "nav-menu.html.inc" dir))
(buffer-string))
:html-postamble
,(concat "<hr><p class='creator'>Generated by %c on %d from "
rev "</p>\n"
,(concat "<hr><p class='creator'>Generated by %c from "
(or rev yas--version) " " date "</p>\n"
"<p class='xhtml-validation'>%v</p>\n")))
(project (assoc "yasnippet" org-publish-project-alist)))
(when rev ;; Rakefile :doc:upload uses "html-revision".
(with-temp-file (expand-file-name "html-revision" dir)
(princ rev (current-buffer))))
(if project
(setcdr project proj-plist)
(push `("yasnippet" . ,proj-plist)