File: README.org

package info (click to toggle)
org-tree-slide 2.8.16%2Bgit20201215.d6e8e91-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 144 kB
  • sloc: lisp: 759; makefile: 2
file content (270 lines) | stat: -rw-r--r-- 11,730 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
#+title:	README for Org Tree Slide
#+author:	Takaaki Ishikawa
#+email:	takaxp@ieee.org
#+date:		[2020-06-05 Fri 23:39]
#+startup:	content

[[http://melpa.org/#/org-tree-slide][http://melpa.org/packages/org-tree-slide-badge.svg]]
[[http://stable.melpa.org/#/org-tree-slide][http://stable.melpa.org/packages/org-tree-slide-badge.svg]]

#+caption: An example demo of org-tree-slide
[[https://github.com/takaxp/contents/blob/master/org-tree-slide/demo1.gif]]

* 1. What's this?

The main purpose of this elisp is to handle each tree in an org buffer as a slide by simple narrowing. This emacs lisp is a minor mode for Emacs Org-mode.

Main features:

  - Live editable presentation
  - Fast switching of narrowing/widen
  - TODO pursuit with narrowing
  - Displaying the current number of slides in mode line
  - CONTENT view during a presentation
  - Slide-in effect
  - Slide header from org file's header
  - Countdown timer

** 1-1. Related packages

There are various packages to make a presentation with org-mode. See [[http://orgmode.org/worg/org-tutorials/non-beamer-presentations.html]]. For more simple use, [[https://github.com/zonuexe/emacs-presentation-mode][presentation.el]] may suitable.

* 2. Install

1. Put this elisp into your load-path
2. Add =(require 'org-tree-slide)= in your =.emacs=

OR

1. Eval: =(auto-install-from-url "https://raw.github.com/takaxp/org-tree-slide/master/org-tree-slide.el")= (for auto-install users)
2. Add =(require 'org-tree-slide)= in your =.emacs=

Then open an org file, just type =C-<= and =C->=, which means =C-M-,= and =C-M-.=, you can see a presentation will begin with a header, slide-in effect, and slide number in mode line.

It is recommended to change the keybindings to make your presentation smoothly. Here is an example.

#+begin_src emacs-lisp
(with-eval-after-load "org-tree-slide"
  (define-key org-tree-slide-mode-map (kbd "<f9>") 'org-tree-slide-move-previous-tree)
  (define-key org-tree-slide-mode-map (kbd "<f10>") 'org-tree-slide-move-next-tree)
  )
#+end_src

** 2.1 el-get recipe

If you are an [[https://github.com/dimitri/el-get][el-get]] user, just do

: M-x el-get-install RET org-tree-slide

** 2.2 MELPA

Now, you can install `org-tree-slide' via [[http://melpa.org/#/org-tree-slide][MELPA]].

** 2.2 Requirements
  - Org-mode 6.33x or higher version is required.
  - This elisp doesn't require any additional packages.
** 2.3 additional package (moom.el)

Normally, presentations will appear in full screen or frame maximized. [[https://github.com/takaxp/moom#org-mode-org-tree-slide][moom]] is useful in such cases since the package can change frame position and size by keyboard and the font size will be increased suitably for your presentation.

* 3. Recommended settings

Assigning a single key to =org-tree-slide-mode= is recommended.

#+begin_src emacs-lisp
(global-set-key (kbd "<f8>") 'org-tree-slide-mode)
(global-set-key (kbd "S-<f8>") 'org-tree-slide-skip-done-toggle)
#+end_src

OR

#+begin_src emacs-lisp
(define-key org-mode-map (kbd "<f8>") 'org-tree-slide-mode)
(define-key org-mode-map (kbd "S-<f8>") 'org-tree-slide-skip-done-toggle)
#+end_src

* 4. Profiles

Three useful profiles are available. Please select a profile that is the most suitable for your using scenario.

If you select =simple= profile, call the following command while =org-tree-slide-mode= is ON.

#+begin_src emacs-lisp
M-x org-tree-slide-simple-profile
#+end_src

If you want to use this setting as the default, put the following configuration including recommended settings into your =.emacs=.

#+begin_src emacs-lisp
(when (require 'org-tree-slide nil t)
  (global-set-key (kbd "<f8>") 'org-tree-slide-mode)
  (global-set-key (kbd "S-<f8>") 'org-tree-slide-skip-done-toggle)
  (org-tree-slide-simple-profile))
#+end_src

=org-tree-slide-presentation-profile= and =org-tree-slide-narrowing-control-profile= are also available.

** 4-1. `Simple'

This profile will display trees in your org buffer by simple narrowing. You can change trees without =widen= command. Most of the visual effect is disabled.

Type =M-x org-tree-slide-simple-profile= while =org-tree-slide-mode= is ON.

    1. No header display
    2. No slide-in effect
    3. The cursor will move to the head of the buffer when exit
    4. No slide number display in mode line
    5. Display every type of tree except =org-comment-string= (e.g. COMMENT)

** 4-2. `Presentation'

This profile is the default setting of org-tree-slide. If an org buffer includes =#+title:=, =#+email:=, and =#+author:=, org-tree-slide attempts to use those variables in the slide header. A date in the header will be set with the presentation of the day. You can enjoy a slide-in effect, the current slide number in mode line.

# A presentation with a count down timer is started by =M-x org-tree-slide-play-with-timer=.

If you want to show the content of your presentation, type =C-x s c= or =M-x org-tree-slide-content=. All of the headings will be shown in a buffer like a Table Of Content except some headings configured as skipping by =org-tree-slide-skip-outline-level=. Find a heading that you want to show, and type =C->=, the presentation will be resumed.

It is possible to skip slides when a heading level is higher than or equal to a  value of =org-tree-slide-skip-outline-level=. see User variables.

To exit a presentation, set =org-tree-slide-mode= OFF. The cursor move to the head of the buffer and the trees will be rendered according to the value of =#+startup:= if possible.

=M-x org-tree-slide-presentation-profile=

    1. Display header
    2. Enable slide-in effect
    3. The cursor will move to the head of buffer when exit
    4. Display slide number in mode line
    5. Display every type of tree except =org-comment-string= (e.g. COMMENT)

** 4-3. `TODO Pursuit with narrowing'

This profile will display trees restricted to =TODO status= without a header and slide-in effect. It is very useful to concentrate your focus on the current TODO item that is not done, and go to the next task by typing of =C->=. This is "TODO Pursuit with narrowing". If you want to track every kind of tree including finished items, toggle =M-x org-tree-slide-skip-done-toggle= OFF.

When you exit =org-tree-slide-mode=, the cursor will keep the same position, it is therefore possible to focus again by toggle =M-x org-tree-slide-mode=.

If you feel the cursor moving is very slow, please change a value of =org-tree-slide-modeline-display= to ='outside= or =nil=.

=M-x org-tree-slide-narrowing-control-profile=

    1. No header display
    2. No slide-in effect
    3. The cursor will keep the same position when exit
    4. Display slide number in mode line
    5. Display TODO trees only except =org-comment-string= (e.g. COMMENT)

* 5. User variables

#+caption: User variables
|----+--------------------------------------------+---------------+---------|
|    | Variable                                   | Default value | Select  |
|----+--------------------------------------------+---------------+---------|
|  1 | org-tree-slide-skip-outline-level          | 0             | Numeric |
|  2 | org-tree-slide-header                      | t             | Boolean |
|  3 | org-tree-slide-slide-in-effect             | t             | Boolean |
|  4 | org-tree-slide-cursor-init                 | t             | Boolean |
|  5 | org-tree-slide-slide-in-brank-lines        | 10            | Numeric |
|  6 | org-tree-slide-slide-in-waiting            | 0.02          | Float   |
|  7 | org-tree-slide-heading-emphasis            | nil           | Boolean |
|  8 | org-tree-slide-never-touch-face            | nil           | Boolean |
|  9 | org-tree-slide-skip-done                   | nil           | Boolean |
| 10 | org-tree-slide-skip-comments               | t             | Boolean |
| 11 | org-tree-slide-activate-message            | Hello...      | String  |
| 12 | org-tree-slide-deactivate-message          | Quit, Bye!    | String  |
| 13 | org-tree-slide-modeline-display            | 'outside      | [*1]    |
| 14 | org-tree-slide-fold-subtrees-skipped       | t             | Boolean |
| 15 | org-tree-slide-breadcrumbs                 | " > "         | String  |
| 16 | org-tree-slide-breadcrumbs-hide-todo-state | t             | Boolean |
| 17 | org-tree-slide-indicator                   | plist         | [*2]    |

#+begin_quote
[*1] { nil| 'lighter | 'outside }
  'outside: shown in the mode line outside of lighter
  'lighter: shown in lighter (slow)
       nil: nothing to be shown"

[*2] '(:next "   Next >>" :previous "<< Previous" :content "<<  CONTENT  >>")
   If you prefer to show nothing for entering content mode, then specify as
   '(:next "   Next >>" :previous "<< Previous" :content nil)
#+end_quote

** 5-1. Useful settings for experts

If you like this elisp, the following setting is more useful. Try it!

In this case, =<f8>= / =<f9>= / =<f10>= / =<f11>= are assigned in order to control org-tree-slide.

#+begin_src emacs-lisp
(when (require 'org-tree-slide nil t)
  (global-set-key (kbd "<f8>") 'org-tree-slide-mode)
  (global-set-key (kbd "S-<f8>") 'org-tree-slide-skip-done-toggle)
  (define-key org-tree-slide-mode-map (kbd "<f9>")
    'org-tree-slide-move-previous-tree)
  (define-key org-tree-slide-mode-map (kbd "<f10>")
    'org-tree-slide-move-next-tree)
  (define-key org-tree-slide-mode-map (kbd "<f11>")
    'org-tree-slide-content)
  (setq org-tree-slide-skip-outline-level 4)
  (org-tree-slide-narrowing-control-profile)
  (setq org-tree-slide-skip-done nil)))
#+end_src

* 6. Functions
** Control functions

  - org-tree-slide-move-next-tree (=C->=)
  - org-tree-slide-move-previous-tree (=C-<=)
  - org-tree-slide-content (=C-x s c=)

** Startup options

These functions will toggle =org-tree-slide-mode= ON, automatically.

  - org-tree-slide-without-init-play
  - org-tree-slide-play-with-timer

** Toggle variables

  - org-tree-slide-display-header-toggle
  - org-tree-slide-slide-in-effect-toggle
  - org-tree-slide-skip-done-toggle
  - org-tree-slide-skip-comments-toggle
  - org-tree-slide-heading-emphasis-toggle

** Batch setting of user variables

  - org-tree-slide-simple-profile
  - org-tree-slide-presentation-profile
  - org-tree-slide-narrowing-control-profile

** Hooks

  - org-tree-slide-play-hook
  - org-tree-slide-stop-hook
  - org-tree-slide-before-narrow-hook
  - org-tree-slide-after-narrow-hook
  - org-tree-slide-before-move-next-hook
  - org-tree-slide-before-move-previous-hook

NOTE: For senior user, some hook were renamed, please update your configurations

* 7. History

see also [[https://github.com/takaxp/org-tree-slide/blob/master/ChangeLog][ChangeLog]] for details

|---------+------------------+-----------------------------------------|
| Version | Date             | Description                             |
|---------+------------------+-----------------------------------------|
| v2.8.0  | 2015-02-20@21:27 | Changed Keymap, and renamed/added hooks |
| v2.7.0  | 2013-07-21@05:21 | Support buffers without headings        |
| v2.6.0  | 2012-11-21@02:14 | Support dark color theme                |
| v2.5.0  | 2011-12-12@18:16 | Remove auto-play function (TBD)         |
| v2.4.0  | 2011-12-08@10:51 | Support TODO pursuit in a slideshow     |
| v2.3.0  | 2011-12-07@16:17 | Support displaying a slide number       |
| v2.2.0  | 2011-12-07@02:15 | Support minor mode                      |
| v2.0.0  | 2011-12-01@17:41 | Add profiles and support org 6.33x      |
| v1.0.0  | 2011-09-28@20:59 | Release the initial version             |

* 8. Contact

The author is Takaaki ISHIKAWA (takaxp@ieee.org).
Feel free to email me or use a mention of twitter ([[https://twitter.com/#!/takaxp][@takaxp]])