[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] [PATCH] Add feature to org-drill to auto pronounce word
From: |
stardiviner |
Subject: |
Re: [O] [PATCH] Add feature to org-drill to auto pronounce word |
Date: |
Thu, 24 Jan 2019 22:25:34 +0800 |
User-agent: |
mu4e 1.1.0; emacs 26.1 |
A gentle ping..
stardiviner <address@hidden> writes:
> I spend a little time to check out org-drill source code, to find out
> where I can insert hook to run function when presenting word.
>
> Then I finally found the place in ~org-drill-entry~. Here is my patch.
>
> From 81765e9395f5c0bec21d44aeaf16919d35a39eee Mon Sep 17 00:00:00 2001
> From: stardiviner <address@hidden>
> Date: Wed, 9 Jan 2019 16:25:38 +0800
> Subject: [PATCH] org-drill.el: Add feature let org-drill auto pronounce
>
> * contrib/lisp/org-drill.el (org-drill-entry,
> org-drill-entry-before-hook, org-drill-entry-after-hook): Add two
> hooks around ~org-drill-entry~.
> (org-drill-auto-pronounce): option to toggle this functionality.
> (org-drill-pronounce-word): The real function to pronounce word.
> (org-drill-hide-subheadings-if): fix issue in Org 9.2 version.
>
> * etc/ORG-NEWS: mentioned this new feature.
> ---
> contrib/lisp/org-drill.el | 31 ++++++++++++++++++++++++++++++-
> etc/ORG-NEWS | 3 +++
> 2 files changed, 33 insertions(+), 1 deletion(-)
>
> diff --git a/contrib/lisp/org-drill.el b/contrib/lisp/org-drill.el
> index c7f509bff..29a0cd8c9 100644
> --- a/contrib/lisp/org-drill.el
> +++ b/contrib/lisp/org-drill.el
> @@ -1486,7 +1486,7 @@ the current topic."
> (funcall test))
> (hide-subtree))
> (push (point) drill-sections)))
> - "" 'tree))
> + nil 'tree))
> (reverse drill-sections)))
>
>
> @@ -2163,6 +2163,33 @@ If ANSWER is supplied, set the global variable
> `drill-answer' to its value."
> (prog1 (org-drill-presentation-prompt)
> (org-drill-hide-subheadings-if 'org-drill-entry-p)))))
>
> +(defcustom org-drill-entry-before-hook nil
> + "A hook to run functions when every org-drill entry."
> + :type 'hook
> + :group 'org-drill)
> +
> +(defcustom org-drill-entry-after-hook nil
> + "A hook to run functions when every org-drill entry."
> + :type 'hook
> + :group 'org-drill)
> +
> +(defcustom org-drill-auto-pronounce t
> + "Auto pronounce org-drill word if non-nil."
> + :type 'boolean
> + :safe #'booleanp
> + :group 'org-drill)
> +
> +(defun org-drill-pronounce-word ()
> + "Pronounce word after querying."
> + (if org-drill-auto-pronounce
> + (shell-command-to-string
> + (format "%s %s %s &"
> + org-drill-pronounce-command org-drill-pronounce-command-args
> + (shell-quote-argument
> + (substring-no-properties
> + (org-get-heading 'no-tags 'no-todo 'no-priority
> 'no-comment)))))))
> +
> +(add-hook 'org-drill-entry-after-hook #'org-drill-pronounce-word)
>
> (defun org-drill-entry ()
> "Present the current topic for interactive review, as in `org-drill'.
> @@ -2202,6 +2229,7 @@ See `org-drill' for more details."
> 'org-drill-present-default-answer)
> present-empty-cards (third presentation-fn)
> presentation-fn (first presentation-fn)))
> + (run-hook-with-args 'org-drill-entry-before-hook)
> (prog1
> (cond
> ((null presentation-fn)
> @@ -2223,6 +2251,7 @@ See `org-drill' for more details."
> (save-excursion
> (funcall answer-fn
> (lambda () (org-drill-reschedule))))))))
> + (run-hook-with-args 'org-drill-entry-after-hook)
> (org-remove-latex-fragment-image-overlays)))))))
>
>
> diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS
> index e06d0c09b..1bb485ad1 100644
> --- a/etc/ORG-NEWS
> +++ b/etc/ORG-NEWS
> @@ -49,6 +49,9 @@ alternative was removed and there is no more a :use-xcolor
> options
> since now it's implicitly always true.
>
> ** New features
> +*** Org-drill support auto pronounce word
> +You can set option ~org-drill-auto-pronounce~ to ~t~ to enable it
> +(This is default). You can disable it by setting it to ~nil~.
> *** Add a dispatcher command to insert dynamic blocks
>
> You can add dynamic block into ~org-dynamic-block-alist~ with function
> --
> 2.20.1
--
[ stardiviner ]
I try to make every word tell the meaning what I want to express.
Blog: https://stardiviner.github.io/
IRC(freenode): stardiviner, Matrix: stardiviner
GPG: F09F650D7D674819892591401B5DF1C95AE89AC3
- [O] [PATCH] Add feature to org-drill to auto pronounce word, stardiviner, 2019/01/09
- Re: [O] [PATCH] Add feature to org-drill to auto pronounce word,
stardiviner <=
- Re: [O] [PATCH] Add feature to org-drill to auto pronounce word, Nicolas Goaziou, 2019/01/26
- Re: [O] [PATCH] Add feature to org-drill to auto pronounce word, stardiviner, 2019/01/26
- Re: [O] [PATCH] Add feature to org-drill to auto pronounce word, Nicolas Goaziou, 2019/01/27
- Re: [O] [PATCH] Add feature to org-drill to auto pronounce word, stardiviner, 2019/01/29
- Re: [O] [PATCH] Add feature to org-drill to auto pronounce word, Nicolas Goaziou, 2019/01/30
- Re: [O] [PATCH] Add feature to org-drill to auto pronounce word, stardiviner, 2019/01/31