Indeed, you’re quite right, the Dynannotate plugin does work in modals and new windows (I was confusing myself with the Dynaview plugin which does have those restrictions).
@jeremyruston: I have to say, the $dynannotate
search highlight functionality is pretty sweet. It’s so much easier to integrate than mark.js was, where I had to keep track of all the active mark
s via a DOM window property…
For anyone looking to do the same, I found this combination with the equally great $genesis
widget pretty useful to conditionally wrap text (e.g. the body ViewTemplate) in a $dynannotate
only if a search term has been set (via a state tiddler):
<$let dynannotateText={{{ [<currentTiddler>addprefix[$:/temp/dynannotate/]get[text]] }}}>
<$genesis $type={{{ [<dynannotateText>!is[blank]then[$dynannotate]] }}} search=<<dynannotateText>> searchDisplay="overlay" searchMode="words" searchCaseSensitive="no">
content to apply highlighting to goes here
</$genesis>
</$let>
One would then use e.g. the inputActions of an $edit-text
widget to set the text of the state tiddler to the text within the input, thus making $genesis
generate a $dynannotate
which in turn highlights instances of the input text within its content.
If there is no input, $dynannotate
is not even generated.
Caveat emptor: This only works with $genesis
from 5.2.6-prerelease onward. Older versions will throw an RSoE when the $type attribute is empty, instead of just rendering the content. Also, searchMode “words” will (hopefully) be added to Dynannotate with PR #7260 - until then use “normal”.
Have a nice day
Yaisog
PS: This has drifted so far from the OP that maybe someone should split this off…
Thanks @Yaisog. It would be well worth updating the demo that is included with the Dynannotate plugin to use the same technique, if you’d be able to make a PR?
Hi @jeremyruston, as much as I’d like to take home the PR crown this week, I’d just add this to PR #7260, if that’s alright with you…
Update: Done and done. Take a look – I changed the View Template example quite considerably…