Mercurial > hg > xemacs-beta
comparison lisp/hyperbole/kotl/EXAMPLE.kotl @ 0:376386a54a3c r19-14
Import from CVS: tag r19-14
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:45:50 +0200 |
parents | |
children | 4103f0995bd7 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:376386a54a3c |
---|---|
1 ;; -*- Mode: kotl -*- | |
2 "Kotl-4.0" ;; file-format | |
3 | |
4 1 The outliner is a part of the Hyperbole information management system. | |
5 It produces hierarchically structured files consisting of trees of | |
6 cells. | |
7 | |
8 1a A cell is an element of the outline which has its own display label | |
9 and unique, permanent identifier (idstamp). | |
10 | |
11 1b Idstamps support the creation of hyperlinks to cells which are | |
12 maintained as the structure of an outline changes. | |
13 | |
14 2 Features implemented include: | |
15 | |
16 2a Full on screen editing (just like a Macintosh). Click to type in a | |
17 node (we call them cells) and just enter text. Structure is | |
18 automatically maintained for you. All of the standard Emacs editor | |
19 command set is supported both through keyboard and mouse interaction. | |
20 | |
21 2b Advanced outline processing | |
22 | |
23 2b1 Autonumbering: Full auto-numbering in Augment (1a2) or legal | |
24 (1.1.2) formats. Augment style is the default. Single level | |
25 autonumbering (only the last part of the level number is shown), | |
26 as commonly seen in outliner products, is also available, though | |
27 it has not been tested very much and so is not recommended. Use | |
28 {C-c C-l ?} to see the full set of label types and to select a | |
29 different label type. | |
30 | |
31 2b2 Label Separators: By default, the outliner separates labels from | |
32 cell contents by two spaces. If you want to change the separator | |
33 for the current outline, use {C-c M-l}. {C-u C-c M-l} will | |
34 additionally change the default separator value used when new | |
35 outlines are created. For example, use the value ". " to get a | |
36 trailing period after each cell label. The separator must be at | |
37 least two characters long. | |
38 | |
39 2b3 Cell Creation: {C-j} adds a new cell as a sibling following the | |
40 current cell. A non-negative prefix argument, {C-u C-j} or {C-c | |
41 a} adds the cell as a child of the current cell. {C-c p} adds the | |
42 cell as the sibling of the current cell's parent. | |
43 | |
44 2b4 Cell and Tree Deletion: {C-c C-k} kills the current cell and its | |
45 entire subtree. {C-c k} kills the contents of a cell from point | |
46 through the end of the cell. {C-u C-c k} kills the entire | |
47 contents of the cell regardless of the location of point. You may | |
48 then yank the contents into another cell with {C-y}. | |
49 | |
50 2b5 Tree Demotion and Promotion: Trees may be demoted or promoted by | |
51 hitting {TAB} or {M-TAB} respectively, as in most outliners today | |
52 (their sub-levels move with them). {M-0 TAB} and {M-0 M-TAB} will | |
53 demote and promote trees and will additionally refill each cell | |
54 which has not been specially marked to prevent refilling. | |
55 | |
56 You can also use a command line interface and either enter cell | |
57 ids or select the cells to operate upon by using your mouse. | |
58 | |
59 2b6 Cell and Tree Filling: {M-q} or {M-j} refills a paragraph within a | |
60 cell so that its lines wrap within the current margin settings. | |
61 {C-c M-q} or {C-c M-j} refills all paragraphs within a cell. | |
62 {C-M-q} or {C-M-j} refills all cells within a tree. | |
63 | |
64 Set the variable, kotl-mode:refill-flag, to t if you want moving, | |
65 promoting, demoting, exchanging, splitting and appending cells to | |
66 also automatically refill each cell. | |
67 | |
68 2b7 Cursor Movement: In addition to normal Emacs movement commands, | |
69 you can move within a cell or from one cell or tree to another. | |
70 | |
71 {C-c ,} - Move to the beginning of the current cell. | |
72 {C-c .} - Move to the end of the current cell. | |
73 | |
74 {C-c C-n} - Move to the next visible cell, regardless of level. | |
75 {C-c C-p} - Move to the prev visible cell, regardless of level. | |
76 | |
77 {C-c C-f} - Move forward to this cell's successor, if any. | |
78 {C-c C-b} - Move backward to this cell's predecessor, if any. | |
79 | |
80 {C-c C-d} - Move to first child of current cell, if any. | |
81 | |
82 {C-c C-u} - Move to parent cell of current cell, if any. | |
83 | |
84 {C-c <} - Move to the first sibling at the current level. | |
85 {C-c >} - Move to the last sibling at the current level. | |
86 | |
87 {C-c ^} - Move to the level 1 root of the current tree. | |
88 {C-c $} - Move to the last cell in the tree rooted at point. | |
89 | |
90 2b8 Tree Movement and Copying: Entire outline trees can be moved or | |
91 copied with single commands. Simply invoke the desired command | |
92 and then double click with the Action Key on the desired root cell | |
93 for each argument for which you are prompted. | |
94 | |
95 Copying and moving only work within a single outline right now, so | |
96 don't use them to move trees across different outline files. You | |
97 can, however, copy an outline tree to a non-outline buffer with: | |
98 {C-c M-c} - Copy a koutline tree to a non-koutline buffer. | |
99 {C-c @} - Copy a koutline tree to an outgoing mail message. | |
100 | |
101 {C-c c} - Copy <tree> to follow as sibling of <cell>. | |
102 {C-u C-c c} - Copy <tree> to follow as first child of <cell>. | |
103 | |
104 {C-c C-c} - Copy <tree> to precede <cell>. | |
105 {C-u C-c C-c} - Copy <tree> as first child of the parent of <cell>. | |
106 | |
107 {C-c m} - Move <tree> to follow as sibling of <cell>. | |
108 {C-u C-c m} - Move <tree> to follow as first child of <cell>. | |
109 | |
110 {C-c C-m} - Move <tree> to precede <cell>. | |
111 {C-u C-c C-m} - Move <tree> as first child of the parent of <cell>. | |
112 | |
113 If you have mouse support under Hyperbole, you can move entire | |
114 trees with mouse clicks. Simply click the Assist Key within the | |
115 indentation to the left of a cell text and you will be prompted | |
116 for a tree to move. Double click the Action Key within the body | |
117 of the root cell of the tree to move and then double click within | |
118 the body of the root cell of the tree you want it to follow. | |
119 | |
120 2b9 Cell Transposition: The move and copy commands rearrange entire | |
121 trees. The following two commands exchange the locations of two | |
122 cells. | |
123 | |
124 2b9a {C-c e} prompts for two cell addresses and exchanges the cells. | |
125 | |
126 2b9b {C-c t} does not prompt. It exchanges the current and | |
127 preceding cells. If there is no preceding cell it exchanges | |
128 the current and next cell. | |
129 | |
130 {C-c t} with a prefix argument of zero exchanges the cells in | |
131 which point and mark fall. | |
132 | |
133 {C-c t} with a non-zero numeric prefix argument, N, moves | |
134 the current tree past maximally the next N visible cells. If | |
135 there are fewer visible, it makes the current cell the last | |
136 cell in the outline. | |
137 | |
138 2b10 Cell Splitting: You can split one cell into two adjacent cells | |
139 with {C-c s}. This leaves the cell contents preceding point in | |
140 the current cell, minus any trailing whitespace, and moves the | |
141 contents following point to a new sibling cell which is inserted | |
142 into the outline. {C-u C-c s} adds the new cell as the first | |
143 child of the original cell, rather than as its sibling. | |
144 | |
145 All cell attributes in the original cell are propagated to the new | |
146 one. | |
147 | |
148 2b11 Cell Appending: {C-c +} appends the contents of a specified cell | |
149 to the end of another cell. | |
150 | |
151 2b12 Hiding and Showing: Individual cells, branches, or particular | |
152 levels in the outline may be hidden or shown. These commands work | |
153 even when an outline buffer is read-only, e.g. when its file is | |
154 not checked out of a version control system yet. | |
155 | |
156 2b12a {C-c C-h} - Hide (collapse) tree rooted at point. | |
157 {C-c C-s} - Show (expand) tree rooted at point. | |
158 | |
159 {C-c C-a} - Show (expand) all cells in the outline. | |
160 {C-x $} - Show all cells down to a particular level. The | |
161 user is prompted for the level or a prefix | |
162 argument may be given. | |
163 | |
164 {C-M-h} - Hide subtree at point, excluding root. | |
165 {M-x kotl-mode:show-subtree} - Show subtree at point. | |
166 | |
167 {C-c C-o} - Overview, show only first line of outline cells. | |
168 {C-c C-t} - Top-level, hide all cells below level 1 and show | |
169 only the first line of each level 1 cell. | |
170 | |
171 2b12b A click or press of the Action Key within a cell's body, but | |
172 not on a button, toggles between hiding and showing the tree | |
173 rooted at point. | |
174 | |
175 2b13 Cell Identifiers: Permanent ids are associated with each cell and | |
176 can be used in hyperlinks that are maintained as cells are | |
177 reordered in a file. (These ids may also be displayed in place of | |
178 the outline level relative ids. Use {C-c C-l id RET}.) Permanent | |
179 ids are numbered from 0, where 0 is the root node of the entire | |
180 outline. This node is never visible within the outline. | |
181 Permanent ids always begin with a 0, as in 012, to distinguish | |
182 them from relative ids. | |
183 | |
184 2b14 Cell Attributes: Each cell has its own attribute list. The | |
185 attribute lists for the cells in the tree rooted at point can be | |
186 displayed by pressing the Assist Key. {C-c h} prompts for a kcell | |
187 id and displays its attributes. {C-u C-c h} prompts for a kcell | |
188 id and displays the attributes for it and its subtree; use 0 as | |
189 the kcell id to see attributes for all visible cells in the | |
190 outline. | |
191 | |
192 Use {C-c C-i} to add an attribute or to modify an existing | |
193 attribute to the cell at point. | |
194 | |
195 2b15 File Insertion: The elements of another buffer or file may be | |
196 inserted into a koutline as a set of cells by using the {C-x i} | |
197 command. When prompted, you may use a buffer name or file name | |
198 from which to insert. | |
199 | |
200 2b15a The cells will be inserted as the successors of the current | |
201 cell unless {C-u C-x i} is used and then they are inserted as | |
202 the initial children of the current cell. | |
203 | |
204 2b15b See the documentation for the variables, kimport:mode-alist and | |
205 kimport:suffix-alist, for information on mode and | |
206 suffix-specific conversions performed on files before they are | |
207 inserted. This same conversion process applies if you invoke | |
208 {M-x kotl-mode RET} in a non-koutline buffer or if you perform | |
209 a generic file import as described in <@ 2b16>. | |
210 | |
211 2b15c Use {M-x kotl-mode:insert-file-contents RET} to insert the | |
212 entire contents of a file into the current cell at the location | |
213 of point. | |
214 | |
215 2b16 File Importation: The outliner presently supports conversion of | |
216 three types of files into koutline files. You can choose to | |
217 import a file into an existing koutline, following the tree at | |
218 point, or to create a new koutline of the imported file contents. | |
219 {M-x kimport:file RET} will select the importation type based on | |
220 the buffer or file name suffix of the file to import. Use one of | |
221 the following commands if you want to control the type of | |
222 importation explicitly. | |
223 | |
224 2b16a Text Files | |
225 | |
226 2b16a1 In a text buffer, use {M-x kotl-mode RET} to convert | |
227 the buffer into a koutline in-place. You will lose the old | |
228 format of the buffer when you do this. | |
229 | |
230 2b16a2 Use {M-x kimport:text RET} and you will be prompted for a | |
231 text buffer or file to import and the new koutline buffer or | |
232 file to create from its text. It will also import the | |
233 contents, attributes and level structure of cells from a | |
234 koutline. | |
235 | |
236 With this command, your original file remains intact. | |
237 | |
238 2b16b Star Outline Files: Star outlines are standard Emacs outlines | |
239 where each entry begins with one or more asterisk characters. | |
240 Use {M-x kimport:star-outline RET} and you will be prompted | |
241 for the star outline buffer or file to import and the new | |
242 koutline buffer or file to create. | |
243 | |
244 2b16c Augment Files Numbered on the Right-Side: (Skip this if you are | |
245 unfamiliar with this sort of file.) Files exported from the | |
246 Augment system as text often have alphanumeric statement | |
247 identifiers on the right side. | |
248 | |
249 Use {M-x kimport:aug-post-outline RET} and you will be prompted | |
250 for the augment buffer or file to import and the koutline to | |
251 create. | |
252 | |
253 2b17 View Specification: Flexible views of outlines may be specified | |
254 with succinct single character codes. | |
255 | |
256 2b17a The current view spec is shown in the modeline after the buffer | |
257 name, delimited by <|>. | |
258 | |
259 2b17b The current view spec is saved whenever the outline is saved. | |
260 The next time the outline is read in, this will be the initial | |
261 view. The standard initial viewspec is <|ben>. | |
262 | |
263 2b17c {C-c C-v} prompts for a view spec string in which the following | |
264 codes are valid. Any invalid characters in a view spec are | |
265 ignored. | |
266 | |
267 2b17c1 a: Show all cell levels and all lines in cells. | |
268 | |
269 2b17c2 b: Turn on blank lines between cells. Without this code, | |
270 blank lines will be turned off. You can also use the | |
271 {C-c b} key binding to toggle line numbers on and off | |
272 independent of any other view settings. | |
273 | |
274 2b17c3 cN: Hide any lines greater than N in each cell. 0 means | |
275 don't cutoff any lines. | |
276 | |
277 2b17c4 e: Show ellipses when some content is hidden. | |
278 | |
279 2b17c5 lN: Hide cells at levels deeper than N. 0 means don't hide | |
280 any cells. | |
281 | |
282 2b17c6 n: Turn on the default label type. | |
283 n0: Display idstamps. | |
284 n1: Display alpha labels. | |
285 n2: Display partial alpha labels (don't use this). | |
286 n.: Display legal labels. | |
287 n*: Display star labels. | |
288 n~: Turn off labels. (n viewspec is removed from modeline). | |
289 | |
290 2b17d Try a view spec of 'c2l1' to turn off blank lines, to clip each | |
291 cell after its second line, and to hide all cells below level | |
292 one. | |
293 | |
294 2c Hyperlinks may be embedded in cells and may refer to other cells. | |
295 Explicit Hyperbole buttons may be created as usual via mouse drags, | |
296 see "(hyperbole.info)By Dragging". A klink is a special implicit | |
297 link button that jumps to a specific outline cell. | |
298 | |
299 2c1 Here are three klink examples: | |
300 | |
301 2c1a <@ 2b=06> jumps to the cell within this outline which has | |
302 permanent id `06' and relative id `2b', namely the preceding | |
303 sibling of this cell's parent. <@ 06> does the same thing, as | |
304 does <@ 2b>, though this latter form will not maintain the link | |
305 properly if the cell is moved elsewhere within the outline. | |
306 | |
307 2c1b <EXAMPLE.kotl, 3=012 |c1e> displays the named file, starting at | |
308 the unimplemented features section whose permanent identifer is | |
309 012, with the view specification of: blank lines turned off, | |
310 cutoff after one line per cell, and show ellipses for cells or | |
311 trees which are clipped. | |
312 | |
313 2c1c <|ben> is a klink consisting of just a view specification. | |
314 When activated, it sets the view in the current outline to | |
315 display blank lines, ellipses following collapsed lines and | |
316 standard alphanumeric numbering. | |
317 | |
318 2c2 There are a number of easy ways to insert klinks into koutlines. | |
319 If you have mouse support under Hyperbole, simply click the Action | |
320 Key within the indentation to the left of a cell text. If you | |
321 then double click on some cell, a link to that cell will be | |
322 inserted where you started. From a keyboard, use {C-c l} when in | |
323 a koutline or {C-h h o l} when not in a koutline to insert a | |
324 klink. | |
325 | |
326 2d The outliner code runs on virtually any UNIX system. It supports dumb | |
327 terminal, X window, and NEXTSTEP (Display Postscript) displays. | |
328 | |
329 3 Features remaining to be implemented: | |
330 | |
331 3a Branch handling commands (all cells at same level). | |
332 | |
333 3b Copying a single cell without its subtree. | |
334 | |
335 3c Replacing one cell or one tree with another. | |
336 | |
337 3d Transposing two trees, rather than two cells. | |
338 | |
339 3e A small amount of work remains to enable setting different per level | |
340 fonts and colors, so that outline levels are visually easy to | |
341 distinguish. | |
342 | |
343 3f Flexible view handling has been only partially implemented. | |
344 | |
345 3g The code to export from koutlines to other formats has not yet been | |
346 written. Exporting to HTML, for example would be very useful. | |
347 | |
348 | |
349 "ben" ;; kvspec:current | |
350 74 ;; id-counter | |
351 alpha ;; label-type | |
352 3 ;; label-min-width | |
353 " " ;; label-separator | |
354 3 ;; level-indent | |
355 | |
356 ;; depth-first kcell attributes | |
357 [[0 | |
358 (creator "weiner@oakhill.sps.mot.com" create-time "19951102:11:15:03" id-counter 74 file "/usr1/dingus/weiner/hypb/kotl/EXAMPLE.kotl")] | |
359 [20 | |
360 (creator "weiner" create-time "19940104:17:38:28")] | |
361 [34 | |
362 (creator "weiner@pts.mot.com" create-time "19940610:16:43:55")] | |
363 [35 | |
364 (creator "weiner@pts.mot.com" create-time "19940610:16:44:03")] | |
365 [4 | |
366 (creator "weiner" create-time "19940104:17:38:29")] | |
367 [5 | |
368 (creator "weiner" create-time "19940104:17:38:29")] | |
369 [6 | |
370 (creator "weiner" create-time "19940104:17:38:29")] | |
371 [14 | |
372 (creator "weiner" create-time "19940104:17:38:29")] | |
373 [67 | |
374 (creator "weiner@oakhill.sps.mot.com" create-time "19951028:04:29:13" no-fill t)] | |
375 [15 | |
376 (creator "weiner" create-time "19940104:17:38:29")] | |
377 [31 | |
378 (creator "weiner" create-time "19940306:18:11:43")] | |
379 [7 | |
380 (creator "weiner" create-time "19940104:17:38:29")] | |
381 [46 | |
382 (creator "weiner@oakhill.sps.mot.com" create-time "19950614:21:35:17")] | |
383 [43 | |
384 (creator "weiner@pts.mot.com" create-time "19940610:22:00:46")] | |
385 [22 | |
386 (creator "weiner" create-time "19940127:22:41:42")] | |
387 [32 | |
388 (creator "weiner@pts.mot.com" create-time "19940610:16:31:28")] | |
389 [41 | |
390 (creator "weiner@pts.mot.com" create-time "19940610:18:55:09")] | |
391 [42 | |
392 (creator "weiner@pts.mot.com" create-time "19940610:18:55:57")] | |
393 [33 | |
394 (creator "weiner@pts.mot.com" create-time "19940610:16:31:29")] | |
395 [47 | |
396 (creator "weiner@oakhill.sps.mot.com" create-time "19951022:22:59:26" no-fill t)] | |
397 [8 | |
398 (creator "weiner" create-time "19940104:17:38:29")] | |
399 [28 | |
400 (creator "weiner" create-time "19940128:22:50:44")] | |
401 [29 | |
402 (creator "weiner" create-time "19940128:22:50:54")] | |
403 [10 | |
404 (creator "weiner" create-time "19940104:17:38:29")] | |
405 [30 | |
406 (creator "weiner" create-time "19940129:00:27:59")] | |
407 [62 | |
408 (creator "weiner@oakhill.sps.mot.com" create-time "19951026:08:32:57" no-fill t)] | |
409 [70 | |
410 (creator "weiner@oakhill.sps.mot.com" create-time "19951030:19:18:49" no-fill t)] | |
411 [71 | |
412 (creator "weiner@oakhill.sps.mot.com" create-time "19951030:19:19:40" no-fill t)] | |
413 [73 | |
414 (creator "weiner@oakhill.sps.mot.com" create-time "19951030:19:23:09" no-fill t)] | |
415 [63 | |
416 (creator "weiner@oakhill.sps.mot.com" create-time "19951026:19:31:34" no-fill t)] | |
417 [64 | |
418 (creator "weiner@oakhill.sps.mot.com" create-time "19951026:19:33:01" no-fill t)] | |
419 [69 | |
420 (creator "weiner@oakhill.sps.mot.com" create-time "19951029:06:24:35" no-fill t)] | |
421 [68 | |
422 (creator "weiner@oakhill.sps.mot.com" create-time "19951029:06:24:27" no-fill t)] | |
423 [65 | |
424 (creator "weiner@oakhill.sps.mot.com" create-time "19951026:19:33:08" no-fill t)] | |
425 [66 | |
426 (creator "weiner@oakhill.sps.mot.com" create-time "19951026:19:33:15" no-fill t)] | |
427 [48 | |
428 (creator "weiner@oakhill.sps.mot.com" create-time "19951023:05:55:19" no-fill t)] | |
429 [57 | |
430 (creator "weiner@oakhill.sps.mot.com" create-time "19951023:10:07:06" no-fill t)] | |
431 [58 | |
432 (creator "weiner@oakhill.sps.mot.com" create-time "19951023:10:07:26" no-fill t)] | |
433 [49 | |
434 (creator "weiner@oakhill.sps.mot.com" create-time "19951023:05:55:55" no-fill t)] | |
435 [55 | |
436 (creator "weiner@oakhill.sps.mot.com" create-time "19951023:08:56:41" no-fill t)] | |
437 [50 | |
438 (creator "weiner@oakhill.sps.mot.com" create-time "19951023:05:57:26" no-fill t)] | |
439 [51 | |
440 (creator "weiner@oakhill.sps.mot.com" create-time "19951023:05:58:31" no-fill t)] | |
441 [56 | |
442 (creator "weiner@oakhill.sps.mot.com" create-time "19951023:08:57:09" no-fill t)] | |
443 [52 | |
444 (creator "weiner@oakhill.sps.mot.com" create-time "19951023:05:59:59" no-fill t)] | |
445 [53 | |
446 (creator "weiner@oakhill.sps.mot.com" create-time "19951023:06:00:48" no-fill t)] | |
447 [54 | |
448 (creator "weiner@oakhill.sps.mot.com" create-time "19951023:06:05:50" no-fill t)] | |
449 [26 | |
450 (creator "weiner" create-time "19940128:03:56:23")] | |
451 [27 | |
452 (creator "weiner" create-time "19940128:22:36:54")] | |
453 [59 | |
454 (creator "weiner@oakhill.sps.mot.com" create-time "19951024:03:40:05" no-fill t)] | |
455 [60 | |
456 (creator "weiner@oakhill.sps.mot.com" create-time "19951024:03:40:13" no-fill t)] | |
457 [61 | |
458 (creator "weiner@oakhill.sps.mot.com" create-time "19951024:03:40:42" no-fill t)] | |
459 [1 | |
460 (creator "weiner" create-time "19940104:17:38:29")] | |
461 [11 | |
462 (creator "weiner" create-time "19940104:17:38:29")] | |
463 [12 | |
464 (creator "weiner" create-time "19940104:17:38:29")] | |
465 [44 | |
466 (creator "bweiner@pts.mot.com" create-time "19940728:21:56:49")] | |
467 [36 | |
468 (creator "weiner@pts.mot.com" create-time "19940610:16:49:34")] | |
469 [37 | |
470 (creator "weiner@pts.mot.com" create-time "19940610:16:50:02")] | |
471 [38 | |
472 (creator "weiner@pts.mot.com" create-time "19940610:16:50:13")] | |
473 [13 | |
474 (creator "weiner" create-time "19940104:17:38:29")] | |
475 [16 | |
476 (creator "weiner" create-time "19940104:17:38:29")] | |
477 [74 | |
478 (creator "weiner@oakhill.sps.mot.com" create-time "19951101:21:56:21" no-fill t)] | |
479 nil nil nil nil nil nil nil nil nil nil nil nil nil nil] |