mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2025-02-21 13:30:02 +00:00
Get rid of palette-types...
Instead, we'll special case transforming `<<colour X>>` into `[function[colour],[x]]` Makes everything much easier and avoids all the kerfuffle of not being able to mix palettes
This commit is contained in:
parent
0d9ab2e2f6
commit
961b26a984
@ -4,7 +4,6 @@ description: Automatically switch between dark and light modes
|
||||
tags: $:/tags/Palette
|
||||
type: application/x-tiddler-dictionary
|
||||
color-scheme: [{$:/info/browser/darkmode}match[no]then[light]else[dark]]
|
||||
palette-type: classic
|
||||
settings: $:/palettes/AutoToggle/Settings
|
||||
palette-import@light: $:/palettes/FlexokiLight
|
||||
palette-import@dark: $:/palettes/FlexokiDark
|
||||
|
@ -4,7 +4,6 @@ description: Modern and flexible
|
||||
tags: $:/tags/Palette
|
||||
type: application/x-tiddler-dictionary
|
||||
color-scheme: light
|
||||
palette-type: modern
|
||||
settings: $:/palettes/TwentyTwenties/Settings
|
||||
|
||||
# Background and foreground colours, which are interpolated as required
|
||||
|
@ -4,7 +4,6 @@ description: Modern and flexible, Darkish
|
||||
tags: $:/tags/Palette
|
||||
type: application/x-tiddler-dictionary
|
||||
color-scheme: dark
|
||||
palette-type: modern
|
||||
palette-import: $:/palettes/TwentyTwenties
|
||||
|
||||
base-paper: #111122
|
||||
|
@ -4,7 +4,6 @@ description: Modern and flexible, Greenish
|
||||
tags: $:/tags/Palette
|
||||
type: application/x-tiddler-dictionary
|
||||
color-scheme: light
|
||||
palette-type: modern
|
||||
palette-import: $:/palettes/TwentyTwenties
|
||||
|
||||
base-paper: rgb(188, 255, 161)
|
||||
|
@ -9,12 +9,12 @@ title: $:/snippets/currpalettepreview
|
||||
\end colour-inner-get-imported-palette
|
||||
|
||||
\function colour-inner-get-palette-entry(name,tv-palette-name)
|
||||
[<name>addprefix[@]addprefix<scheme>] :map[<tv-palette-name>getindex<currentTiddler>] +[!match[]] :else[<tv-palette-name>getindex<name>] :else[function[colour-inner-get-imported-palette],<name>,<tv-palette-name>]
|
||||
[<name>addprefix[@]addprefix<scheme>] :map[<tv-palette-name>getindex<currentTiddler>] +[!match[]] :else[<tv-palette-name>getindex<name>] :map[tf.colour-inner-transform-classic-palette-entry<currentTiddler>] :else[function[colour-inner-get-imported-palette],<name>,<tv-palette-name>]
|
||||
\end colour-inner-get-palette-entry
|
||||
|
||||
<!-- Note the join, needed to cope with palette entries containing spaces -->
|
||||
\function colour(name)
|
||||
[function[colour-inner-get-palette-entry],<name>,<tv-palette-name>] :else[[$:/config/DefaultColourMappings/]addsuffix<name>addsuffix[@]addsuffix<scheme>get[text]] :else[[$:/config/DefaultColourMappings/]addsuffix<name>get[text]] :map[subfilter<currentTiddler>join[ ]]
|
||||
[function[colour-inner-get-palette-entry],<name>,<tv-palette-name>] :else[[$:/config/DefaultColourMappings/]addsuffix<name>get[text]] :map[subfilter<currentTiddler>join[ ]]
|
||||
\end colour
|
||||
|
||||
\function color(name)
|
||||
@ -30,42 +30,9 @@ title: $:/snippets/currpalettepreview
|
||||
</$let>
|
||||
\end colour-div-filtered
|
||||
|
||||
\procedure colour-div-wikified(class,styleName,styleColour)
|
||||
<!-- Define our own deeply backwards compatible local versions of the colour macro -->
|
||||
\define colour(name)
|
||||
\whitespace trim
|
||||
<$transclude tiddler=<<tv-palette-name>> index="$name$@$(scheme)$">
|
||||
<$transclude tiddler=<<tv-palette-name>> index="$name$">
|
||||
<$let
|
||||
prefixed-palette-import={{{ [[palette-import@]addsuffix<scheme>] }}}
|
||||
tv-palette-name={{{ [<tv-palette-name>get<prefixed-palette-import>has[title]] :else[<tv-palette-name>get[palette-import]] }}}
|
||||
>
|
||||
<%if [<tv-palette-name>has[title]] %>
|
||||
<$transclude $variable="colour" name=<<__name__>>/>
|
||||
<%else%>
|
||||
<$transclude tiddler="$:/config/DefaultColourMappings/$name$@$(scheme)$">
|
||||
<$transclude tiddler="$:/config/DefaultColourMappings/$name$"/>
|
||||
</$transclude>
|
||||
<%endif%>
|
||||
</$let>
|
||||
</$transclude>
|
||||
</$transclude>
|
||||
\end colour
|
||||
\define color(name) <<colour $name$>>
|
||||
<$wikify name="colour-result" text={{{ [[<<colour ]addsuffix<styleColour>addsuffix[>>]] }}} mode="inline">
|
||||
<div class=<<class>> style={{{ [<styleName>addsuffix[:]addsuffix<colour-result>addsuffix[;]] }}}>
|
||||
<$slot $name="ts-raw" $depth="2"/>
|
||||
</div>
|
||||
</$wikify>
|
||||
\end colour-div-wikified
|
||||
|
||||
\widget $colour.div(class,styleName,styleColour)
|
||||
<%if [<styleName>!match[]] %>
|
||||
<%if [<tv-palette-name>get[palette-type]match[modern]] %>
|
||||
<$transclude $variable="colour-div-filtered" class=<<class>> styleName=<<styleName>> styleColour=<<styleColour>>/>
|
||||
<%else%>
|
||||
<$transclude $variable="colour-div-wikified" class=<<class>> styleName=<<styleName>> styleColour=<<styleColour>>/>
|
||||
<%endif%>
|
||||
<$transclude $variable="colour-div-filtered" class=<<class>> styleName=<<styleName>> styleColour=<<styleColour>>/>
|
||||
<%else%>
|
||||
<div class=<<class>>>
|
||||
<$slot $name="ts-raw"/>
|
||||
|
@ -3,40 +3,19 @@ tags: $:/tags/Macro
|
||||
|
||||
\procedure actions-compile-palette-filtered(consolidatedPalette,outputPalette)
|
||||
<!-- Note the join, needed to cope with palette entries containing spaces -->
|
||||
\function colour(name) [<consolidatedPalette>getindex<name>] :else[[$:/config/DefaultColourMappings/]addsuffix<name>get[text]] :map[subfilter<currentTiddler>join[ ]]
|
||||
\function colour(name) [<consolidatedPalette>getindex<name>] :else[[$:/config/DefaultColourMappings/]addsuffix<name>get[text]] :map[tf.colour-inner-transform-classic-palette-entry<currentTiddler>] :map[subfilter<currentTiddler>join[ ]]
|
||||
\function color(name) [function[colour],<name>]
|
||||
<!-- Make the colour function use the input palette -->
|
||||
<$list filter="[<consolidatedPalette>indexes[]sort[]]" variable="colour-name">
|
||||
<$let filter-text={{{ [<consolidatedPalette>getindex<colour-name>] :else[[$:/config/DefaultColourMappings/]addsuffix<colour-name>get[text]] }}}>
|
||||
<$let filter-text={{{ [<consolidatedPalette>getindex<colour-name>] :else[[$:/config/DefaultColourMappings/]addsuffix<colour-name>get[text]] :map[tf.colour-inner-transform-classic-palette-entry<currentTiddler>] }}}>
|
||||
<!-- Note the join, needed to cope with palette entries containing spaces -->
|
||||
<$action-setfield $tiddler=<<outputPalette>> $index=<<colour-name>> $value={{{ [subfilter<filter-text>join[ ]] }}}/>
|
||||
</$let>
|
||||
</$list>
|
||||
\end actions-compile-palette-filtered
|
||||
|
||||
\procedure actions-compile-palette-wikified(consolidatedPalette,outputPalette)
|
||||
<!-- Define our own deeply backwards compatible local versions of the colour macro -->
|
||||
\define colour(name)
|
||||
\whitespace trim
|
||||
<$transclude tiddler=<<consolidatedPalette>> index="$name$">
|
||||
<$transclude tiddler="$:/config/DefaultColourMappings/$name$"/>
|
||||
</$transclude>
|
||||
\end colour
|
||||
\define color(name) <<colour $name$>>
|
||||
<$list filter="[<consolidatedPalette>indexes[]sort[]]" variable="colour-name" $debug="yes">
|
||||
<$let
|
||||
palette-entry-text={{{ [<consolidatedPalette>getindex<colour-name>] :else[[$:/config/DefaultColourMappings/]addsuffix<colour-name>get[text]] }}}
|
||||
>
|
||||
<$wikify name="colour-value" text=<<palette-entry-text>> mode="inline">
|
||||
<$action-setfield $tiddler=<<outputPalette>> $index=<<colour-name>> $value=<<colour-value>>/>
|
||||
</$wikify>
|
||||
</$let>
|
||||
</$list>
|
||||
\end actions-compile-palette-wikified
|
||||
|
||||
\procedure actions-compile-palette-import(inputPalette,outputPalette,exclusions:"",scheme,palette-type)
|
||||
\procedure actions-compile-palette-import(inputPalette,outputPalette,exclusions:"",scheme)
|
||||
<%if [enlist<exclusions>!match<inputPalette>count[]] :map[enlist<exclusions>count[]compare:number:eq<currentTiddler>] +[!match[]] %>
|
||||
<%if [<inputPalette>get[palette-type]!match[]else[classic]match<palette-type>] %>
|
||||
<$set name="exclusions" filter="[enlist<exclusions>] [<inputPalette>]">
|
||||
<!-- Recursively import any imported palette -->
|
||||
<$let
|
||||
@ -44,7 +23,7 @@ tags: $:/tags/Macro
|
||||
inputPalette={{{ [<inputPalette>get<prefixed-palette-import>has[title]] :else[<inputPalette>get[palette-import]] }}}
|
||||
>
|
||||
<%if [<inputPalette>has[title]] %>
|
||||
<$transclude $variable="actions-compile-palette-import" inputPalette=<<inputPalette>> outputPalette=<<outputPalette>> exclusions=<<exclusions>> scheme=<<scheme>> palette-type=<<palette-type>>/>
|
||||
<$transclude $variable="actions-compile-palette-import" inputPalette=<<inputPalette>> outputPalette=<<outputPalette>> exclusions=<<exclusions>> scheme=<<scheme>>/>
|
||||
<%endif%>
|
||||
</$let>
|
||||
<!-- Copy the suffixed palette entries with the suffix stripped -->
|
||||
@ -60,7 +39,6 @@ tags: $:/tags/Macro
|
||||
<!-- Copy the fields from the palette -->
|
||||
<$action-setmultiplefields $tiddler=<<outputPalette>> $fields="[<inputPalette>fields[]sort[]] -title -tags -text" $values="[<inputPalette>fields[]sort[]] -title -tags -text :map[<inputPalette>get<currentTiddler>]"/>
|
||||
</$set>
|
||||
<%endif%>
|
||||
<%endif%>
|
||||
\end actions-compile-palette-import
|
||||
|
||||
@ -71,7 +49,6 @@ tags: $:/tags/Macro
|
||||
>
|
||||
<!-- Compute the current scheme -->
|
||||
<$let
|
||||
palette-type={{{ [<inputPalette>get[palette-type]] :else[[classic]] }}}
|
||||
color-scheme-filter={{{ [<inputPalette>get[color-scheme]] :else[[light]] }}}
|
||||
scheme={{{ [subfilter<color-scheme-filter>] }}}
|
||||
>
|
||||
@ -82,17 +59,11 @@ tags: $:/tags/Macro
|
||||
<$action-deletetiddler $tiddler=<<outputPalette>>/>
|
||||
<$action-setfield $tiddler=<<outputPalette>> type="application/x-tiddler-dictionary"/>
|
||||
<!-- Consolidate the chain of palettes -->
|
||||
<$transclude $variable="actions-compile-palette-import" inputPalette=<<inputPalette>> outputPalette=<<consolidatedPalette>> scheme=<<scheme>> palette-type=<<palette-type>>/>
|
||||
<$transclude $variable="actions-compile-palette-import" inputPalette=<<inputPalette>> outputPalette=<<consolidatedPalette>> scheme=<<scheme>>/>
|
||||
<!-- Save the current scheme in the output tiddler -->
|
||||
<$action-setfield $tiddler=<<outputPalette>> $field="color-scheme" $value=<<scheme>>/>
|
||||
<!-- Compile the temporary palette to the output palette -->
|
||||
<%if [<inputPalette>get[palette-type]match[modern]] %>
|
||||
<$transclude $variable="actions-compile-palette-filtered" consolidatedPalette=<<consolidatedPalette>> outputPalette=<<outputPalette>>/>
|
||||
<%else%>
|
||||
<$transclude $variable="actions-compile-palette-wikified" consolidatedPalette=<<consolidatedPalette>> outputPalette=<<outputPalette>>/>
|
||||
<%endif%>
|
||||
<!-- Remove the temporary consolidated palette -->
|
||||
<!-- <$action-deletetiddler $tiddler=<<consolidatedPalette>>/> -->
|
||||
<$transclude $variable="actions-compile-palette-filtered" consolidatedPalette=<<consolidatedPalette>> outputPalette=<<outputPalette>>/>
|
||||
</$let>
|
||||
</$let>
|
||||
\end actions-compile-palette
|
||||
@ -118,6 +89,18 @@ tags: $:/tags/Macro
|
||||
[function[colour],<name>]
|
||||
\end color
|
||||
|
||||
\procedure colour-function-prefix()
|
||||
[function[colour],[
|
||||
\end colour-function-prefix
|
||||
|
||||
\procedure colour-function-suffix()
|
||||
]]
|
||||
\end colour-function-suffix
|
||||
|
||||
\function tf.colour-inner-transform-classic-palette-entry(colour-result)
|
||||
[<colour-result>prefix[<<colour ]suffix[>>]removeprefix[<<colour ]removesuffix[>>]addprefix<colour-function-prefix>addsuffix<colour-function-suffix>] :else[<colour-result>]
|
||||
\end tf.colour-inner-transform-classic-palette-entry
|
||||
|
||||
\function tf.check-colour-contrast-subfunction()
|
||||
[function[colour],<paletteEntryA>] [function[colour],<paletteEntryB>] +[colour-contrast:DeltaPhi[]fixed[3]]
|
||||
\end tf.check-colour-contrast-subfunction
|
||||
|
Loading…
x
Reference in New Issue
Block a user