View markup |∞| Changed: prior 2024 May 01

Seemless traversal of a matrix

A written word is a list of symbols. A sentence is a list of words. A paragraph is a list of sentences. A list of lists is a matrix. A paragraph is a matrix of symbols.

Rather than a "desktop" file for Emacs [gnu.org], use a plain text file marked with HTML.

An <iframe> can store a reference to a document in its src attribute. A bonus is the being able to store a plain text document, optionally marked with HTML, in the srcdoc attribute, too. That enables sharing a workspace with someone else, by also including such files. Rather similar to "archive-mode" or "tar-mode", except the document is plain text with HTML marks. Additionally, an unsaved buffer could be recorded within the <iframe> region itself, as that region is ignored.

A document could be saved as "data" within the src attribute. Potentially, an unsaved buffer could be recorded within the <iframe> region as data, with an attribute declaring the number of bytes within the region.

A pair of keybindings, like Tab and ShiftTab, would traverse the links in an HTML view, without including <iframe> in the sequence. A separate pair of keybindings would traverse the sequence of internal frames. Either way, the traversal begins from the location of the cursor rather than always starting at the top of the document. Another pair of keybindings shifts the focus into and out of a currently focused <iframe>. Then within the document of an internal frame the links and internal frames may be traversed with the keybindings.

A pair of keybindings would make a focused internal frame fill the current view, or reveal its outer document. There is always an outer document available for any view, upon request, though there is no need for any other mark or text than the <iframe> mark for a document and its buffer for such an outer document.

Document any view

Three sides to a view: a view within tiled-view management; a view as an internal frame within a plain text document; an <iframe> mark in a plain text document.

The contents of a tiled view can be reduced to an internal view within the same tiled view when requested, and then those contents become represented by an <iframe> region within a new document. Like an <iframe> region in an HTML marked document, the internal frame would have a default maximum size and perhaps default padding, borders, or margin. However, the internal frame is still a view like any other.

Or, the view can be documented. The contents of the view is reduced to a mere <iframe> mark within a new plain text document ready for editing. A separate view can display the rendered documentation and internal frame, if desired, as can already be done with any document.

In essence, a view can be said to be showing a rendered HTML document focused on only an <iframe>, but a view is actually just a view. An internal frame can have any type of document, because it is a view like any other view in the tiled-view management. Seemlessly traverse the depths of internal views.

The width and height CSS properties and HTML attributes could also be extended to accept a ratio, as a more exact value than a percentage, f.e. "2/3" instead of "66%".

The white-space CSS property could have "none" as a value, meaning "no interpretation of whitespace". Sort of like "pre", except whitespace characters are like any other character, therefore no interpretation of newlines either, t.i. no line breaks. Instead, the whole content automatically wraps at the width of the region, essentially like a single paragraph. In particular, this would work well for "data".

There could be an outline view of sorts, listing the views and their documents by name, and the subviews of those documents, and so on. Gradually explored, each sublist expanded when requested, maybe like dired or ibuffer.

Requesting an outer view allows documenting a viewset. It would be possible to view the documentation and the documents of the internal frames by overiding the declared sizes of every <iframe> with CSS, perhaps a default maxium size. Otherwise, everything other than <iframe> marks are hidden, with those internal frames laid out according to their sequence and the ratios of their width and height.


sharing.htm