summary refs log tree commit diff
path: root/ennum.el
diff options
context:
space:
mode:
Diffstat (limited to 'ennum.el')
-rw-r--r--ennum.el17
1 files changed, 12 insertions, 5 deletions
diff --git a/ennum.el b/ennum.el
index 481d262..bd5f3fe 100644
--- a/ennum.el
+++ b/ennum.el
@@ -15,7 +15,7 @@
 (cl-defstruct (ennum-post (:constructor ennum-make-post)
                          (:copier nil))
   filename slug author date language links tangle
-  summary tags thumbnail title translation-group)
+  summary tags thumbnail title translation-group video-posters)
 
 (cl-defstruct (ennum-operation (:constructor ennum-make-operation)
                               (:copier nil))
@@ -83,7 +83,12 @@
                                   links))
          :title (funcall export (first (plist-get metadata :title)))
          :translation-group (or (plist-get metadata :translation-group)
-                                (file-name-base filename)))))))
+                                (file-name-base filename))
+         :video-posters (ennum--filter-map (lambda (link)
+                                             (pcase link
+                                               (`("video" . ,path)
+                                                `(,path . ,(ennum-video-poster path)))))
+                                           links))))))
 
 (defvar ennum-mandatory-metadata
   (list :title :date))
@@ -119,7 +124,8 @@ last form in BODY."
               (ennum-with-file-contents (ennum-post-filename post)
                 (org-export-to-file
                     'ennum-html output-file nil nil nil nil
-                    (list :ennum-translations (seq-remove (apply-partially 'equal post) posts))))))
+                    (list :ennum-translations (seq-remove (apply-partially 'equal post) posts)
+                          :ennum-video-posters (ennum-post-video-posters post))))))
           posts
           output-files))))
      (ennum--filter-map
@@ -272,8 +278,9 @@ last form in BODY."
                    (name ,(ennum-post-author post))
                    (email ,user-mail-address))))
             (content :type "html" :xml:lang ,(ennum-post-language post)
-                     ,(ennum-with-file-contents (ennum-post-filename post)
-                        (org-export-as 'ennum-html nil nil t)))
+                     ,(ennum-with-file-contents interned-post-file
+                        (org-export-as 'ennum-html nil nil t
+                                       (list :ennum-video-posters (ennum-post-video-posters post)))))
             (link :rel "alternate" :href ,link)
             ,@(seq-map (lambda (tag) `(category :term ,tag))
                        (ennum-post-tags post)))))