diff --git a/core/language/en-GB/ControlPanel.multids b/core/language/en-GB/ControlPanel.multids index 508287296..f813cc356 100644 --- a/core/language/en-GB/ControlPanel.multids +++ b/core/language/en-GB/ControlPanel.multids @@ -27,6 +27,9 @@ Basics/Tiddlers/Prompt: Number of tiddlers Basics/Title/Prompt: Title of this ~TiddlyWiki Basics/Username/Prompt: Username for signing edits Basics/Version/Prompt: ~TiddlyWiki version +Cascades/Caption: Cascades +Cascades/Hint: These global rules are used to dynamically choose certain templates. The result of the cascade is the result of the first filter in the sequence that returns a result +Cascades/TagPrompt: Filters tagged <$macrocall $name="tag" tag=<>/> EditorTypes/Caption: Editor Types EditorTypes/Editor/Caption: Editor EditorTypes/Hint: These tiddlers determine which editor is used to edit specific tiddler types. @@ -201,13 +204,12 @@ Stylesheets/Caption: Stylesheets Stylesheets/Expand/Caption: Expand All Stylesheets/Hint: This is the rendered CSS of the current stylesheet tiddlers tagged with <> Stylesheets/Restore/Caption: Restore -Templates/Caption: Templates -Templates/Hint: These are the global rules used to dynamically choose templates. -Templates/TagPrompt: Filters tagged <$macrocall $name="tag" tag=<>/> Theme/Caption: Theme Theme/Prompt: Current theme: TiddlerFields/Caption: Tiddler Fields TiddlerFields/Hint: This is the full set of TiddlerFields in use in this wiki (including system tiddlers but excluding shadow tiddlers). +TiddlerIcon/Caption: Tiddler Icon +TiddlerIcon/Hint: This rules cascade is used to dynamically choose the icon for a tiddler. Toolbars/Caption: Toolbars Toolbars/EditToolbar/Caption: Edit Toolbar Toolbars/EditToolbar/Hint: Choose which buttons are displayed for tiddlers in edit mode. Drag and drop to change the ordering diff --git a/core/ui/ControlPanel/Cascades.tid b/core/ui/ControlPanel/Cascades.tid new file mode 100644 index 000000000..bbd5a3750 --- /dev/null +++ b/core/ui/ControlPanel/Cascades.tid @@ -0,0 +1,9 @@ +title: $:/core/ui/ControlPanel/Cascades +tags: $:/tags/ControlPanel/Advanced +caption: {{$:/language/ControlPanel/Cascades/Caption}} + +{{$:/language/ControlPanel/Cascades/Hint}} + +
+<$macrocall $name="tabs" tabsList="[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Cascades]!has[draft.of]]" default="$:/core/ui/ControlPanel/StoryTiddler"/> +
diff --git a/core/ui/ControlPanel/Templates/EditTemplateBody.tid b/core/ui/ControlPanel/Cascades/EditTemplateBody.tid similarity index 87% rename from core/ui/ControlPanel/Templates/EditTemplateBody.tid rename to core/ui/ControlPanel/Cascades/EditTemplateBody.tid index ed306f604..8558cfebc 100644 --- a/core/ui/ControlPanel/Templates/EditTemplateBody.tid +++ b/core/ui/ControlPanel/Cascades/EditTemplateBody.tid @@ -1,5 +1,5 @@ title: $:/core/ui/ControlPanel/EditTemplateBody -tags: $:/tags/ControlPanel/Templates +tags: $:/tags/ControlPanel/Cascade caption: {{$:/language/ControlPanel/EditTemplateBody/Caption}} \define lingo-base() $:/language/ControlPanel/EditTemplateBody/ diff --git a/core/ui/ControlPanel/Templates/StoryTiddler.tid b/core/ui/ControlPanel/Cascades/StoryTiddler.tid similarity index 87% rename from core/ui/ControlPanel/Templates/StoryTiddler.tid rename to core/ui/ControlPanel/Cascades/StoryTiddler.tid index ccc002e79..3fcf0819b 100644 --- a/core/ui/ControlPanel/Templates/StoryTiddler.tid +++ b/core/ui/ControlPanel/Cascades/StoryTiddler.tid @@ -1,5 +1,5 @@ title: $:/core/ui/ControlPanel/StoryTiddler -tags: $:/tags/ControlPanel/Templates +tags: $:/tags/ControlPanel/Cascades caption: {{$:/language/ControlPanel/StoryTiddler/Caption}} \define lingo-base() $:/language/ControlPanel/StoryTiddler/ diff --git a/core/ui/ControlPanel/Cascades/TiddlerIcon.tid b/core/ui/ControlPanel/Cascades/TiddlerIcon.tid new file mode 100644 index 000000000..82e369b08 --- /dev/null +++ b/core/ui/ControlPanel/Cascades/TiddlerIcon.tid @@ -0,0 +1,9 @@ +title: $:/core/ui/ControlPanel/TiddlerIcon +tags: $:/tags/ControlPanel/Cascades +caption: {{$:/language/ControlPanel/TiddlerIcon/Caption}} + +\define lingo-base() $:/language/ControlPanel/TiddlerIcon/ + +<> + +{{$:/tags/TiddlerIconFilter||$:/snippets/ListTaggedCascade}} diff --git a/core/ui/ControlPanel/Templates/ViewTemplateBody.tid b/core/ui/ControlPanel/Cascades/ViewTemplateBody.tid similarity index 87% rename from core/ui/ControlPanel/Templates/ViewTemplateBody.tid rename to core/ui/ControlPanel/Cascades/ViewTemplateBody.tid index 337a30940..1347f6826 100644 --- a/core/ui/ControlPanel/Templates/ViewTemplateBody.tid +++ b/core/ui/ControlPanel/Cascades/ViewTemplateBody.tid @@ -1,5 +1,5 @@ title: $:/core/ui/ControlPanel/ViewTemplateBody -tags: $:/tags/ControlPanel/Templates +tags: $:/tags/ControlPanel/Cascades caption: {{$:/language/ControlPanel/ViewTemplateBody/Caption}} \define lingo-base() $:/language/ControlPanel/ViewTemplateBody/ diff --git a/core/ui/ControlPanel/Templates/ViewTemplateTitle.tid b/core/ui/ControlPanel/Cascades/ViewTemplateTitle.tid similarity index 87% rename from core/ui/ControlPanel/Templates/ViewTemplateTitle.tid rename to core/ui/ControlPanel/Cascades/ViewTemplateTitle.tid index cba3f2f54..7a0d203b6 100644 --- a/core/ui/ControlPanel/Templates/ViewTemplateTitle.tid +++ b/core/ui/ControlPanel/Cascades/ViewTemplateTitle.tid @@ -1,5 +1,5 @@ title: $:/core/ui/ControlPanel/ViewTemplateTitle -tags: $:/tags/ControlPanel/Templates +tags: $:/tags/ControlPanel/Cascades caption: {{$:/language/ControlPanel/ViewTemplateTitle/Caption}} \define lingo-base() $:/language/ControlPanel/ViewTemplateTitle/ diff --git a/core/ui/ControlPanel/Templates.tid b/core/ui/ControlPanel/Templates.tid deleted file mode 100644 index 940b13f41..000000000 --- a/core/ui/ControlPanel/Templates.tid +++ /dev/null @@ -1,9 +0,0 @@ -title: $:/core/ui/ControlPanel/Templates -tags: $:/tags/ControlPanel/Advanced -caption: {{$:/language/ControlPanel/Templates/Caption}} - -{{$:/language/ControlPanel/Templates/Hint}} - -
-<$macrocall $name="tabs" tabsList="[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Templates]!has[draft.of]]" default="$:/core/ui/ControlPanel/StoryTiddler"/> -
diff --git a/core/ui/ListTaggedCascade.tid b/core/ui/ListTaggedCascade.tid index d494eb8ed..3342838a2 100644 --- a/core/ui/ListTaggedCascade.tid +++ b/core/ui/ListTaggedCascade.tid @@ -1,6 +1,6 @@ title: $:/snippets/ListTaggedCascade -{{||$:/language/ControlPanel/Templates/TagPrompt}} +{{||$:/language/ControlPanel/Cascades/TagPrompt}}
    <$list filter="[all[shadows+tiddlers]tag]"> diff --git a/core/ui/TagPickerTagTemplate.tid b/core/ui/TagPickerTagTemplate.tid index 0588a0698..9e967bc7b 100644 --- a/core/ui/TagPickerTagTemplate.tid +++ b/core/ui/TagPickerTagTemplate.tid @@ -16,7 +16,7 @@ title: $:/core/ui/TagPickerTagTemplate <$set name="backgroundColor" value={{!!color}}> <$wikify name="foregroundColor" text="""<$macrocall $name="contrastcolour" target={{!!color}} fallbackTarget=<> colourA=<> colourB=<>/>"""> >> -<$transclude tiddler={{!!icon}}/><$view field="title" format="text"/> +{{||$:/core/ui/TiddlerIcon}}<$view field="title" format="text"/> diff --git a/core/ui/TagTemplate.tid b/core/ui/TagTemplate.tid index 3856854f5..fb9ce16ba 100644 --- a/core/ui/TagTemplate.tid +++ b/core/ui/TagTemplate.tid @@ -3,7 +3,7 @@ title: $:/core/ui/TagTemplate \whitespace trim >> <$set name="transclusion" value=<>> -<$macrocall $name="tag-pill-body" tag=<> icon={{!!icon}} colour={{!!color}} palette={{$:/palette}} element-tag="""$button""" element-attributes="""popup=<> dragFilter='[all[current]tagging[]]' tag='span'"""/> +<$macrocall $name="tag-pill-body" tag=<> colour={{!!color}} palette={{$:/palette}} element-tag="""$button""" element-attributes="""popup=<> dragFilter='[all[current]tagging[]]' tag='span'"""/> <$reveal state=<> type="popup" position="below" animate="yes" class="tc-drop-down"> <$set name="tv-show-missing-links" value="yes"> <$transclude tiddler="$:/core/ui/ListItemTemplate"/> diff --git a/core/ui/TiddlerIcon.tid b/core/ui/TiddlerIcon.tid new file mode 100644 index 000000000..bf4f79999 --- /dev/null +++ b/core/ui/TiddlerIcon.tid @@ -0,0 +1,15 @@ +title: $:/core/ui/TiddlerIcon + +\whitespace trim +\define title-styles() +fill:$(foregroundColor)$; +\end +<$let tiddlerIcon={{{ [] :cascade[all[shadows+tiddlers]tag[$:/tags/TiddlerIconFilter]get[text]] }}}> +<$list filter="[!is[blank]]" variable="ignore"> +<$let foregroundColor={{!!color}}> +> style=<>> +<$transclude tiddler=<>/> + + + + diff --git a/core/ui/ViewTemplate/title.tid b/core/ui/ViewTemplate/title.tid index fed7ce695..019948a4d 100644 --- a/core/ui/ViewTemplate/title.tid +++ b/core/ui/ViewTemplate/title.tid @@ -2,9 +2,6 @@ title: $:/core/ui/ViewTemplate/title tags: $:/tags/ViewTemplate \whitespace trim -\define title-styles() -fill:$(foregroundColor)$; -\end
    @@ -12,15 +9,9 @@ fill:$(foregroundColor)$; <$set name="tv-wikilinks" value={{$:/config/Tiddlers/TitleLinks}}> <$link> -<$set name="foregroundColor" value={{!!color}}> -<$list filter="[all[current]has[icon]]~[[$:/config/DefaultTiddlerIcon]has[text]]"> ->> -<$transclude tiddler={{!!icon}}> -<$transclude tiddler={{$:/config/DefaultTiddlerIcon}}/> - - - - +<$let iconSpanClass="tc-tiddler-title-icon"> +{{||$:/core/ui/TiddlerIcon}} + <$transclude tiddler={{{ [] :cascade[all[shadows+tiddlers]tag[$:/tags/ViewTemplateTitleFilter]get[text]] :and[!is[blank]else[$:/core/ui/ViewTemplate/title/default]] }}} /> diff --git a/core/wiki/config/TiddlerIconFilters.multids b/core/wiki/config/TiddlerIconFilters.multids new file mode 100644 index 000000000..1ed156c2e --- /dev/null +++ b/core/wiki/config/TiddlerIconFilters.multids @@ -0,0 +1,5 @@ +title: $:/config/TiddlerIconFilters/ +tags: $:/tags/TiddlerIconFilter + +icon-field: [has[icon]then{!!icon}] +default: [{$:/config/DefaultTiddlerIcon}has[text]] diff --git a/core/wiki/macros/tag.tid b/core/wiki/macros/tag.tid index f19a0b978..a9644725e 100644 --- a/core/wiki/macros/tag.tid +++ b/core/wiki/macros/tag.tid @@ -10,18 +10,18 @@ color:$(foregroundColor)$; \define tag-pill-inner(tag,icon,colour,fallbackTarget,colourA,colourB,element-tag,element-attributes,actions) <$vars foregroundColor=<> backgroundColor="""$colour$"""> <$element-tag$ $element-attributes$ class="tc-tag-label tc-btn-invisible" style=<>> -$actions$<$transclude tiddler="""$icon$"""/><$view tiddler=<<__tag__>> field="title" format="text" /> +$actions${{||$:/core/ui/TiddlerIcon}}<$view tiddler=<<__tag__>> field="title" format="text" /> \end \define tag-pill-body(tag,icon,colour,palette,element-tag,element-attributes,actions) -<$macrocall $name="tag-pill-inner" tag=<<__tag__>> icon="""$icon$""" colour="""$colour$""" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}} element-tag="""$element-tag$""" element-attributes="""$element-attributes$""" actions="""$actions$"""/> +<$macrocall $name="tag-pill-inner" tag=<<__tag__>> colour="""$colour$""" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}} element-tag="""$element-tag$""" element-attributes="""$element-attributes$""" actions="""$actions$"""/> \end \define tag-pill(tag,element-tag:"span",element-attributes:"",actions:"") >> -<$macrocall $name="tag-pill-body" tag=<<__tag__>> icon={{{ [<__tag__>get[icon]] }}} colour={{{ [<__tag__>get[color]] }}} palette={{$:/palette}} element-tag="""$element-tag$""" element-attributes="""$element-attributes$""" actions="""$actions$"""/> +<$macrocall $name="tag-pill-body" tag=<<__tag__>> colour={{{ [<__tag__>get[color]] }}} palette={{$:/palette}} element-tag="""$element-tag$""" element-attributes="""$element-attributes$""" actions="""$actions$"""/> \end diff --git a/core/wiki/tags/TiddlerIconFilter.tid b/core/wiki/tags/TiddlerIconFilter.tid new file mode 100644 index 000000000..e55f9ab52 --- /dev/null +++ b/core/wiki/tags/TiddlerIconFilter.tid @@ -0,0 +1,3 @@ +title: $:/tags/TiddlerIconFilter +list: $:/config/TiddlerIconFilters/icon-field $:/config/TiddlerIconFilters/default + diff --git a/editions/tw5.com/tiddlers/demonstrations/CustomTiddlerIconCascadeDemo/CustomTiddlerIconCascadeDemo.tid b/editions/tw5.com/tiddlers/demonstrations/CustomTiddlerIconCascadeDemo/CustomTiddlerIconCascadeDemo.tid new file mode 100644 index 000000000..64158f5bb --- /dev/null +++ b/editions/tw5.com/tiddlers/demonstrations/CustomTiddlerIconCascadeDemo/CustomTiddlerIconCascadeDemo.tid @@ -0,0 +1,5 @@ +title: $:/_tw5.com/CustomTiddlerIconCascadeDemo +tags: $:/tags/TiddlerIconFilter + +[tag[TableOfContents]then[$:/core/images/globe]] +[tag[Working with TiddlyWiki]then[$:/core/images/help]]