Modules › Mirrors and templates
Mirrors and templates
One piece of content in more than one place.
14 of 14 working
4 delighted · 9 verified · 1 tested
- verified Mirror from the bullet menu, then paste at the destinationpersona: mirror /help/mirrors
- verified ๐ Alt/Cmd+Shift+M mirrorsCtrl/Cmd+Shift+M opens the picker for sending this bullet somewhere else. The registry carries the binding, so it also appears in the slash commands, the bullet menu and the phone toolbar list without being written down four times. /help/hotkeys
- verified ๐ Typing (( opens a MIRROR FROM search widgetTyping (( brings an existing bullet here, which is the other direction from Mirror into and the one people reach for more often. If the bullet you typed it in was empty it is removed, because it was a placeholder rather than a line you wanted. /help/mirrors
- verified ๐ Editing any instance changes every instance /help/mirrors
- verified ๐ See them lists every place the content appearstest/actions.test.js /help/mirrors
- verified Detach Mirror turns it back into an independent bulletpersona: twin /help/mirrors
- verified A confirmation appears when a mirror is createdIt was not confirmed on this path until now: Mirror into... submitted in silence while the other door, Mirror something here, has always said so. Same intent, two doors, one mute. test/e2e/parity.mjs drives the chooser, asserts it narrows as you type, that the mirror says it was a mirror, and that both placements carry the mark. Three mutations red.persona: twin /help/mirrors
- verified Moving one instance moves only that instanceUndocumented upstream. Pando: position belongs to the placement, content belongs to the node.persona: twin
- verified Deleting one instance removes that placement; the content survives while another placement existsUndocumented upstream. Deleting the last placement deletes the content.persona: twin
- verified Completing any instance completes all of themUndocumented upstream. Completion is a property of content, not of placement.persona: twin
- verified #template on a collapsed item makes it a templateA tag and nothing else, exactly as the baseline describes it. Being a tag means a template is searchable, shareable, exportable and editable with nothing built for any of those.persona: reuser /help/templates
- verified /template inserts a chosen template with its whole subtreeA deep copy, so the copy has no tie to the original: editing the meeting notes you just made must not edit the template you made them from. Anybody who wants the tie has mirrors, and the two doing different things is why both exist. The copy drops its own #template tag, or the list would fill with everything ever made from a template.persona: reuser /help/templates
- tested Removing #template makes it an ordinary item againRemoving the tag makes it an ordinary bullet again, by hand or through Mark as a template a second time.test/templates.test.js /help/templates
- verified Clicking #template inserts a copy instead of filteringThe one tag that is not a filter. A list of templates is never what you wanted; a copy of the one you clicked is. It threw on every click until this pass: the handler passed insertTemplate wrapper object straight to submit and got ops is not iterable, silently, because a listener that throws takes the rest of the handler with it. test/e2e/parity.mjs asserts clicking the tag inserts a copy rather than filtering, and says so.persona: twin /help/templates