Thank you Hans for asking and Eric for answering.

This solves a problem I had so far regarded as unsolvable.

Pit.W


Am 26.07.2020 um 12:50 schrieb Hans Wobbe:
Eric:

"Very nice" code that is Functional, and Educational.

Thank you very much for yet another in a long list of contributions!

Cheers,
Hans

On Friday, July 24, 2020 at 12:45:16 PM UTC-4 Eric Shulman wrote:

    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 tiddlywiki+unsubscr...@googlegroups.com <mailto:tiddlywiki+unsubscr...@googlegroups.com>. To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/601789af-b470-4a5b-a3fb-10b8afeecdc2n%40googlegroups.com <https://groups.google.com/d/msgid/tiddlywiki/601789af-b470-4a5b-a3fb-10b8afeecdc2n%40googlegroups.com?utm_medium=email&utm_source=footer>.


_________________________________________________________________
________________________________________________________
Ihre E-Mail-Postfächer sicher & zentral an einem Ort. Jetzt wechseln und alte 
E-Mail-Adresse mitnehmen! https://www.eclipso.de

--
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 tiddlywiki+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/3a9848ce-d913-3751-f01c-ce92f470d8d6%40eclipso.ch.

Reply via email to