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.

Reply via email to