Updated start page help following rebinding.
[elpher.git] / NOTES.org
index f39f497..208c325 100644 (file)
--- a/NOTES.org
+++ b/NOTES.org
@@ -1,28 +1,57 @@
 #+TITLE: Development notes/ideas
 
-* Bookmarks
+* Planned improvements
+  
+** TODO Make URLs the basic address type.
+Currently I waste a lot of effort converting between
+URL and non-URL representations.  This is unnecessary, and
+actually makes lots of things uglier.
+
+For example, the bookmarks file contains addresses in Elpher's
+internal representation, whereas I expect users would prefer
+it contain URLs.
+
+So the idea would be for (elpher-node-address node) to be
+a either a string or a symbol, with symbols used for "special"
+pages (bookmarks, start page, etc).  The getter functions
+`elpher-address-selector' etc will still do what they currently
+do, but will process the URL to do it.
+
+This also means that non-gopher URLs will be explicitly represented
+as such: no more abusing the "h" type for these.
 
-Currently the bookmark page replaces the current page, and it
-does so silently (i.e. it doesn't become part of the link hierarchy).
-I think this is a mistake, as it results in confusing behaviour when
-traversing the link hierarchy after visiting one of the bookmarked links.
+** TODO Allow multiple elpher buffers
 
-Instead, I think I should
-1. Make the bookmark page part of the hierarchy, and
-2. Reinstate the visited node hash table to avoid excess link hierarchy pollution.
+   Shouldn't be too hard, just need elpher-current-node to be
+buffer-local and allow various buffer-switching procedures to
+do something sensible.
+   
+** TODO Turn on lexical scoping
 
-In order to accomplish 1. it will be necessary to make the bookmark page renderer
-a proper getter function, and one that never caches the contents of the buffer.
+   A branch exists for this, but there are some compilation kinks
+to iron out.
 
-Actually, I might have to think about that a bit more.  I don't know
-how to answer the question of what the best thing to do with node
-parent links when using a cached node in place of a new node.  (Maybe
-I always update node.parent unless parent is already an ancestor of
-node?)
+** TODO Remove "redraw" command
+This is only necessary for returning from displaying the raw
+server response.  If I can provide a better way of doing that
+then we can get rid of redraw entirely.
 
-* Selectors
+** TODO Replace support for user-specified starting pages
+This used to be available, but was removed during a refactor.
+
+** TODO Allow for grouping of bookmarks
+To support this I'd like to add a bookmark page specific
+set of keybindings.  Currently all bindings available on
+the bookmark page are available everywhere else.  But
+expanding and collapsing bookmark groups sounds like it
+might need more specific bindings.
+
+* Current issues
+
+* Completed improvements
+  
+** DONE Implement support for telnet entries
 
-** TODO Implement support for telnet entries
 Similar to http entries, telnet entries will be handled by code
 external to elpher. However it seems I made http entry handling a
 special case, and I don't want another!  So the only option is to
@@ -30,10 +59,39 @@ bring both http and telnet entries back into the fold by representing
 them both as standard nodes and having the grunt work done by getter
 functions.
 
-* Pain points
+** DONE Allow users to access selected and current node details.
+   
+** DONE Implement bookmark system
+
+  Currently the bookmark page replaces the current page, and it
+  does so silently (i.e. it doesn't become part of the link hierarchy).
+  I think this is a mistake, as it results in confusing behaviour when
+  traversing the link hierarchy after visiting one of the bookmarked links.
+
+  Instead, I think I should
+  1. Make the bookmark page part of the hierarchy, and
+  2. Reinstate the visited node hash table to avoid excess link hierarchy pollution.
+
+  In order to accomplish 1. it will be necessary to make the bookmark page renderer
+  a proper getter function, and one that never caches the contents of the buffer.
+
+  Actually, I might have to think about that a bit more.  I don't know
+  how to answer the question of what the best thing to do with node
+  parent links when using a cached node in place of a new node.  (Maybe
+  I always update node.parent unless parent is already an ancestor of
+  node?)
+
   
-A list of annoyances that need to be fixed.
+** DONE Support character encoding diversity
+
+* Old issues
+
+** DONE Org mode faces are not present in recent emacs versions
+Even 26.1 doesn't seem to have these.  This means that, for many
+users, elpher doesn't show any difference between any of the
+item types.  Not a major problem at all, but the faces we inherit
+from should definitely be ones which have been present for much
+longer.  Perhaps the font lock mode faces are the way to go after
+all.
 
-1. There's no way to determine the address of the current node.
-2. There's no way to determin the address of child node without using the mouse.
-3. Only one elpher buffer can exist at one time.
+Update: changed all default faces to inherit from font-lock and basic faces.