diff options
| -rw-r--r-- | emacsconf-publish.el | 82 | 
1 files changed, 40 insertions, 42 deletions
diff --git a/emacsconf-publish.el b/emacsconf-publish.el index 72683bc..4bf356b 100644 --- a/emacsconf-publish.el +++ b/emacsconf-publish.el @@ -749,7 +749,9 @@ Back to the [[talks]]  \n"  (defun emacsconf-publish-format-interleaved-schedule (&optional info)    "Return a list with the schedule for INFO.  Entries are sorted chronologically, with different tracks interleaved." -  (let* ((by-day (emacsconf-by-day (or info (emacsconf-get-talk-info)))) +  (setq info (or info (emacsconf-get-talk-info))) +  (let* ((by-day (emacsconf-by-day (emacsconf-prepare-for-display info))) +         (cancelled (seq-filter (lambda (o) (string= (plist-get o :status) "CANCELLED")) info))           (dates (seq-map (lambda (o) (plist-get (cadr o) :start-time)) by-day))           (links (mapcar (lambda (o)                            (format "<a href=\"#date-%s\">%s</a>" @@ -758,30 +760,39 @@ Entries are sorted chronologically, with different tracks interleaved."                          dates))           (height 150)           (width 600)) -    (mapconcat (lambda (day) -                 (let ((day-start (date-to-time -					                         (concat (format-time-string "%Y-%m-%dT" (plist-get (cadr day) :start-time) emacsconf-timezone) -                                           emacsconf-schedule-start-time -						                               emacsconf-timezone-offset))) -			                 (day-end (date-to-time (concat (format-time-string "%Y-%m-%dT" (plist-get (cadr day) :start-time) emacsconf-timezone) -                                                      emacsconf-schedule-end-time -							                                        emacsconf-timezone-offset)))) -                   (concat -                    (if (> (length links) 1) (concat "Jump to: " (string-join links " - ")) "") -                    (format "<a name=\"date-%s\"></a>\n" -                            (format-time-string "%Y-%m-%d" -                                                (plist-get (cadr day) :start-time) -                                                emacsconf-timezone)) -                    (format-time-string "# %A %b %-e, %Y\n" (plist-get (cadr day) :start-time) emacsconf-timezone) -                    (format "[[!inline pages=\"internal(%s/schedule-%s)\" raw=\"yes\"]]" emacsconf-year (car day)) -                    "\n\n" -                    (format "<div class=\"schedule\" data-start=\"%s\" data-end=\"%s\" data-tracks=\"General,Development\">\n" -                            (format-time-string "%FT%T%z" day-start t) -                            (format-time-string "%FT%T%z" day-end t)) -                    (emacsconf-format-main-schedule (cdr day)) -                    "</div>"))) -               by-day -               "\n\n"))) +    (concat +     (mapconcat (lambda (day) +                  (let ((day-start (date-to-time +					                          (concat (format-time-string "%Y-%m-%dT" (plist-get (cadr day) :start-time) emacsconf-timezone) +                                            emacsconf-schedule-start-time +						                                emacsconf-timezone-offset))) +			                  (day-end (date-to-time (concat (format-time-string "%Y-%m-%dT" (plist-get (cadr day) :start-time) emacsconf-timezone) +                                                       emacsconf-schedule-end-time +							                                         emacsconf-timezone-offset)))) +                    (concat +                     (if (> (length links) 1) (concat "Jump to: " (string-join links " - ")) "") +                     (format "<a name=\"date-%s\"></a>\n" +                             (format-time-string "%Y-%m-%d" +                                                 (plist-get (cadr day) :start-time) +                                                 emacsconf-timezone)) +                     (format-time-string "# %A %b %-e, %Y\n" (plist-get (cadr day) :start-time) emacsconf-timezone) +                     (format "[[!inline pages=\"internal(%s/schedule-%s)\" raw=\"yes\"]]" emacsconf-year (car day)) +                     "\n\n" +                     (format "<div class=\"schedule\" data-start=\"%s\" data-end=\"%s\" data-tracks=\"General,Development\">\n" +                             (format-time-string "%FT%T%z" day-start t) +                             (format-time-string "%FT%T%z" day-end t)) +                     (emacsconf-format-main-schedule (cdr day)) +                     "</div>"))) +                by-day +                "\n\n") +     (if (> (length cancelled) 0) +         (format "<div class=\"cancelled\">Cancelled:<ul>%s</ul></div>" +                 (mapconcat (lambda (talk) (format "<li>%s - %s</li>" +                                                   (plist-get talk :title) +                                                   (plist-get talk :speakers))) +                            cancelled "\n")) +       "") +     )))  (defun emacsconf-publish-schedule (&optional info)    (interactive) @@ -789,10 +800,7 @@ Entries are sorted chronologically, with different tracks interleaved."    (with-temp-file (expand-file-name "schedule-details.md" (expand-file-name emacsconf-year emacsconf-directory))      (insert       (if (eq emacsconf-publishing-phase 'program) -         (let ((sorted (sort (emacsconf-active-talks -                              (emacsconf-filter-talks -                               (or info (emacsconf-get-talk-info)))) -                             #'emacsconf-sort-by-scheduled))) +         (let ((sorted (emacsconf-prepare-for-display (or info (emacsconf-get-talk-info)))))             (concat              "<a href=\"#development\">Jump to development talks</a>\n<a name=\"general\"></a>\n<h1><span class=\"sched-track General\">General talks</span></h1>\n"              (emacsconf-format-main-schedule @@ -877,17 +885,7 @@ Entries are sorted chronologically, with different tracks interleaved."              "")))  (defun emacsconf-format-main-schedule (info) -  (let* ((cancelled (seq-filter (lambda (o) (string= (plist-get o :status) "CANCELLED")) info))) -    (concat -     (mapconcat #'emacsconf-publish-sched-directive (emacsconf-active-talks info) "\n") -     "\n" -     (if (> (length cancelled) 0) -         (format "<div class=\"cancelled\">Cancelled:<ul>%s</ul></div>" -                 (mapconcat (lambda (talk) (format "<li>%s - %s</li>" -                                                   (plist-get talk :title) -                                                   (plist-get talk :speakers))) -                            cancelled "\n")) -       "")))) +  (mapconcat #'emacsconf-publish-sched-directive (emacsconf-active-talks info) "\n"))  (defun emacsconf-publish-talk-files (talk files)    (seq-filter (lambda (o) @@ -1491,7 +1489,7 @@ Entries are sorted chronologically, with different tracks interleaved."  (defun emacsconf-publish-schedule-svg-snippets ()    (interactive) -  (let* ((info (emacsconf-get-talk-info)) +  (let* ((info (emacsconf-prepare-for-display (emacsconf-get-talk-info)))           (by-day (emacsconf-by-day info))           (year-dir (expand-file-name emacsconf-year emacsconf-directory))           (width 800) @@ -1499,7 +1497,7 @@ Entries are sorted chronologically, with different tracks interleaved."      (emacsconf-publish-with-wiki-change        (with-temp-file (expand-file-name "schedule-image.md" year-dir)          (insert "<div class=\"schedule-svg-container\">") -        (svg-print (emacsconf-schedule-svg 800 300 (emacsconf-get-talk-info))) +        (svg-print (emacsconf-schedule-svg 800 300 info))          (insert "</div>"))        (mapc (lambda (day)                (let ((start (date-to-time (concat (car day) "T" emacsconf-schedule-start-time emacsconf-timezone-offset)))  | 
