Misterel,

Perhaps my writing is not so helpful, but my advice is intended to make it 
simpler for you. I would be happy to write the code to resolve the 
concatenation of various text snippets into sentence like text. All I would 
need is samples of the text you whish to join (without presentation related 
hacks eg leading spaces etc...

The first examples would be foo="This is foo"  bar="and this is bar." 
please join as a sentence.

Feel free to be pragmatic and decline my offer but also feel free to ask.

Here are some examples to look at, paste into a tiddler on tiddlywiki.com, 
add the foo and bar fields as before. 
See how alice and bob values are independent of the order in which they 
will be presented, used?

\define full() {{!!foo}} {{!!bar}}
\define full2() $(foo)$ $(bar)$
\define full3() $(alice)$ and $(bob)$.

```
\define full() {{!!foo}} {{!!bar}}
\define full2() $(foo)$ $(bar)$
\define full3() $(alice)$ and $(bob)$.
```

<$vars
foo="This is foo"  
bar="and this is bar."
alice="this is Alice"
bob="this is Bob"
cat="this is cat"
>

# `<<foo>> <<bar>>` <<foo>> <<bar>>
# `{{!!foo}} {{!!bar}}`  {{!!foo}} {{!!bar}}
# `{{{ [<foo>] [<bar>] +[join[ ]] }}}` {{{ [<foo>] [<bar>] +[join[ ]] }}}
# `<$text text={{{ [<foo>] [<bar>] +[join[ ]] }}}/>` <$text text={{{ 
[<foo>] [<bar>] +[join[ ]] }}}/>
# `<$text text={{{ [{!!foo}] [{!!bar}] +[join[ ]] }}}/>` <$text text={{{ 
[{!!foo}] [{!!bar}] +[join[ ]] }}}/>
#`<<full>>` <<full>>
#`<<full2>>` <<full2>>
#`<<full3>>` <<full3>> | {{{ [<full3>sentencecase[]] }}}
#`{{{ [<alice>] [<bob>] +[join[ and ]addsuffix[.]sentencecase[]] }}}` {{{ 
[<alice>] [<bob>] +[join[ and ]addsuffix[.]sentencecase[]] }}}
#`{{{ [<bob>] [<alice>] +[join[ and ]addsuffix[.]sentencecase[]] }}}` {{{ 
[<bob>] [<alice>] +[join[ and ]addsuffix[.]sentencecase[]] }}}


</$vars>



Regards
Tones 

On Monday, 16 August 2021 at 19:54:36 UTC+10 Misterel85 wrote:

> Tones,
>
> Oh, now I better see what you mean by 'separating the data from its 
> presentation'.
> It kind of reminds me of my attempts at concatenating genealogical data in 
> LaTeX with AppleScript years ago. What you advise is something I more or 
> less tried to do at the time.
>
> I fully agree with what you wrote, but your precious advice stumble over a 
> huge impediment: my poor skills at programming in general, and Wikitext in 
> particular! I have absolutely no programming or STEM background, 
> unfortunately, and I am only a tinkerer.
>
> When I manage to copy-paste and adapt existing code snippets to meet my 
> needs, I am very happy.
> What a seasoned programmer would conceive and write in half an hour will 
> take hours --if not days-- for me to think about and assemble, and I am 
> overwhelmed with joy if it works, even if the resulting code would be 
> scoffed at by students, let alone their teachers, after a few months in a 
> 101 Programming class.
>
> Being both a perfectionist and a dabbler, one should never been given such 
> good advice as yours! They will  keep what you suggest in mind and want to 
> implement it without ever knowing how to get started! How terrible! ;-)
> My project is certainly not well-thought-out, and if it was, I would 
> probably need more code examples like the solution Eric Shulman kindly 
> provided me with. And TW v. 5.2.0 being in prerelease, I haven't looked 
> into it yet.
>
> I am aware that that TW project of mine is personal and is not designed to 
> be published. Unless I get struck with Alzheimer's disease soon --in which 
> case I won't need that project anymore--, for the moment I should be able 
> to remember its quirks when I use it. And there's room for improvement in 
> several other priority aspects of it. I am already spending way too much 
> time trying to achieve a project that probably wouldn't need all those 
> bells and whistles to work properly, to the detriment of other --as / 
> more-- meaningful projects. 
>
> Best,
>
> Stéphane
>
> Le lundi 16 août 2021 à 02:34:48 UTC+2, joshua....@gmail.com a écrit :
>
>> We've found a bug!
>>
>> The wikitext parser object always tries to read Pragmas from the 
>> beginning to parse a text, and this _always_ trims whitespace from the text 
>> (moves the parser position past any leading whitespace).
>>
>> The $:/core/modules/parsers/wikiparser/wikiparser.js module needs to 
>> updated.
>>
>> The Parser's `this.skipWhiteSpace =` method needs to check the 
>> `this.configTrimWhiteSpace` value before moving the parser position, or 
>> reset the parser position if no pragmas are read, etc.
>>
>> This type of change should definitely have Jeremy's eye on it.
>>
>> I am terribly busy at work, so I will come back and file a Bug/Issue on 
>> GitHub if no-one else can.
>>
>> Best,
>> Joshua Fontany
>>
>> On Sunday, August 15, 2021 at 10:34:41 AM UTC-7 Misterel85 wrote:
>>
>>> Yay, it works!!! Thank you very much for your quick reply and your 
>>> simple and straightforward solution, Eric!
>>> After a bit of trial and error, I could adapt it to my TiddlyWiki.
>>> No need for an &nbsp; anymore indeed.
>>> Thanks again to all of you for your help, solutions, explanations and 
>>> suggestions.
>>>
>>> Best,
>>> -Stéphane
>>>
>>> Le dimanche 15 août 2021 à 18:01:55 UTC+2, Eric Shulman a écrit :
>>>
>>>> On Sunday, August 15, 2021 at 7:10:39 AM UTC-7 Misterel85 wrote:
>>>>
>>>>> I first thought there would have been a more straightforward solution 
>>>>> to that issue, but actually I come to think that it should be possible to 
>>>>> inspect the first character in the contents of field 2:
>>>>> If value of field2 starts with space, then insert `&nbsp;` between the 
>>>>> transclusions, else just proceed with both transclusions.
>>>>>
>>>>
>>>> Try this:
>>>> <$transclude field="field1"/><$text text={{{ 
>>>> [{!!field2}split[]first[]match[ ]] }}}/><$transclude field="field2"/>
>>>>
>>>> Notes:
>>>> * The {{{ [...] }}} is a "filtered transclusion"
>>>> * The filter starts by getting the value of the desired field, using 
>>>> {!!field2}
>>>> * It then splits that value into separate characters, using split[]
>>>> * Next, it gets just the first character, using first[]
>>>> * and compares it with a space, using match[ ]
>>>> * The result of the filter is either nothing, or an actual space 
>>>> character (not an &nbsp;)
>>>> * The <$text> widget then converts the output to plain text (instead of 
>>>> displaying a link to a space!)
>>>>
>>>> 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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/92d34b4b-3601-45d8-8a13-da74f80cb140n%40googlegroups.com.

Reply via email to