afd3bfb86099570072c202fd454b6f2a3251af7e
[elpher.git] / NOTES.org
1 #+TITLE: Development notes/ideas
2
3 * Planned improvements
4
5 ** TODO Allow multiple elpher buffers
6
7    Shouldn't be too hard, just need elpher-current-node to be
8 buffer-local and allow various buffer-switching procedures to
9 do something sensible.
10    
11 ** TODO Turn on lexical scoping
12
13    A branch exists for this, but there are some compilation kinks
14 to iron out.
15
16 ** TODO Remove "redraw" command
17 This is only necessary for returning from displaying the raw
18 server response.  If I can provide a better way of doing that
19 then we can get rid of redraw entirely.
20
21 ** TODO Replace support for user-specified starting pages
22 This used to be available, but was removed during a refactor.
23
24 * Current issues
25
26 * Completed improvements
27   
28 ** DONE Implement support for telnet entries
29
30 Similar to http entries, telnet entries will be handled by code
31 external to elpher. However it seems I made http entry handling a
32 special case, and I don't want another!  So the only option is to
33 bring both http and telnet entries back into the fold by representing
34 them both as standard nodes and having the grunt work done by getter
35 functions.
36
37 ** DONE Allow users to access selected and current node details.
38    
39 ** DONE Implement bookmark system
40
41   Currently the bookmark page replaces the current page, and it
42   does so silently (i.e. it doesn't become part of the link hierarchy).
43   I think this is a mistake, as it results in confusing behaviour when
44   traversing the link hierarchy after visiting one of the bookmarked links.
45
46   Instead, I think I should
47   1. Make the bookmark page part of the hierarchy, and
48   2. Reinstate the visited node hash table to avoid excess link hierarchy pollution.
49
50   In order to accomplish 1. it will be necessary to make the bookmark page renderer
51   a proper getter function, and one that never caches the contents of the buffer.
52
53   Actually, I might have to think about that a bit more.  I don't know
54   how to answer the question of what the best thing to do with node
55   parent links when using a cached node in place of a new node.  (Maybe
56   I always update node.parent unless parent is already an ancestor of
57   node?)
58
59   
60 ** DONE Support character encoding diversity
61
62 * Old issues
63
64 ** DONE Org mode faces are not present in recent emacs versions
65 Even 26.1 doesn't seem to have these.  This means that, for many
66 users, elpher doesn't show any difference between any of the
67 item types.  Not a major problem at all, but the faces we inherit
68 from should definitely be ones which have been present for much
69 longer.  Perhaps the font lock mode faces are the way to go after
70 all.
71
72 Update: changed all default faces to inherit from font-lock and basic faces.