Try this for the body/editor:
\whitespace trim
\define em-showPopup()
<$action-popupcaret $state=<<em-state>>/>
<$action-setfield
$tiddler=<<em-state>>
template=<<matchedTemplate>>
fragment=<<matchedFragment>>
/>
<$action-setfield $tiddler="test" state=<<em-state>> />
\end
\define em-updatePopupState()
<$list filter="[<matched>match[false]]">
<$action-deletetiddler $tiddler=<<em-state>>/>
</$list>
<$list filter="[<matched>match[true]]">
<<em-showPopup>>
</$list>
\end
\define em-checkNextTrigger()
<$list
filter="""[all[tiddlers]tag[$:/tags/EditorMagic]!has[draft.of]after<template>]"""
emptyMessage=<<em-updatePopupState>>>
<<em-checkTrigger>>
</$list>
\end
\define em-checkTrigger()
<$vars
template={{!!title}}
trigger={{!!em-trigger}}
trigger-end={{!!em-triggerend}}
triggexp={{{ [{!!em-trigger}escaperegexp[]] }}}
triggendexp={{{
[enlist{!!em-triggerend}escaperegexp[]join[|]addprefix[(]addsuffix[)+]split[\/]join[/]trim[]]
}}}
before={{{ [<text>splitbefore{!!em-trigger}] }}}
before-length={{{ [<text>splitbefore{!!em-trigger}length[]] }}}
trigger-length={{{[{!!em-trigger}length[]]}}}
em-itemfilter = {{!!em-itemfilter}}
>
<$action-log $message=<<template>>/>
<$list filter="""[<text>search<trigger>] +[splitregexp<triggexp>]
+[!prefix[ ]!search::regexp<triggendexp>] +[last[]]"""
emptyMessage=<<em-checkNextTrigger>> variable="em-fragment">
<$vars
before-length={{{[<text>splitregexp<triggexp>butlast[]join<trigger>length[]]}}}>
<$action-log $message={{{[[detected: ]addsuffix<template>]}}}/>
<$list filter="[<template>!has[em-itemfilter]] ~[subfilter<em-itemfilter>]"
variable="_NULL" emptyMessage=<<em-checkNextTrigger>>>
<$list
filter="[<em-fragment>length[]add<before-length>add<trigger-length>match<selectionEnd>]"
variable="_NULL" emptyMessage=<<em-checkNextTrigger>>>
<$list filter="[<em-fragment>length[]compare:number:lt<fragmentLength>]"
variable="_NULL" emptyMessage=<<em-checkNextTrigger>>>
<$vars matched="true" fragmentLength={{{[<em-fragment>length[]]}}}
matchedFragment=<<em-fragment>> matchedTemplate=<<template>> >
<<em-checkNextTrigger>>
</$vars>
</$list>
</$list>
</$list>
</$vars>
</$list>
</$vars>
\end
\define em-checkAllTriggers()
<$vars text={{{ [{!!text}split[]first<selectionEnd>join[]] }}} >
<$list
filter="""[all[tiddlers]tag[$:/tags/EditorMagic]!has[draft.of]first[]]""">
<$vars matched="false" fragmentLength="9999999">
<<em-checkTrigger>>
</$vars>
</$list>
</$vars>
\end
\define em-inputActions()
<$action-withselection actions=<<em-checkAllTriggers>> />
\end
<$set name=em-state value=<<qualify $:/state/EditorMagicPopupState>>>
<$edit
field="text"
class="tc-edit-texteditor tc-edit-texteditor-body"
placeholder={{$:/language/EditTemplate/Body/Placeholder}}
tabindex={{$:/config/EditTabIndex}}
focus={{{ [{$:/config/AutoFocus}match[text]then[true]] ~[[false]] }}}
cancelPopups="yes"
inputActions=<<em-inputActions>>
>
<$set
name="targetTiddler"
value=<<currentTiddler>>
><$list
filter="[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]]"
><$reveal
type="nomatch"
state=<<config-visibility-title>>
text="hide"
class="tc-text-editor-toolbar-item-wrapper"
><$transclude
tiddler="$:/core/ui/EditTemplate/body/toolbar/button"
mode="inline"
/></$reveal></$list></$set>
<$reveal type="popup" state=<<em-state>> class="editormagic-popup
tc-popup-keep">
<div>
<$set name="selectionEnd" filter="[<em-state>get[selection-end]]"
select="0">
{{||EditorMagic/_Popup}}
</$set></div>
</$reveal>
</$edit>
</$set>
Lots of room for clean up and optimizations, but I am pressed for time
today and that should get you going.
--
You received this message because you are subscribed to the Google Groups
"TiddlyWikiDev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/tiddlywikidev/9b5bd69d-0a92-4236-bf0d-9d0085e9cf9do%40googlegroups.com.