I'm still a bit under the weather so not thinking with the clearest head 
here but a few thoughts:

   - I like the use of subfilter, that is the problem with the current way 
   $:/config/ui/ViewTemplate is used, it is a direct assignment as a text 
   reference
   - I would want similiar extensibility for other parts of the templates 
   and not just the body. 
   - Could we tweak how the use $:/config/ui/ViewTemplate in 
   $:/core/ui/PageTemplate/story to also allow subfilters, allowing use to 
   filters in that tiddler?  template={{{ 
   [subfilter{$:/config/ui/ViewTemplate}] }}}

Hope some or any of that is helpful!
Saq

On Sunday, May 24, 2020 at 9:34:06 PM UTC+2, Joshua Fontany wrote:
>
> So I have decided to edit a core system tiddler (gasp) for my current 2 
> projects. One is a Martial Arts Wiki, with a glossary of over 500 
> Indonesian, Malay, Sundanese, Filipino, Javanese, Hawaiian, and Chinese 
> terms with special martial-arts context-specific meanings, and a ton of 
> Bookmarks (YouTube, etc). The other project is the every-growing UnNamed 
> RPG Campaign Manager, and one of the biggest roadblocks there was "custom 
> character/ship/etc sheets".
>
> I think I have a solution for this one. Will it be PR worthy? Let's find 
> out. The ability to hide/replace the default text field is a bit cumbersome 
> atm. You can hide the text-body by setting the `hide-body` field to "yes". 
> And we can add new "sections" with `$/tags/ViewTemplate`, but unless we dig 
> around and copy the $reveal code from another template section that will 
> not be consistent with the Collapse state.... Yeah. Complicated.
>
> If I change the `$:/core/ui/ViewTemplate/body` tiddler slightly, we can 
> move the "tiddler-body-default" wikitext to a macro in the same tiddler:
> ```
> \define tiddler-body-default()
> <$list filter="[all[current]!has[plugin-type]!field:hide-body[yes]]">
>
>
> <$transclude>
>
>
> <$transclude tiddler="$:/language/MissingTiddler/Hint"/>
>
>
> </$transclude>
>
>
> </$list>
> \end
>
> ```
> And re-write the body of the tiddler like so:
> ```
> <$reveal tag="div" class="tc-tiddler-body" type="nomatch" stateTitle=<
> <folded-state>> text="hide" retain="yes" animate="yes">
>
>
> <$list variable="bodyTemplate" 
> filter="[all[current]subfilter{$:/config/ViewTemplate/Body}]" emptyMessage=<
> <tiddler-body-default>> >
>
>
> <$transclude tiddler=<<bodyTemplate>> >
>
>
> <$tiddler tiddler=<<bodyTemplate>> >
>
>
> <$transclude tiddler="$:/language/MissingTiddler/Hint"/>
>
>
> </$tiddler>
>
>
> </$transclude>
>
>
> </$list>
>
>
> </$reveal>
>
> ```
> Then we can use an array of filters to check for tags, type, or any other 
> way you want to trigger a custom view template, and you can have more than 
> one resulting bodyTemplate titles output and it's all nested in the correct 
> $reveal widget, etc. Even better, you can use the `<<tiddler-body-default>> 
> macro ANYWHERE in your own templates to get the default text-field to show 
> up in that spot. Here is my current `$:/config/ViewTemplate/Body`:
> ```
> [tag[$:/tags/Macro]then[$:/plugins/joshuafontany/core/ui/ViewTemplate/body
> /macro]]
> [tag[Glossary]then[$:/plugins/joshuafontany/silatglossary/ui/ViewTemplate/
> body]]
> [match[Test]then[$/plugins/joshuafontany/core/ui/ViewTemplate/body/TEST]]
>
> ```
> Which as you can see, uses the 
> `$:/plugins/joshuafontany/core/ui/ViewTemplate/body/macro` tiddler as the 
> body-template for all Global Macro tiddlers. This template looks like:
> ```
> <pre><code language={{!!type}}><$view field="text"/></code></pre>
>
>
> ```
>
> Which is a bit overkill, but is exactly how, internally, the 
> `application.javascript` tiddlers are rendered. But this means I no longer 
> have to click edit on every Macro tiddler just to re-read it for bug, etc. 
> I'm going to expand this technique to render other custom tiddler types for 
> other projects.
>
> Oh, yes, final note. The Type field can and will definitely over-ride this 
> custom rendering, as that's done internally using the wiki's Parser 
> methods. Also, I'm not sure if this is 100% backwards compatible, but the 
> only thing I can possibly think of it changing are the Numeric Values 
> output by the Qualify Macro (as these depend on how many and which tiddlers 
> the current content is being rendered "through").
>
> I think I will expand this to allow for a tabbed interface in the Draft 
> Mode UI, with the standard Text Editor in one tab, and other content in 
> other tabs. I can also use this to extent the Title field to allow for a 
> custom Name (short & human readable, see plugins) that will display full 
> size (if present) and which pushes the full Title down to a line of smaller 
> text.
>
> Best,
>
> Joshua Fontany
>

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywikidev/a8c9f3ec-6a2f-4795-a79d-83af40dd765a%40googlegroups.com.

Reply via email to