Thanks Jeremy - I don't think the lack of refresh will be an issue (as I
understand the limitation), but I can cross the bidge if I need to later.
I suspect you've given me enough to go on, and I think I can puzzle out the
"require" and "exports" mechanism, but I do have a couple of questions if
you have the time:
My google-driven understanding of require/exports is that it's node, not
javascript. I know TW5 is built around node, but I'm not running it. So, is
the TW5 core emulating something in mode? Is there a good place to read up
on this? Also, I had a look at
var Widget = require("$:/core/modules/widgets/widget.js").widget;
, which I assume is what you wanted me to look at.
I'm sure a bunch of trial-and-error will get me home, but:
1.) I don't think I'll be putting my code into "$:/core/modules" anytime
soon. Or is that where they have to go for this to work?
2.) is that statement a specific instance of "var Anyname =
require("anywhere/anycode.anysuffix").anymethod? It's not clear to me which
of those elements are by documentary convenience & which are by necessity.
I would love to find stuff to copy/modify, but it's easier said than done.
When I got into this originally, I couldn't find anyone else interested in
analysing/annotating text. I had the time to look at a ton of TWC stuff
then; now, it's taken me a year to get around to getting out of Tiddlyspace
& upgrading to TW5.
Anyway I very much appreciate your work & help. I actually submitted my MA
research paper as a TWC tiddlywiki a few years ago - my supervisor was so
impressed by the technology she forgot to check the content, which was fine
by me :-) The examiners likewise. (That had things in it that were more
"standard"; bibliography, for example, so copy/modify was easier) Probably
I should offer to share it with you.
Cheers, Andrew
On Tuesday, 28 February 2017 23:21:08 UTC+11, Jeremy Ruston wrote:
>
> Hi tejjyid
>
> I've managed to update many of my simpler macros, but now I'm moving on to
> the more complicated ones.
>
> There are two scenarios that I used to have:
>
> 1.) a list of words stored in one tiddler that I would highlight in a
> range of texts stored in other tiddlers. That list of words would be
> converted into a regex via some inline js, and I could then use that regex
> in other macros, because once created the regex variable was "visible"
> everywhere. Frbut I can crossom my point of view, this was an easy option
> because I could update the list of words to be annotated easily.
>
>
> The simplest type of JavaScript module to write for TiddlyWiki5 is a JS
> macro. The semantics are extremely simple: the macro defines the names of
> its parameters, and exports a handler function that is called when the
> macro is invoked. Here’s a simple example from the core:
>
>
> https://github.com/Jermolene/TiddlyWiki5/blob/master/core/modules/macros/makedatauri.js
>
> There are quite a few restrictions and limitations with macros, though.
>
> Firstly, a macro is not supposed to have any side effects (it cannot
> create or modify tiddlers, for example), and is supposed to return the same
> result every time it is called with a given set of parameters.
>
> Secondly, they don’t participate in the refresh mechanism (which is one of
> the things that makes them simple to write). This means that you can’t
> easily arrange for them to automatically refresh if underlying data should
> change.
>
> Nonetheless, in many situations, writing a macro is adequate. There is
> some documentation here:
>
> http://tiddlywiki.com/dev/#JavaScript%20Macros
>
> In your case, you could write a macro <<extract-regexp filter>> that would
> retrieve the tiddlers matching a filter, and retrieve the highlights from
> inside them, and then return the resulting regexp.
>
> Then, you could use an action-setfield widget within a button to allow the
> user to manually trigger the assignment of the regular expression to a
> tiddler.
>
> 2.) I had a library of functions stored in one tiddler that I could use in
> varying combinations in different macros.
>
> I can't work out to do either thing in the TW5 framework. I don't mind
> doing it a better way, if the better way doesn't involve complex code. Or
> alternatively, how do I make the same arrangement work?
>
>
> TiddlyWiki 5 provides a Common/JS compatible module loader that makes it
> easy to require() other modules and access their exports. Here’s an example
> from one of the core plugins:
>
>
> https://github.com/Jermolene/TiddlyWiki5/blob/master/core/modules/widgets/button.js#L15
>
> <https://www.google.com/url?q=https%3A%2F%2Fgithub.com%2FJermolene%2FTiddlyWiki5%2Fblob%2Fmaster%2Fcore%2Fmodules%2Fwidgets%2Fbutton.js%23L15&sa=D&sntz=1&usg=AFQjCNFRJJgXiQ_Y5ncRzL2-QMcCipgsUw>
>
> Something else - I used to be able to get tiddlers into my macros with
> code like "store.getTiddlerText" - does that functionality still exist? Can
> someone point me to where it's documented?
>
>
> Within a macro, you can obtain the text of a tiddler with:
>
> this.wiki.getTiddlerText("HelloThere")
>
> TiddlyWiki’s internal APIs are only documented within the source. Most of
> the TiddlyWiki Classic store.*() functions will be found in:
>
> https://github.com/Jermolene/TiddlyWiki5/blob/master/core/modules/wiki.js
>
> Generally, the trick with TiddlyWiki 5 development is to find an existing
> plugin or module that you can use as a starting point.
>
> Best wishes
>
> Jeremy
>
> If anyone feels they need to look at old code to answer the questions: the
> attached has everything. But probably some ideas on how to do it & pointers
> to useful documentation would be enough.
>
> Thanks
>
> --
> 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] <javascript:>.
> To post to this group, send email to [email protected]
> <javascript:>.
> Visit this group at https://groups.google.com/group/tiddlywiki.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/tiddlywiki/2d4f51a2-bc48-489f-ae41-90c018d01429%40googlegroups.com
>
> <https://groups.google.com/d/msgid/tiddlywiki/2d4f51a2-bc48-489f-ae41-90c018d01429%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
> <andrewsimon(1).html>
>
>
>
--
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 post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit
https://groups.google.com/d/msgid/tiddlywiki/72fc08d7-0193-46c7-b85e-16c4c57d9697%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.