\procedure customImportFileActions()
\procedure tv-action-refresh-policy() always
\procedure imageTextTitle() $:/config/sq/quickimage/image-transclusion-text
\procedure defaultTextTitle() $:/config/sq/quickimage/default-transclusion-text
<$let
tiddlerJSON={{{[<importTitle>get[text]jsonextract[tiddlers]]}}}
replacement-text-image={{{ [<imageTextTitle>get[text]] }}}
replacement-text-file={{{ [<defaultTextTitle>get[text]] }}}
contentTiddler={{{ [<currentTiddler>get[draft.of]else<currentTiddler>] }}}
>
<!-- iterate over each position in the array -->
<$list filter="[<tiddlerJSON>jsonindexes[]]" variable="index">
<!-- get the tiddler at that position in the array from the JSON -->
<$let
tiddler={{{ [<tiddlerJSON>jsonextract<index>] }}}
title={{{ [<tiddler>jsonget[title]] }}}
type={{{ [<tiddler>jsonget[type]] :else[[text/vnd.tiddlywiki]] }}}
unusedtitle={{{ [<title>] :cascade[{$:/config/sq/quickimage/file-title-cascade}splitregexp[\n]!prefix[\\]!is[blank]] }}}
>
<$action-log $$filter="title unusedtitle"/>
<!-- make sure we have a title for the tiddler -->
<$list filter="[<unusedtitle>!is[blank]]">
<$action-setmultiplefields
$fields="[<tiddler>jsonindexes[]] :except[[title]] created modified quickimage"
$values="[<tiddler>jsonindexes[]] :except[[title]] :map[<tiddler>jsonget<currentTiddler>] [<now [UTC]YYYY0MM0DD0hh0mm0ssXXX>] :all[<now [UTC]YYYY0MM0DD0hh0mm0ssXXX>] yes"
$timestamp="no"
/>
<$list filter="[<currentTiddler>] :map[get[type]prefix[image]then<replacement-text-image>else<replacement-text-file>substitute[]]" variable="imageTitle">
<$action-transmit actions=`<$action-sendmessage
$message="tm-edit-text-operation"
$param="insert-text" text="$(imageTitle)$"/>` target="editor-import"/>
</$list>
<$action-deletetiddler $tiddler=<<importTitle>>/>
</$list>
</$let>
</$list>
</$let>
\end customImportFileActions
\define config-visibility-title()
$:/config/EditorToolbarButtons/Visibility/$(currentTiddler)$
\end
\widget $streams-edit(tag, autoHeight, minHeight, focus, select, class, caretPosition)
<$genesis
$remappable="no"
$type="$streams-edit"
tag=<<tag>>
autoHeight=<<autoHeight>>
minHeight=<<minHeight>>
focus=<<focus>>
select=<<select>>
class=<<class>>
caretPosition=<<caretPosition>>
>
<$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>
<$slot $name="ts-raw"/>
</$genesis>
\end
\widget $dropzone(importTitle, autoOpenOnImport, contentTypesFilter, class, enable, filesOnly, actions)
<$let
configTitle="$:/config/sq/quickimage/import/enable"
quickimageEnabled={{{ [<configTitle>get[text]trim[]match[no]else[yes]] }}}
>
<$genesis
$remappable="no"
$type="$dropzone"
importTitle=<<importTitle>>
autoOpenOnImport="no"
contentTypesFilter=<<contentTypesFilter>>
class=<<class>>
enable=<<enable>>
filesOnly=<<filesOnly>>
actions={{{ [<quickimageEnabled>match[yes]then<customImportFileActions>else<actions>] }}}
>
<$slot $name="ts-raw"/>
</$genesis>
</$let>
\end
<$transclude $tiddler="$:/core" $subtiddler="$:/core/ui/EditTemplate/body/default"/>
Unfortunately, I haven’t found a way to wrap keyboard shortcuts around that editor
Nvm, the following solution addresses both goals:
\procedure customImportFileActions()
\procedure tv-action-refresh-policy() always
\procedure imageTextTitle() $:/config/sq/quickimage/image-transclusion-text
\procedure defaultTextTitle() $:/config/sq/quickimage/default-transclusion-text
<$let
tiddlerJSON={{{[<importTitle>get[text]jsonextract[tiddlers]]}}}
replacement-text-image={{{ [<imageTextTitle>get[text]] }}}
replacement-text-file={{{ [<defaultTextTitle>get[text]] }}}
contentTiddler={{{ [<currentTiddler>get[draft.of]else<currentTiddler>] }}}
>
<!-- iterate over each position in the array -->
<$list filter="[<tiddlerJSON>jsonindexes[]]" variable="index">
<!-- get the tiddler at that position in the array from the JSON -->
<$let
tiddler={{{ [<tiddlerJSON>jsonextract<index>] }}}
title={{{ [<tiddler>jsonget[title]] }}}
type={{{ [<tiddler>jsonget[type]] :else[[text/vnd.tiddlywiki]] }}}
unusedtitle={{{ [<title>] :cascade[{$:/config/sq/quickimage/file-title-cascade}splitregexp[\n]!prefix[\\]!is[blank]] }}}
>
<$action-log $$filter="title unusedtitle"/>
<!-- make sure we have a title for the tiddler -->
<$list filter="[<unusedtitle>!is[blank]]">
<$action-setmultiplefields
$fields="[<tiddler>jsonindexes[]] :except[[title]] created modified quickimage"
$values="[<tiddler>jsonindexes[]] :except[[title]] :map[<tiddler>jsonget<currentTiddler>] [<now [UTC]YYYY0MM0DD0hh0mm0ssXXX>] :all[<now [UTC]YYYY0MM0DD0hh0mm0ssXXX>] yes"
$timestamp="no"
/>
<$list filter="[<currentTiddler>] :map[get[type]prefix[image]then<replacement-text-image>else<replacement-text-file>substitute[]]" variable="imageTitle">
<$action-transmit actions=`<$action-sendmessage
$message="tm-edit-text-operation"
$param="insert-text" text="$(imageTitle)$"/>` target="editor-import"/>
</$list>
<$action-deletetiddler $tiddler=<<importTitle>>/>
</$list>
</$let>
</$list>
</$let>
\end customImportFileActions
\define config-visibility-title()
$:/config/EditorToolbarButtons/Visibility/$(currentTiddler)$
\end
\widget $dropzone(importTitle, autoOpenOnImport, contentTypesFilter, class, enable, filesOnly, actions)
<$let
configTitle="$:/config/sq/quickimage/import/enable"
quickimageEnabled={{{ [<configTitle>get[text]trim[]match[no]else[yes]] }}}
>
<$genesis
$remappable="no"
$type="$dropzone"
importTitle=<<importTitle>>
autoOpenOnImport="no"
contentTypesFilter=<<contentTypesFilter>>
class=<<class>>
enable=<<enable>>
filesOnly=<<filesOnly>>
actions={{{ [<quickimageEnabled>match[yes]then<customImportFileActions>else<actions>] }}}
>
<$slot $name="ts-raw"/>
</$genesis>
</$let>
\end
<$keyboard key="ctrl-shift-T" actions="""<<mark-todo>>""">
<$keyboard key="ctrl-shift-K" actions="""<<yadda-yadda-streams>>""">
<$transclude $tiddler="$:/core" $subtiddler="$:/core/ui/EditTemplate/body/default"/>
</$keyboard>
</$keyboard>