We imagine how a plugin on an About page might set or clear optional features in an item while editing. We briefly called this "charm". We consider here boolean flags but could expect this to grow to scalar values but to remain well short of editing arbitrary json structures.
There are three plugins known to interpret settings in Item json for which there is not yet a standard user interface for adjusting them. These include the Change plugin's submit option, Factory plugin's prompt message, and now Markdown's graph option. Change offers examples with and with the option set. Factory offers prompt editing with shift-double-click. So Markdown is alone in this need.
Eric Dobbs recognized that a customizable configuration plugin could be accessible while editing if placed on the keystroke accessible About page. matrix
# Tradeoff
We have many plugins made sufficiently configurable by recognizing keywords in their markup. For these the About pages exist to document their behavior.
An out-of-band option was desirable for enabling the graph capability of the Markdown plugin because its available markup conventions were already fully specified.
An out-of-band option was desirable for Factory and Change because neither interpreted any in-band markup. The argument here was that of simplicity.
The idea of options available while editing breaks down if there is not an editing operation offered already.
# Implementation
The standard textEditor adds a class to the Item's outer div while open. A plugin could query the dom for its existence.
$('.item.markdown.textEditing')
The editor will close with the loss of focus. Experiments show that navigation is possible without loss. Presumably click events necessary to toggle options can be similarly processed.
The Feature plugin should hide or otherwise disable when an open textEditor is not found. Graying out is preferable as it admits to the availability of options. It should disable should the editor close and reenable if reopened. This might require polling the dom. Yuck.
The textEditor currently requires a modification of the text field before it will create an Action when closed. We suffer from this when changing the Item type with the cmd-m keystroke. A more thorough check on close would greatly improve usability of both non-text edits.
We imagine a form-description markup that would specify the target plugin and the nature and name of fields to be modified. Discussion would follow in plain paragraphs as in these two examples.
PLUGIN markdown BOOLEAN graph
graph
Enable graph to have internal links offered as arcs to other titles in the style of the Graph plugin.
PLUGIN factory STRING prompt
prompt
A prompt suggests a specific use of a Factory plugin. The provided text replaces the Factory menu.
A hover over the Feature plugin while disabled should explain that it is to be used with the text Editor.