diff options
| author | Sacha Chua <sacha@sachachua.com> | 2022-11-25 12:27:59 -0500 | 
|---|---|---|
| committer | Sacha Chua <sacha@sachachua.com> | 2022-11-25 12:27:59 -0500 | 
| commit | bbab65f0e5d668e94408551dc7b055a47a9e4b0a (patch) | |
| tree | 8c03eb02ac0dcd246033a8ff82ffc40218466d6f | |
| parent | 5fd196440b649b9089ff20b58939570160a0c863 (diff) | |
| download | emacsconf-el-bbab65f0e5d668e94408551dc7b055a47a9e4b0a.tar.xz emacsconf-el-bbab65f0e5d668e94408551dc7b055a47a9e4b0a.zip  | |
intro
| -rw-r--r-- | emacsconf-pad.el | 49 | 
1 files changed, 46 insertions, 3 deletions
diff --git a/emacsconf-pad.el b/emacsconf-pad.el index 5f53d7f..b9f007c 100644 --- a/emacsconf-pad.el +++ b/emacsconf-pad.el @@ -473,6 +473,39 @@ ${next-talk-list}              (emacsconf-pad-prepopulate-shift-hyperlists info))            emacsconf-shifts))) +(defun emacsconf-pad-expand-intro (talk) +  (cond +   ((null (plist-get talk :speakers)) +    (format "Next up, we have \"%s\"." (plist-get talk :title))) +   ((plist-get talk :intro-note) +    (format "The next talk is called \"%s\". %s" (plist-get talk :title) +            (plist-get talk :intro-note))) +   (t +    (let ((pronoun (pcase (plist-get talk :pronouns) +                     ((rx "she") "She") +                     ((rx "they") "They") +                     ((rx "she") "He") +                     (_ (or (plist-get talk :pronouns) ""))))) +      (format "The next talk is called \"%s\"\", by %s.%s" (plist-get talk :title) +              (replace-regexp-in-string ", \\([^,]+\\)$" +                                        ", and \\1" +                                        (plist-get talk :speakers)) +              (pcase (plist-get talk :q-and-a) +                ((or 'nil "") "") +                ((rx "after") " We'll collect questions via Etherpad and IRC to send to the speaker, and we'll post the speaker's answers on the talk page afterwards.") +                ((rx "IRC") +                 (format " %s will answer questions via IRC in the #%s channel." +                         pronoun +                         (plist-get talk :channel))) +                ((rx "Mumble") +                 (format " %s will answer questions via Etherpad." +                         pronoun +                         )) +                ((rx "live") +                 (format " %s will answer questions via BigBlueButton. You can join using the URL from the talk page or ask questions through Etherpad or IRC." +                         pronoun +                         )))))))) +  ;; Related: emacsconf-talk-hyperlist  (defun emacsconf-pad-talk-hyperlist (talk &optional do-insert)    (interactive (list (emacsconf-complete-talk-info) t)) @@ -484,6 +517,13 @@ ${next-talk-list}             (list              :year emacsconf-year              :track-id track-id +            :intro-note +            (emacsconf-pad-expand-intro talk) +            (if (plist-get talk :intro-note) +                (format "The next talk is called \"%s\". %s" (plist-get talk :title) +                        (plist-get talk :intro-note)) +              (format "The next talk is called \"%s\", by %s." (plist-get talk :title) +                      (plist-get talk :speakers)))              :media-base emacsconf-media-base-url              :mumble (concat emacsconf-id "-" track-id)              :next-talk-in-5 (if next-talk (format-time-string "%H:%M" (time-subtract (plist-get next-talk :start-time) (seconds-to-time 300)) emacsconf-timezone) "") @@ -580,13 +620,16 @@ ${next-talk-list}    (emacsconf-pad-create-pad "intros")    (emacsconf-pad-set-html     "intros" -   (concat "<p>https://media.emacsconf.org/2022/backstage/</p><ul>" +   (concat "<p>https://media.emacsconf.org/2022/backstage/</p> +This page is for easy reference and recording. Please make sure any changes here are reflected in the INTRO_NOTE property of the talk. +<ul>"             (mapconcat              (lambda (o)                (emacsconf-replace-plist-in-string -               (append (list :full-url (concat emacsconf-base-url (plist-get o :url))) o) -               "<li>${slug} - ${track}: ${title} (${speakers-with-pronouns}, Q&A: ${q-and-a})<ul><li>${full-url}</li><li>Intro: ${intro-note}</li></ul></li>")) +               (append (list :intro-note (emacsconf-pad-expand-intro o)) o) +               "<li>${slug} - ${track}: ${title} (${speakers-with-pronouns}, Q&A: ${q-and-a})<ul><li>${absolute-url}</li><li>Intro: ${intro-note}</li></ul></li>"))              (emacsconf-prepare-for-display (emacsconf-get-talk-info)))             "</ul>"))) +  (provide 'emacsconf-pad)  ;;; emacsconf-pad.el ends here  | 
