@Tony can you please post a precise example - with code or even pseudo code 
- of something you would wish to achieve, that you think is not possible 
with the given pull request?

Regards,
Saq

On Thursday, May 28, 2020 at 9:17:19 AM UTC+2, TonyM wrote:
>
> Joshua,
>
> This seems like a great addition. But perhaps I can clarify this from a 
> regular users perspective? I also follow it with a Question.
> Please tell me if I understand and my description is appropriate.
>
> *Description*
> Alternative Templates for View and Edit template sections.
>
> The Config tiddlers such as Tiddlers $:/config/ui/ViewTemplate/body 
> and $:/config/ui/EditTemplate/body (more below) 
> Can contain zero or more additional filters of the form;
>
> [condition[then[templatename]]
>
>
> Eg
> [tag[Glossary]then[templatename]]
>
> If one or more conditions generate a template name that template (those 
> templates?) will be uses to display that "section" of the view Template. If 
> not the default  $:/core/ui/ViewTemplate/body will be used.
>
>    - For example filters in $:/config/ui/ViewTemplate/body will determine 
>    an alternate template to use for the View Template Body
>    - It make sense then that the templatename used should be similar to 
>    the section it replaces eg $:/owner/glossary/ViewTemplate/body
>    - Perhaps the most common change will be that of the display of the 
>    body in tiddlers, with additional elements being added to tiddlers with 
> the 
>    current tags.
>
> Standard View and Edit Template sections (for the record)
>
>    1. $:/core/ui/EditTemplate/body 
>    <https://tiddlywiki.com/#%24%3A%2Fcore%2Fui%2FEditTemplate%2Fbody>
>    2. $:/core/ui/EditTemplate/controls 
>    <https://tiddlywiki.com/#%24%3A%2Fcore%2Fui%2FEditTemplate%2Fcontrols>
>    3. $:/core/ui/EditTemplate/fields 
>    <https://tiddlywiki.com/#%24%3A%2Fcore%2Fui%2FEditTemplate%2Ffields>
>    4. $:/core/ui/EditTemplate/tags 
>    <https://tiddlywiki.com/#%24%3A%2Fcore%2Fui%2FEditTemplate%2Ftags>
>    5. $:/core/ui/EditTemplate/title 
>    <https://tiddlywiki.com/#%24%3A%2Fcore%2Fui%2FEditTemplate%2Ftitle>
>    6. $:/core/ui/EditTemplate/type 
>    <https://tiddlywiki.com/#%24%3A%2Fcore%2Fui%2FEditTemplate%2Ftype>
>    7. $:/core/ui/PageTemplate/story 
>    <https://tiddlywiki.com/#%24%3A%2Fcore%2Fui%2FPageTemplate%2Fstory>
>    8. $:/core/ui/ViewTemplate/body 
>    <https://tiddlywiki.com/#%24%3A%2Fcore%2Fui%2FViewTemplate%2Fbody>
>    9. $:/core/ui/ViewTemplate/plugin 
>    <https://tiddlywiki.com/#%24%3A%2Fcore%2Fui%2FViewTemplate%2Fplugin>
>    10. $:/core/ui/ViewTemplate/subtitle 
>    <https://tiddlywiki.com/#%24%3A%2Fcore%2Fui%2FViewTemplate%2Fsubtitle>
>    11. $:/core/ui/ViewTemplate/tags 
>    <https://tiddlywiki.com/#%24%3A%2Fcore%2Fui%2FViewTemplate%2Ftags>
>    12. $:/core/ui/ViewTemplate/title 
>    <https://tiddlywiki.com/#%24%3A%2Fcore%2Fui%2FViewTemplate%2Ftitle>
>
>
>
>
> New conditional template filters (for the record)
>
>
>    1. $:/config/ui/ViewTemplate/title 
>    <https://tiddlywiki.com/#%24%3A%2Fconfig%2Fui%2FViewTemplate%2Ftitle>
>    2. $:/config/ui/ViewTemplate/subtitle 
>    <https://tiddlywiki.com/#%24%3A%2Fconfig%2Fui%2FViewTemplate%2Fsubtitle>
>    3. $:/config/ui/ViewTemplate/body 
>    <https://tiddlywiki.com/#%24%3A%2Fconfig%2Fui%2FViewTemplate%2Fbody>
>    4. $:/config/ui/EditTemplate/body 
>    <https://tiddlywiki.com/#%24%3A%2Fconfig%2Fui%2FEditTemplate%2Fbody>
>    5. $:/config/ui/EditTemplate/type 
>    <https://tiddlywiki.com/#%24%3A%2Fconfig%2Fui%2FEditTemplate%2Ftype>
>    6. $:/config/ui/EditTemplate/fields 
>    <https://tiddlywiki.com/#%24%3A%2Fconfig%2Fui%2FEditTemplate%2Ffields>
>
>
> Question: Please consider
>
>    - To introduce a new template one needs to append another filter to 
>    that in one of the config tiddlers.
>    - To reverse this one needs to not the exact filter and delete only 
>    that line.
>    - Unlike the tag method used on the view and Edit templates to add new 
>    elements the order may be important but not easy to change, at least 
>    programaticaly.
>    - There is a strong possibility of one solution hitting another
>
> The Question:
>
>    - I believe restoration of the ability to add and remove templates 
>    programaticaly through filters must be developed, Do you agree?
>
> In Closing:
>
>    - I have a few easy and elegant methods to enhance this mechanism to 
>    address the Question I have raised, can I ask you to collaborate on making 
>    this a little more robust?
>
> Regards
> Tony
>
> On Wednesday, May 27, 2020 at 4:01:06 PM UTC+10, Joshua Fontany wrote:
>>
>> Hi everyone,
>>
>> Let me explain the method I am using to do these custom templates. I am 
>> not changing the existing $:/tags/ViewTemplate or $:/tags/EditTemplate 
>> architecture at all. The $list widget that builds each tiddler in the 
>> story-river still does exactly that. What I have done is gone into key 
>> system tiddlers with those  tags and found the "bare minimum" code used to 
>> render the content, moved that to a macro, such as `\define 
>> tiddler-body-default()`. Then, in that place in the system-tiddler, I put 
>> (cutting out the debug and "missing tiddler" fail-safe code):
>> <$list variable="sectionTemplate" 
>> filter="[all[current]subfilter{$:/config/ui/ViewTemplate/body}]" 
>> emptyMessage=<<tiddler-body-default>> >
>>
>> <$transclude tiddler=<<sectionTemplate>> >
>> <$/list>
>>
>>
>> This checks the $:/config/ui tiddler specified for a series of filters, 
>> and uses those titles as sections. BY DEFAULT this will return empty and 
>> place the original code back using the `emptyMessage` parameter. Because 
>> the list hosting these `sectionTemplates` exist in the tiddler defining the 
>> <<tiddler-body-default>> definition, I can use that macro anywhere in my 
>> own templates to render the default __whatever__, be that into a tab, a 
>> $reveal widget, a new <$div> with a specific class or id value that is a 
>> filtered translcusion (triple braces), etc. So I can insert or hide/show 
>> the default chunk of code within my own templates. So my glossary template 
>> tiddler is as simple as:
>>
>> <<tiddler-body-default>>
>>
>> <<glossary-item>>
>>
>> The <<tiddler-body-default>> code is defined within the 
>> $:/tags/ViewTemplate "body" tiddler, and the <<glossary-item>> code is 
>> defined in a global macro tiddler ($:/tags/Macro) because I re-use it in 
>> other templates.
>>
>> Because we are using the `subfilter{configTiddler}` operator, each filter 
>> run in that config tiddler gets fed the <<currentTiddler>> value. Then, the 
>> output is collected and returned as a title-list. This is used to render 
>> the new UI for that section. The use of filters allows __whatever__ custom 
>> triggers, conditionals, etc, you can conceive by using the current filter 
>> operators. I am currently using the existence of a tag for both the 
>> Glossary and $:/tags/Macro custom bodies. I will be building UI for my 
>> Youtube, Vimeo, etc bookmarks to transclude their player-embed code by 
>> grabbing the right parts from their link URL, and drive that on 
>> [tag[Bookmark]regexp:url<youtube-domain>], or 
>> [tag[Bookmark]regexp:url<vimeo-domain>], or whatever.
>>
>> I realize now that one of the things that sparked this idea was listening 
>> to Jeremy on one of the tiddly-hangout videos talk about how robust the 
>> filter operator "language" has become now, and that many things in the core 
>> that were done in other ways could be revisited using Filters as the 
>> primary syntax. This plus seeing some of the really cool stuff being 
>> developed recently, and getting a better sense of how TW renders things 
>> "under the hood". Thanks for trying this out, and for all the feedback so 
>> far!
>>
>> Best,
>>
>> Joshua Fontany
>>
>>
>> On Tuesday, May 26, 2020 at 5:33:19 PM UTC-7, TonyM wrote:
>>>
>>> Mario,
>>>
>>> As you say the view template sets all the elements tagged 
>>> with $:/tags/ViewTemplate from title to subtitle, buttons etc...
>>>
>>> There are cases when we want to alter one of these only, such as the 
>>> body, there are other times we want to add or remove one or more items, 
>>> often conditionally/programmatically.
>>>
>>> When altering only the body we do not want the standard body to display 
>>> so we want to replace it, on other occasions we may want to add something 
>>> but hide-body conditionally/programaticaly.
>>>
>>> I think we need a little more flexibility here. 
>>>
>>>
>>>    - Another view template case is in a tabs internal navigation as an 
>>>    example, we may want to hide only the subtitle and control buttons to 
>>> view 
>>>    tiddlers within tiddlers.
>>>    - Also I see value in displaying alternate story's inside other 
>>>    tiddlers (with alternate viewtemplates), then choosing to make it the 
>>>    current story, eg a project story.
>>>    - It seems to me we may need to enhance the way view and Edit 
>>>    templates are nominated, via both field or variable in addition to tags.
>>>    - Perhaps we could use different templates for read-only view update 
>>>    and edit with a global or local tiddler override settings. I code this 
>>>    myself but core support would be smart and very few bytes would be 
>>> needed. 
>>>    It would simply provide a mechanism.
>>>
>>> Regards
>>> Tony
>>>
>>>
>>>
>>> On Tuesday, May 26, 2020 at 7:12:28 PM UTC+10, PMario wrote:
>>>>
>>>> Hi, 
>>>>
>>>> That's an interesting approach. ... I did a very short 2 minute test. 
>>>> ... So I'm not really sure how everything works. 
>>>>
>>>> ----------- Just some thoughts
>>>>
>>>> At the moment the TW ViewTemplate and EditTamplates are "stackable" and 
>>>> changeable, without modifying the core tiddlers. 
>>>>
>>>> That means, If I want to create a new element, that is part of the 
>>>> existing UI, I only need to tag a tiddler $:/tags/ViewTempate and it will 
>>>> be added at the end of the list.
>>>>
>>>> If I want it to be on a different position I need to add the field 
>>>> named: list-before or list-after. 
>>>>
>>>> IMO this type of functionality needs to stay. It needs to be possible, 
>>>> to use whatever is active and only apply the "differences" to the elements 
>>>> I want to change. 
>>>>
>>>> ---------
>>>>
>>>>
>>>> At the moment ViewTemplate/title also contains the tiddler-toolbar. I 
>>>> think this is wrong. It should be at least 2 independent elements. 
>>>>
>>>> So if we change basic the core UI elements, we should make it even more 
>>>> flexible.
>>>>
>>>> -mario
>>>>
>>>>
>>>>
>>>>

-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWikiDev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to tiddlywikidev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywikidev/bd172f5a-3fa4-4503-acc1-2e29bb3d3cf2%40googlegroups.com.

Reply via email to