Actually, what I think you see is 

Mr.
Test

What's happening is that the macro is being returned as [[Mr. Test]] and 
then stripped of the brackets at the WikifyWidget. One work-around is to
add additional brackets back in your macro. 

Also, this 

var regex = /\[.*?\]\]/g;

Should be this

var regex = /\[\[.*?\]\]/g;

So then we end up with:

/*\
title: $:/core/modules/macros/roles.js
type: application/javascript
module-type: macro
Making some replacements in Textinputs
\*/

(function(){
   /*jslint node: true, browser: true */
   /*global $tw: false */
   "use strict";

/*
Information about this macro
*/
  exports.name
 = 'roles';
  exports.params = [{ name: 'text'  }];
/*
Run the macro
*/
exports.run = function(text) {
var regex = /\[\[.*?\]\]/g;
var found = text.match(regex);
var remove = "[[" + found.join("]] [[") + "]]";
//var result = remove.replace(/,/g, ' ');
var result = remove ;
return result
} ;

})();


Now you get the links listed one after another. However, they're not listed 
AS links because they're viewed as text strings. You
can probably use <$link> widget to turn them back into links, if that's 
what you want.

Good luck






On Monday, July 15, 2019 at 12:45:42 PM UTC-7, Jan wrote:
>
> Hi Mark, that looks great, is this already available?
> Meanwhile I created a solution which is working quit good but has one flaw 
> which I would like to eliminate:
> [[Mr. Test]] Gets parsed [[Mr.]] and [[Test]]. 
>
> Here comes the approach it is a Widget and a macro in combination:
> Widget 
>
> /*\
> title: $:/core/modules/macros/roles.js
> type: application/javascript
> module-type: macro
> Making some replacements in Textinputs
> \*/
>
> (function(){
>    /*jslint node: true, browser: true */
>    /*global $tw: false */
>    "use strict";
>
> /*
> Information about this macro
> */
>   exports.name = 'roles';
>   exports.params = [{ name: 'text'  }];
> /*
> Run the macro
> */
> exports.run = function(text) {
> var regex = /\[.*?\]\]/g;
> var found = text.match(regex);
> var remove = found.join();
> var result = remove.replace(/,/g, ' ');
> return result
> } ;
>
> Macro 
>
> \define preroll()
>
> <$macrocall $name="roles" text={{!!dialogue}}/>
>
> \end
> \define rollen()
> <$wikify name=rollo text=<<preroll>> output="text">
> <$list filter=<<rollo>> >
> {{!!title}} <br>
> </$list>
> </$wikify>
> \end
>
> How can I handle that?
>
> Jan
>
>
>
>
> Am 15.07.2019 um 16:51 schrieb 'Mark S.' via TiddlyWiki:
>
> With the reg expression text previously mentioned, and the regexps (reg 
> expression string extractor) in PR 2963 
> <https://github.com/Jermolene/TiddlyWiki5/pull/2963>
>  it should be possible to extract links designated with [[ and ]] .
>
> On Monday, July 15, 2019 at 4:06:31 AM UTC-7, Jan wrote: 
>>
>> Hi, 
>> alas the Find-Macro and also the Extract-Macro fail in this job. This 
>> really seems to be an issue for a widget which can escape the 
>> square-bracket-problem.
>>
>> I made a quick attempt to solve this problem with a widget matching for 
>> the css, with no success so far. 
>>
>> /*\
>> title: $:/core/modules/macros/roles.js
>> type: application/javascript
>> module-type: macro
>> Making some replacements in Textinputs
>> \*/
>>
>> (function(){
>>    /*jslint node: true, browser: true */
>>    /*global $tw: false */
>>    "use strict";
>>
>> /*
>> Information about this macro
>> */
>>   exports.name = 'roles';
>>   exports.params = [{ name: 'text'  }];
>> /*
>> Run the macro
>> */
>> exports.run = function(text) {
>>       text = text.match("/\[.*?\]/g");
>>       return text
>> } ;
>> })();
>>
>>
>> Seeing how complicated this problem is in wikitext, I think it would be 
>> usefull, to have such a thing as "Extract Links Widget".
>>
>> Jan
>>
>>
>>
>>
>>
>>
>> Jan
>>
>> Am 15.07.2019 um 10:01 schrieb Jan:
>>
>> Hi Mark!
>> I have tried out your proposition but alas, the filter is not working the 
>> way I would like it to work:
>> So far it looks for Tiddlers that have the field "myfield", it should 
>> look for Links in this field.
>>
>> I have tired several variations with get[] and list[] to have the 
>> dialoguebut it nearly seems impossible to filter the result for [[square 
>> brackets.
>>
>> Jan
>>
>>
>>
>>
>>  
>>
>> Am 14.07.2019 um 22:51 schrieb Jan Johannpeter:
>>
>> Hi Mark,
>>  thanks, again you saved my day! 
>> I will implement this at once!
>> Jan
>>
>> Mohammad <mohamma...@gmail.com> schrieb am So. 14. Juli 2019 um 19:18:
>>
>>> Hi Mark, 
>>>  I was surprised with this simple and elegant solution you proposed 
>>> albeit the regxp is behind my knowledge! :-)
>>>
>>> Added to TW-Scripts.
>>>
>>> Cheers
>>> Mohammad
>>>
>>>
>>> On Sunday, July 14, 2019 at 9:21:42 PM UTC+4:30, Mark S. wrote: 
>>>>
>>>> You need to put your expression in a separate variable:
>>>>
>>>> <$vars reg="(?g)\[\[.*?\]\]">
>>>> <$list filter="[!is[system]regexp:myfield<reg>]"/>
>>>> </$vars>
>>>>
>>>> I tested using field "myfield". I was surprised to find that there 
>>>> actually is a matching field at tiddlywiki.com.
>>>>
>>>> Note that the regexp filter has its own notation for indicating a 
>>>> global search. I put it in, but don't really understand what use it has, 
>>>> since it is the tiddler that gets returned, not the field. So finding one 
>>>> match should be good enough.
>>>>
>>>>
>>>> On Sunday, July 14, 2019 at 3:51:37 AM UTC-7, Jan wrote: 
>>>>>
>>>>> Hi Mat,
>>>>> Unfortunately filtersyntax gets so terribly complicated when the param 
>>>>> contains squarebrackets.
>>>>> This here causes a syntax error: [!is[system]regexp[/\[.*?\]/g]]
>>>>>
>>>>> And how do I enter the suffix for the field?
>>>>> -Jan
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Am 14.07.2019 um 12:03 schrieb Mat:
>>>>>
>>>>> >or else it would probably be veeery tricky to find them. 
>>>>>
>>>>> Pah! I'm exaggerating. It is "just" a matter of creating the right 
>>>>> regexp for it. Not that I could do it.
>>>>>
>>>>> <:-)
>>>>> -- 
>>>>> 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 tiddl...@googlegroups.com.
>>>>> To post to this group, send email to tiddl...@googlegroups.com.
>>>>> 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/ebad32fa-60c1-4434-a943-350812eb47d7%40googlegroups.com
>>>>>  
>>>>> <https://groups.google.com/d/msgid/tiddlywiki/ebad32fa-60c1-4434-a943-350812eb47d7%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>>
>>>>> -- 
>>> 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 tiddl...@googlegroups.com.
>>> To post to this group, send email to tiddl...@googlegroups.com.
>>> 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/3989d192-3218-4d29-8eef-114071e5fcc4%40googlegroups.com
>>>  
>>> <https://groups.google.com/d/msgid/tiddlywiki/3989d192-3218-4d29-8eef-114071e5fcc4%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
>> -- 
> 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 tiddl...@googlegroups.com <javascript:>.
> To post to this group, send email to tiddl...@googlegroups.com 
> <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/7ea4f8ae-889d-4664-a6f5-5c49ba5d14a9%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/tiddlywiki/7ea4f8ae-889d-4664-a6f5-5c49ba5d14a9%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>
>
>

-- 
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 post to this group, send email to tiddlywiki@googlegroups.com.
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/85a2bf4f-58e3-4d63-ad4c-4e1df9567dee%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to