home *** CD-ROM | disk | FTP | other *** search
- "Kotl-3.0" ;; file-format
- 1 The outliner is a part of the Hyperbole information management system.
- It produces hierarchically structured files consisting of trees of
- cells.
-
- 1a A cell is an element of the outline which has its own display label
- and unique, permanent identifier (idstamp).
-
- 1b Idstamps support the creation of hyperlinks to cells which are
- maintained as the structure of an outline changes.
-
- 2 Features implemented include:
-
- 2a Full on screen editing (just like a Macintosh). Click to type in a
- node (we call them cells) and just enter text. Structure is
- automatically maintained for you. All of the standard Emacs editor
- command set is supported both through keyboard and mouse interaction.
-
- 2b Advanced outline processing.
-
- 2b1 Autonumbering: Full auto-labeling in Augment (1a2) or legal
- (1.1.2) formats. Augment style is the default. Single level
- autonumbering (only the last part of the level number is shown),
- as commonly seen in outliner products, is also available, though
- it has not been tested very much and so is not recommended. Use
- {C-c C-l ?} to select a different label type.
-
- 2b2 Cell Creation: {C-j} adds a new cell as a sibling following the
- current cell. A non-negative prefix argument, {C-u C-j} or {C-c
- a} adds the cell as a child of the current cell. {C-c p} adds the
- cell as the sibling of the current cell's parent.
-
- 2b3 Cell and Tree Deletion: {C-c C-k} kills the current cell and its
- entire subtree. {C-c k} kills the contents of a cell from point
- through the end of the cell. {C-u C-c k} kills the entire
- contents of the cell regardless of the location of point. You may
- then yank the contents into another cell with {C-y}.
-
- 2b4 Tree Demotion and Promotion: Trees may be demoted or promoted by
- hitting {TAB} or {M-TAB} respectively, as in most outliners today
- (their sub-levels move with them). {M-0 TAB} and {M-0 M-TAB} will
- demote and promote trees and will additionally refill each cell
- which has not been specially marked to prevent refilling.
-
- You can also use a command line interface and either enter cell
- ids or select the cells to operate upon by using your mouse.
-
- 2b5 Cell and Tree Filling: {M-q} or {M-j} refills a paragraph within a
- cell so that its lines wrap within the current margin settings.
- {C-c M-q} or {C-c M-j} refills all paragraphs within a cell.
- {C-M-q} or {C-M-j} refills all cells within a tree.
-
- Set the variable, kotl-mode:refill-flag, to t if you want moving,
- promoting, demoting, exchanging and splitting cells to also
- automatically refill each cell.
-
- 2b6 Cursor Movement: In addition to normal Emacs movement commands,
- you can move within a cell or from one cell or tree to another.
-
- {C-c ,} - Move to the beginning of the current cell.
- {C-c .} - Move to the end of the current cell.
-
- {C-c C-n} - Move to next cell.
- {C-c C-p} - Move to previous cell.
-
- {C-c C-f} - Move forward to next cell at the same level.
- {C-c C-b} - Move backward to next cell at the same level.
-
- {C-c d} or
- {C-c C-d} - Move to first child of current cell, if any.
-
- {C-c u} or
- {C-c C-u} - Move to parent cell of current cell, if any.
-
- {C-c <} - Move to the first sibling at the current level.
- {C-c >} - Move to the last sibling at the current level.
-
- {C-c ^} - Move to the level 1 root of the current tree.
- {C-c $} - Move to the last cell in the tree rooted at point.
-
- 2b7 Tree Movement and Copying: Entire outline trees can be moved or
- copied with single commands. Simply invoke the desired command
- and then double click with the Smart Key on the desired root cell
- for each argument for which you are prompted.
-
- Copying and moving only work within a single outline right now, so
- don't use them to move trees across different outline files. You
- can, however, copy an outline tree to a non-outline buffer with:
- {C-c M-c} - Copy a koutline tree to a non-koutline buffer.
- {C-c @} - Copy a koutline tree to an outgoing mail message.
-
- {C-c c} - Copy <tree> to follow as sibling of <cell>.
- {C-u C-c c} - Copy <tree> to follow as first child of <cell>.
-
- {C-c C-c} - Copy <tree> to precede <cell>.
- {C-u C-c C-c} - Copy <tree> as first child of the parent of <cell>.
-
- {C-c m} - Move <tree> to follow as sibling of <cell>.
- {C-u C-c m} - Move <tree> to follow as first child of <cell>.
-
- {C-c C-m} - Move <tree> to precede <cell>.
- {C-u C-c C-m} - Move <tree> as first child of the parent of <cell>.
-
- If you have mouse support under Hyperbole, you can move entire
- trees with mouse clicks. Simply click the Assist Key within the
- indentation to the left of a cell text and you will be prompted
- for a tree to move. Double click the Action Key within the body
- of the root cell of the tree to move and then double click within
- the body of the root cell of the tree you want it to follow.
-
- 2b8 Cell Transposition: The move and copy commands rearrange entire
- trees. The following two commands exchange the locations of two
- cells.
-
- 2b8a {C-c e} prompts for two cell addresses and exchanges the cells.
-
- 2b8b {C-c t} does not prompt. It exchanges the current and
- preceding cells. If there is no preceding cell it exchanges
- the current and next cell.
-
- {C-c t} with a prefix argument of zero exchanges the cells in
- which point and mark fall.
-
- {C-c t} with a non-zero numeric prefix argument, N, moves
- the current tree past maximally the next N visible cells. If
- there are fewer visible, it makes the current cell the last
- cell in the outline.
-
- 2b9 Cell Splitting: You can split one cell into two adjacent cells
- with {C-c s}. This leaves the cell contents preceding point in
- the current cell, minus any trailing whitespace, and moves the
- contents following point to a new sibling cell which is inserted
- into the outline. {C-u C-c s} adds the new cell as the first
- child of the original cell, rather than as its sibling.
-
- 2b10 Hiding and Showing: Individual cells, branches, or particular
- levels in the outline may be hidden or shown. These commands work
- even when an outline buffer is read-only, e.g. when its file is
- not checked out of a version control system yet.
-
- 2b10a {C-c C-h} - Hide (collapse) tree rooted at point.
- {C-c C-s} - Show (expand) tree rooted at point.
-
- {C-c C-a} - Show (expand) all cells in the outline.
- {C-x $} - Show all cells down to a particular level. The
- user is prompted for the level or a prefix
- argument may be given.
-
- {C-M-h} - Hide subtree at point, excluding root.
- {M-x kotl-mode:show-subtree} - Show subtree at point.
-
- {C-c C-o} - Overview, show only first line of outline cells.
- {C-c C-t} - Collapse each cell so that only first line shows.
-
- 2b10b A click of the Smart Key within a cell's body, but not on a
- button toggles between hiding and showing the tree rooted at
- point.
-
- 2b11 Cell Identifiers: Permanent ids are associated with each cell and
- can be used in hyperlinks that are maintained as cells are
- reordered in a file. (These ids may also be displayed in place of
- the outline level relative ids. Use {C-c C-l id RET}.) Permanent
- ids are numbered from 0, where 0 is the root node of the entire
- outline. This node is never visible within the outline.
- Permanent ids always begin with a 0, as in 012, to distinguish
- them from relative ids.
-
- 2b11 Cell Attributes: Each cell has its own attribute list. The
- attribute lists for the cells in the tree rooted at point can be
- displayed by pressing the Assist Key. {C-c h} prompts for a kcell
- id and displays its attributes. {C-u C-c h} prompts for a kcell
- id and displays the attributes for it and its subtree.
-
- 2c Hyperlinks may be embedded in cells and may refer to other cells.
- Explicit Hyperbole buttons may be created as usual via mouse drags,
- see "(hyperbole.info)Drags". A klink is a special implicit link
- button that jumps to a specific outline cell.
-
- 2c1 Here are two klink examples:
- <@ 2b=06> jumps to the cell within this outline which has
- permanent id `06' and relative id `2b', namely the preceding
- sibling of this cell's parent. <@ 06> does the same thing, as
- does <@ 2b>, though this latter form will not maintain the link
- properly if the cell is moved elsewhere within the outline.
-
- <EXAMPLE.kotl, 3=012> displays the unimplemented features
- section within the named file whose permanent identifer is 012.
-
- 2c2 There are a number of easy ways to insert klinks into koutlines.
- If you have mouse support under Hyperbole, simply click the Smart
- Key within the indentation to the left of a cell text. If you
- then double click on some cell, a link to that cell will be
- inserted where you started. From a keyboard, use {C-c l} or
- {C-h h o l} to insert a klink.
-
- 2d The outliner code runs on virtually any UNIX system. It supports dumb
- terminal, X window, and NEXTSTEP (Display Postscript) displays.
-
- 3 Features remaining to be implemented:
-
- 3a Branch handling commands (all cells at same level).
-
- 3b Copying a single cell without its subtree.
-
- 3c Replacing one cell or one tree with another.
-
- 3d Transposing two trees, rather than two cells.
-
- 3e A small amount of work remains to enable setting different per level
- fonts and colors, so that outline levels are visually easy to
- distinguish.
-
- 3f Flexible view handling has been only partially implemented.
-
- 46 ;; id-counter
- alpha ;; label-type
- 3 ;; label-min-width
- " " ;; label-separator
- 3 ;; level-indent
- ;; depth-first kcell attributes
- [[0
- (creator "weiner@oakhill.sps.mot.com" create-time "19950825:05:42:47" id-counter 46 file "/usr1/dingus/weiner/hypb/kotl/EXAMPLE.kotl")]
- [20
- (creator "weiner" create-time "19940104:17:38:28")]
- [34
- (creator "weiner@pts.mot.com" create-time "19940610:16:43:55")]
- [35
- (creator "weiner@pts.mot.com" create-time "19940610:16:44:03")]
- [4
- (creator "weiner" create-time "19940104:17:38:29")]
- [5
- (creator "weiner" create-time "19940104:17:38:29")]
- [6
- (creator "weiner" create-time "19940104:17:38:29")]
- [14
- (creator "weiner" create-time "19940104:17:38:29")]
- [15
- (creator "weiner" create-time "19940104:17:38:29")]
- [31
- (creator "weiner" create-time "19940306:18:11:43")]
- [7
- (creator "weiner" create-time "19940104:17:38:29")]
- [46
- (creator "weiner@oakhill.sps.mot.com" create-time "19950614:21:35:17")]
- [43
- (creator "weiner@pts.mot.com" create-time "19940610:22:00:46")]
- [22
- (creator "weiner" create-time "19940127:22:41:42")]
- [32
- (creator "weiner@pts.mot.com" create-time "19940610:16:31:28")]
- [41
- (creator "weiner@pts.mot.com" create-time "19940610:18:55:09")]
- [42
- (creator "weiner@pts.mot.com" create-time "19940610:18:55:57")]
- [33
- (creator "weiner@pts.mot.com" create-time "19940610:16:31:29")]
- [8
- (creator "weiner" create-time "19940104:17:38:29")]
- [28
- (creator "weiner" create-time "19940128:22:50:44")]
- [29
- (creator "weiner" create-time "19940128:22:50:54")]
- [10
- (creator "weiner" create-time "19940104:17:38:29")]
- [30
- (creator "weiner" create-time "19940129:00:27:59")]
- [26
- (creator "weiner" create-time "19940128:03:56:23")]
- [27
- (creator "weiner" create-time "19940128:22:36:54")]
- [1
- (creator "weiner" create-time "19940104:17:38:29")]
- [11
- (creator "weiner" create-time "19940104:17:38:29")]
- [12
- (creator "weiner" create-time "19940104:17:38:29")]
- [44
- (creator "bweiner@pts.mot.com" create-time "19940728:21:56:49")]
- [36
- (creator "weiner@pts.mot.com" create-time "19940610:16:49:34")]
- [37
- (creator "weiner@pts.mot.com" create-time "19940610:16:50:02")]
- [38
- (creator "weiner@pts.mot.com" create-time "19940610:16:50:13")]
- [13
- (creator "weiner" create-time "19940104:17:38:29")]
- [16
- (creator "weiner" create-time "19940104:17:38:29")]
- nil nil nil nil nil nil nil nil nil nil nil nil nil]
-