Based on this code, I am trying to highlight multiple reference words in a tiddler with different color. I was able to do in a partial manner as separate lists.
(This screenshot is just an example to show what I meant)
Can this be done in a single list ? I meant is it possible to avoid duplication of lines of text ?
Check the code here (only relevant code is pasted here)
\function text.line(tiddler) [<tiddler>get[text]splitregexp[\n]!prefix[#]]
\function search.line(tiddler, searchTerm)
[text.line<tiddler>search:title<searchTerm>]
:map[text.line<tiddler>allbefore:include<currentTiddler>count[]!match[0]]
\end
\procedure contextual-backlinks()
<$eventcatcher selector=".my-link" $click=<<contextual-backlinks-actions>> >
<$let
current-back-link={{{ [<currentTiddler>get[current-backlink]] ~[<currentTiddler>get[note-topic]] ~[<currentTiddler>]}}}
current-back-link-2={{{ [<currentTiddler>get[current-backlink-2]] }}}
current-back-link-3={{{ [<currentTiddler>get[current-backlink-3]] }}}
>
<$list filter="[all[tiddlers]!is[system]!is[shadow]search:text<current-back-link>]" variable="back-link" counter="counter">
<$list filter="[<back-link>search:text<current-back-link-2>]" variable="back-link-2">
<$list filter="[<back-link>search:text<current-back-link-3>]" variable="back-link-3">
''<<counter>>''. <a class="my-link tc-tiddlylink tc-tiddlylink-resolves" to=<<back-link>>><<back-link>></a>
<% if [<current-back-link>!match[]] %>
<br>
''<<current-back-link>>'' appears in lines <$text text={{{ [search.line<back-link>,<current-back-link>] +[join[, ]] }}} />
<hr class="small">
<$list filter="[search.line<back-link>,<current-back-link>]" variable="num">
<$let strLine={{{ [text.line<back-link>nth<num>] }}} parts={{{ [<strLine>split<current-back-link>count[]] }}} >
<<num>>:
<!-- <<num>>: <<strLine>> [<<parts>>] -->
<% if [<parts>compare:integer:gt[2]] %>
<$list filter="[<strLine>split<current-back-link>]" variable="content" join='<span class="markup"><<current-back-link>></span>'><<content>></$list>
<% else %>
<$let strLeft={{{ [<strLine>split<current-back-link>nth[1]] }}} strRight={{{ [<strLine>split<current-back-link>nth[2]] }}}>
<<strLeft>><span class="markup"><<current-back-link>></span><<strRight>>
</$let>
<% endif %>
<br>
</$let>
</$list>
<% else %>
Enter search term to start!
<% endif %>
<% if [<current-back-link-2>!match[]] %>
<br>
''<<current-back-link-2>>'' appears in lines <$text text={{{ [search.line<back-link-2>,<current-back-link-2>] +[join[, ]] }}} />
<hr class="small">
<$list filter="[search.line<back-link-2>,<current-back-link-2>]" variable="num-2">
<$let strLine-2={{{ [text.line<back-link-2>nth<num-2>] }}} parts-2={{{ [<strLine-2>split<current-back-link-2>count[]] }}} >
<<num-2>>:
<!-- <<num-2>>: <<strLine-2>> [<<parts-2>>] -->
<% if [<parts-2>compare:integer:gt[2]] %>
<$list filter="[<strLine-2>split<current-back-link-2>]" variable="content-2" join='<span class="markup-2"><<current-back-link-2>></span>'><<content-2>></$list>
<% else %>
<$let strLeft-2={{{ [<strLine-2>split<current-back-link-2>nth[1]] }}} strRight-2={{{ [<strLine-2>split<current-back-link-2>nth[2]] }}}>
<<strLeft-2>><span class="markup-2"><<current-back-link-2>></span><<strRight-2>>
</$let>
<% endif %>
<br>
</$let>
</$list>
<% else %>
Enter search term to start!
<% endif %>
<% if [<current-back-link-3>!match[]] %>
<br>
''<<current-back-link-3>>'' appears in lines <$text text={{{ [search.line<back-link-3>,<current-back-link-3>] +[join[, ]] }}} />
<hr class="small">
<$list filter="[search.line<back-link-3>,<current-back-link-3>]" variable="num-3">
<$let strLine-3={{{ [text.line<back-link>nth<num-3>] }}} parts-3={{{ [<strLine-3>split<current-back-link-3>count[]] }}} >
<<num-3>>:
<!-- <<num-3>>: <<strLine-3>> [<<parts-3>>] -->
<% if [<parts-3>compare:integer:gt[2]] %>
<$list filter="[<strLine-3>split<current-back-link-3>]" variable="content-3" join='<span class="markup-3"><<current-back-link-3>></span>'><<content-3>></$list>
<% else %>
<$let strLeft-3={{{ [<strLine-3>split<current-back-link-3>nth[1]] }}} strRight-3={{{ [<strLine-3>split<current-back-link-3>nth[2]] }}}>
<<strLeft-3>><span class="markup-3"><<current-back-link-3>></span><<strRight-3>>
</$let>
<% endif %>
<br>
</$let>
</$list>
<% else %>
Enter search term to start!
<% endif %>
<br>
</$list>
</$list>
</$list>
</$let>
</$eventcatcher>
\end