diff options
| author | Sacha Chua <sacha@sachachua.com> | 2022-12-09 22:46:25 -0500 | 
|---|---|---|
| committer | Sacha Chua <sacha@sachachua.com> | 2022-12-09 22:46:25 -0500 | 
| commit | c1a32ad031d6a5fc7dc644fcfc442c3c9a6e107c (patch) | |
| tree | da21e24a057dfde16817ab01fa89fd1924d0e84b | |
| parent | 923de3f273dd82f52072cffcb9a84737fc287f7f (diff) | |
| download | emacsconf-el-c1a32ad031d6a5fc7dc644fcfc442c3c9a6e107c.tar.xz emacsconf-el-c1a32ad031d6a5fc7dc644fcfc442c3c9a6e107c.zip  | |
code for adding questions to the Q&A transcript
Diffstat (limited to '')
| -rw-r--r-- | emacsconf-extract.el | 35 | ||||
| -rw-r--r-- | emacsconf-publish.el | 30 | ||||
| -rw-r--r-- | emacsconf-subed.el | 8 | ||||
| -rw-r--r-- | emacsconf.el | 13 | 
4 files changed, 73 insertions, 13 deletions
diff --git a/emacsconf-extract.el b/emacsconf-extract.el index 77c8d0b..e158764 100644 --- a/emacsconf-extract.el +++ b/emacsconf-extract.el @@ -270,5 +270,40 @@  			(unless (string= (or questions "") "")  				(insert "## Questions and answers\n\n" questions "\n\n"))  			))) + +(defun emacsconf-extract-question-headings (slug) +	(with-temp-buffer +		(insert-file-contents +		 (expand-file-name +			(concat slug ".md") +			(expand-file-name "talks" +												(expand-file-name emacsconf-year emacsconf-directory)))) +		(goto-char (point-min)) +		(let (results) +			(while (re-search-forward "^-[ \t]+Q:[  ]*" nil t) +				(setq results +							(cons +							 (string-trim +								(replace-regexp-in-string +								 "[\n \t ]+" " " +								 (replace-regexp-in-string +									"\\\\" +									"" +									(buffer-substring +									 (point) +									 (and (re-search-forward "^[ \t]+-\\|^[ \t]+*$" nil t) +												(match-beginning 0)))))) +							 results))) +			(nreverse results)))) +;; (emacsconf-extract-question-headings "asmblox") + +(defun emacsconf-extract-insert-note-with-question-heading (question) +	(interactive +	 (list +		(completing-read +		 "Question: " +		 (emacsconf-extract-question-headings +			(emacsconf-get-slug-from-string (file-name-base (buffer-file-name))))))) +	(insert "NOTE " question "\n\n"))  (provide 'emacsconf-extract)  ;;; emacsconf-extract.el ends here diff --git a/emacsconf-publish.el b/emacsconf-publish.el index 29467d9..6449bf4 100644 --- a/emacsconf-publish.el +++ b/emacsconf-publish.el @@ -30,7 +30,7 @@    :type 'string    :group 'emacsconf) -(defcustom emacsconf-main-extensions '(".webm" "--main.webm" "--main.org" ".org" ".odp" ".pdf" ".el" "--compressed56.webm" "--main.vtt" "--main_fr.vtt" "--main_ja.vtt" "--main_es.vtt" "--chapters.vtt" "--main--chapters.vtt" "--script.fountain") +(defcustom emacsconf-main-extensions '(".webm" "--main.webm" "--main.org" ".org" ".odp" ".pdf" ".el" "--compressed56.webm" "--main.vtt" "--main_fr.vtt" "--main_ja.vtt" "--main_es.vtt" "--chapters.vtt" "--main--chapters.vtt" "--script.fountain" "--main.pdf" "--slides.pdf")    "Extensions to list on public pages."    :type '(repeat string)    :group 'emacsconf) @@ -468,6 +468,7 @@ resources."                                         :public 1                                         :video-id (concat (plist-get o :slug) "-qanda")                                         :toobnix-url nil +																			 :captions-edited (plist-get o :qa-captions-edited)                                         :video-file (expand-file-name                                                      (concat (file-name-sans-extension (plist-get o :video-slug)) "--answers.webm")                                                      emacsconf-cache-dir)) @@ -1170,7 +1171,26 @@ Entries are sorted chronologically, with different tracks interleaved."                       (assoc-default "TO_STREAM" by-status) "\n"))  				 (let ((status "TO_ARCHIVE"))  					 (format -						"<h1>%d talk(s) to archive (%d minutes)</h1><ol class=\"videos\">%s</ol>" +						"<h1>%d talk(s) to archive (%d minutes)</h1>Last year, we copied the questions, answers, and notes into the wiki +pages, removing people's nicks and combining duplicate +things (ex: question was asked on IRC and was copied over to the +pad). That way, it's easier for people to see the questions and +answers without needing to listen to everything again, and the +speakers can see any questions they've missed and all the +wonderful feedback people have shared. You can see the talk pages +at <a +href=\"https://emacsconf.org/2021/talks/\">https://emacsconf.org/2021/talks/</a> +for examples of a Discussion section with sections for Q&A and +feedback (ex: <a +href=\"https://emacsconf.org/2021/talks/frownies/\">frownies</a>, +<a +href=\"https://emacsconf.org/2021/talks/freedom/\">freedom</a>). +If you feel like collecting things from the Q&A (or any other +one), that would be great. You can either edit the wiki page +directly (which involves git and ssh), or you can e-mail things +to <a +href=\"mailto:emacsconf-submit@gnu.org\">emacsconf-submit@gnu.org</a> +and I'll merge them in. - Sacha <ol class=\"videos\">%s</ol>"  						(length (assoc-default status by-status))  						(emacsconf-sum :video-time (assoc-default status by-status))  						(mapconcat (lambda (f) @@ -1735,7 +1755,7 @@ This video is available under the terms of the Creative Commons Attribution-Shar      )) -(defvar emacsconf-publish-autocommit-wiki t) +(defvar emacsconf-publish-autocommit-wiki nil)  (defun emacsconf-publish-commit-and-push-wiki-maybe (&optional do-it message)  	(interactive (list t))  	(let ((default-directory emacsconf-directory)) @@ -1748,7 +1768,9 @@ This video is available under the terms of the Creative Commons Attribution-Shar    (declare (indent 0) (debug t))    `(progn       ,@body -		 (emacsconf-publish-commit-and-push-wiki-maybe t (and (stringp ,(car body)) ,(car body))))) +		 (emacsconf-publish-commit-and-push-wiki-maybe +			,emacsconf-publish-autocommit-wiki +			(and (stringp ,(car body)) ,(car body)))))  (defun emacsconf-publish-schedule-svg-snippets ()    (interactive) diff --git a/emacsconf-subed.el b/emacsconf-subed.el index b219a6a..ec02a9d 100644 --- a/emacsconf-subed.el +++ b/emacsconf-subed.el @@ -29,8 +29,8 @@  (require 'subed) -(defcustom emacsconf-subed-subtitle-max-length 60 -  "Target number of characters." +(defcustom emacsconf-subed-subtitle-max-length nil +  "Target number of characters. Default to `fill-column'."    :group 'emacsconf    :type 'integer) @@ -123,7 +123,7 @@ TYPE can be 'end if you want the match end instead of the beginning."  (defun emacsconf-reflow-automatically ()    (interactive) -  (let* ((subtitle-text-limit emacsconf-subed-subtitle-max-length) +  (let* ((subtitle-text-limit (or emacsconf-subed-subtitle-max-length fill-column))           (auto-space-msecs 700)           (subtitles            (mapconcat @@ -287,7 +287,7 @@ Create it if necessary."    "Do some simple validation of subtitles."    (interactive)    (while (not (eobp)) -    (if (> (length (subed-subtitle-text)) emacsconf-subed-subtitle-max-length) +    (if (> (length (subed-subtitle-text)) (or emacsconf-subed-subtitle-max-length fill-column))          (error "Length %d exceeds maximum length" (length (subed-subtitle-text))))      (if (< (- (subed-subtitle-msecs-stop) (subed-subtitle-msecs-start)) emacsconf-subed-subtitle-minimum-duration-ms)          (error "Duration %d is less than minimum" (- (subed-subtitle-msecs-stop) (subed-subtitle-msecs-start)))) diff --git a/emacsconf.el b/emacsconf.el index 395db45..7157efd 100644 --- a/emacsconf.el +++ b/emacsconf.el @@ -311,10 +311,13 @@    (emacsconf-search-talk-info (emacsconf-complete-talk info) info))  (defun emacsconf-get-slug-from-string (search) -  (if (listp search) (setq search (car search))) -  (if (and search (string-match "\\(.*?\\) - " search)) -      (match-string 1 search) -    search)) +  (when (listp search) (setq search (car search))) +  (cond +	 ((and search (stringp search) (string-match "\\(.*?\\) - " search)) +		(match-string 1 search)) +	 ((and (stringp search) (string-match (concat "^" emacsconf-id "-" emacsconf-year "-\\(.+?\\)--") search)) +		(match-string 1 search)) +   (t search)))  (defun emacsconf-go-to-talk (search)    (interactive (list (emacsconf-complete-talk))) @@ -1232,7 +1235,7 @@ Filter by TRACK if given.  Use INFO as the list of talks."            (or info (emacsconf-get-volunteer-info))))  (defun emacsconf-complete-volunteer (&optional info) -  (setq info (or info (emacsconf-get-volunteer-info info))) +  (setq info (or info (emacsconf-get-volunteer-info)))    (let* ((choices            (emacsconf-volunteer-emails-for-completion))           (choice (completing-read  | 
