On Friday, July 24, 2020 at 3:34:52 AM UTC-7, Felicia Crow wrote:
>
> so after playing around with filter operators and trying to find a way 
> over a data tiddler I wrote a javascript macro I attatched below.
> The only caveat with this is that you have to close and reopen the tiddler 
> calling the macro due to how javascript macros are called. Maybe someone 
> has an idea for how to reload a single tiddler.
>

Here's a version that does the same results using just wikitext instead of 
javascript:
\define getData()
<$list filter="[all[missing]!has[draft.of]sort[title]]">
   <$text text="[["/>{{{ 
[<currentTiddler>backlinks[]count[]divide[1000]removeprefix[0.]] 
}}};<<currentTiddler>><$text text="]]"/><br>
</$list>
\end

\define renderTable()
<table>
<tr><th>Missing</th><th>Times Referenced</th></tr>
<$list filter="[enlist<missing>!sort[]]">
   <tr>
   <td>{{{ [<currentTiddler>split[;]rest[]join[;]] }}}</td>
   <td style="text-align:right;"><$text text={{{ 
[<currentTiddler>split[;]first[]divide[1]] }}}/></td>
   </tr>
</$list>
</table>
\end

\define renderList()
<ul>
<$list filter="[enlist<missing>!sort[]]">
   <li> {{{ [<currentTiddler>split[;]rest[]join[;]] }}} (<$text text={{{ 
[<currentTiddler>split[;]first[]divide[1]] }}}/>)</li>
</$list>
</ul>
\end

<$list filter="[all[missing]limit[1]]" variable="has_missing_tiddlers"
   emptyMessage="<p>No Missing Tiddlers</p>">
   <$wikify name="missing" text=<<getData>>>
   <<renderList>>
   </$wikify>
</$list>

I patterned the code structure similar to your javascript code.

* the outermost $list checks that there are missing tiddlesr and displays 
either "No Missing Tiddlers", or proceed to get the list of missing 
tiddlers and show the output
* getData() generates a list all missing tiddlers
* each item in the list is a combination of the backlinks[]count[] 
(zero-padded) and the missing tiddler title, separated by a semi-colon and 
enclosed in doubled square brackets (to handle spaces in titles)
* the results of getData() are passed through $wikify to convert the macro 
output into an actual list of items
* renderList() and renderTable() enlist[] all items, sorted in descending 
order using the zero-padded count, and then splits each item back into its 
title and count and then shows the title followed by the count

enjoy,
-e





-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWiki" 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/tiddlywiki/d1039c2d-2a33-4a27-a047-5a62f1a556b5o%40googlegroups.com.

Reply via email to