summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--emacsconf-mail.el13
-rw-r--r--emacsconf-subed.el66
-rw-r--r--emacsconf.el3
3 files changed, 57 insertions, 25 deletions
diff --git a/emacsconf-mail.el b/emacsconf-mail.el
index b6f887b..40536de 100644
--- a/emacsconf-mail.el
+++ b/emacsconf-mail.el
@@ -20,7 +20,18 @@
;;; Commentary:
-;;
+;; The typical communication flow for speakers is:
+
+;; - emacsconf-mail-review
+;; - emacsconf-mail-accept-talk
+;; - emacsconf-mail-upload-and-backstage-info
+;; - emacsconf-mail-acknowledge-upload
+;; - emacsconf-mail-captions-for-review
+;; - emacsconf-mail-draft-schedule
+;; - emacsconf-mail-intro-to-all
+;; - emacsconf-mail-checkin-instructions-to-all
+;; - emacsconf-mail-template-speakers-thanks-after-conference
+
;;; Code:
diff --git a/emacsconf-subed.el b/emacsconf-subed.el
index e600dd2..01c08c2 100644
--- a/emacsconf-subed.el
+++ b/emacsconf-subed.el
@@ -26,6 +26,13 @@
;; from https://github.com/sachac/compile-media .
;;; Code:
+(ert-deftest emacsconf-split-text-based-on-heuristics ()
+ "Tests `emacsconf-split-text-based-on-heuristics'."
+ (should (equal (emacsconf-split-text-based-on-heuristics
+ "This is a long sentence that can be split up at several logical points, such as that one." 40)
+ '("This is a long sentence" "that can be split up at several"
+ "logical points, such as that one."))))
+
(require 'subed)
@@ -118,27 +125,38 @@ TYPE can be 'end if you want the match end instead of the beginning."
result))
(setq position new-position)
(setq next-limit (+ new-position limit)))
- (setq result (cons (string-trim current) result))
+ (unless (string= current "")
+ (setq result (cons (string-trim current) result)))
(nreverse result)))
-(defun emacsconf-reflow-automatically ()
- (interactive)
- (let* ((subtitle-text-limit (or emacsconf-subed-subtitle-max-length fill-column))
- (auto-space-msecs 700)
- (subtitles
- (mapconcat
- (lambda (sub)
- (string-join
- (emacsconf-split-text-based-on-heuristics (elt sub 3) subtitle-text-limit)
- "\n"))
- (emacsconf-combine-close-subtitles (subed-subtitle-list))
- "\n")))
- (find-file (concat (file-name-sans-extension (buffer-file-name)) ".txt"))
- (erase-buffer)
- (insert subtitles)
- (goto-char (point-min))
- (set-fill-column subtitle-text-limit)
- (display-fill-column-indicator-mode 1)))
+
+
+(defun emacsconf-reflow-automatically (&optional beg end)
+ "Try to split subtitle text at reasonable points."
+ (interactive (if (region-active-p) (list (region-beginning) (region-end))
+ (list (point-min) (point-max))))
+ (if (derived-mode-p 'subed-mode)
+ (let* ((subtitle-text-limit (or emacsconf-subed-subtitle-max-length fill-column))
+ (auto-space-msecs 700)
+ (subtitles
+ (mapconcat
+ (lambda (sub)
+ (string-join
+ (emacsconf-split-text-based-on-heuristics (elt sub 3) subtitle-text-limit)
+ "\n"))
+ (emacsconf-combine-close-subtitles (subed-subtitle-list beg end))
+ "\n")))
+ (find-file (concat (file-name-sans-extension (buffer-file-name)) ".txt"))
+ (delete-region beg end)
+ (insert subtitles)
+ (goto-char (point-min))
+ (set-fill-column subtitle-text-limit)
+ (display-fill-column-indicator-mode 1))
+ (let ((split (emacsconf-split-text-based-on-heuristics
+ (buffer-substring beg end)
+ (or emacsconf-subed-subtitle-max-length fill-column))))
+ (delete-region beg end)
+ (insert (string-join split "\n")))))
;;;###autoload
(defun emacsconf-subed-make-chapter-file-based-on-comments ()
@@ -325,8 +343,12 @@ Create it if necessary."
(goto-char (posn-point (event-start event)))
(skip-syntax-backward "w")
(if (derived-mode-p 'subed-mode)
- (subed-split-subtitle)
- (insert "\n"))
+ (if (bolp)
+ (subed-merge-with-previous)
+ (subed-split-subtitle))
+ (if (looking-back "^\\|^\\[.+?\\]: " (line-beginning-position))
+ (join-line)
+ (insert "\n")))
(recenter))
(defun emacsconf-subed-merge-and-unfill ()
@@ -354,8 +376,6 @@ Create it if necessary."
(define-key map [up-1] #'ignore)
(define-key map [drag-mouse-1] #'ignore)
(define-key map [mouse-movement] #'ignore)
- (define-key map (kbd "<up>") #'scroll-down)
- (define-key map (kbd "<down>") #'scroll-up)
(define-key map (kbd "M-q") #'emacsconf-subed-unfill-paragraph)
(define-key map (kbd "M-.") #'emacsconf-subed-merge-and-unfill)
(define-key map "q" #'emacsconf-subed-unfill-paragraph)
diff --git a/emacsconf.el b/emacsconf.el
index cd82d54..81bf375 100644
--- a/emacsconf.el
+++ b/emacsconf.el
@@ -837,7 +837,8 @@ The subheading should match `emacsconf-abstract-heading-regexp'."
(let* ((elt (org-element-property-drawer-parser nil))
(beg (org-element-property :contents-begin elt))
(end (org-element-property :contents-end elt)))
- (buffer-substring-no-properties beg end)))))
+ (when (and beg end)
+ (buffer-substring-no-properties beg end))))))
(defun emacsconf-get-talk-logbook (o)
(plist-put o :logbook (emacsconf-get-logbook-notes)))