├── source
└── timelines
│ ├── images
│ ├── right-arrow.svg.meta
│ └── right-arrow.svg
│ ├── styles
│ ├── colors
│ │ ├── dark.json.meta
│ │ ├── info.json.meta
│ │ ├── light.json.meta
│ │ ├── danger.json.meta
│ │ ├── primary.json.meta
│ │ ├── success.json.meta
│ │ ├── warning.json.meta
│ │ ├── secondary.json.meta
│ │ ├── info.json
│ │ ├── light.json
│ │ ├── danger.json
│ │ ├── dark.json
│ │ ├── primary.json
│ │ ├── success.json
│ │ ├── warning.json
│ │ └── secondary.json
│ ├── timeline-vertical.css.meta
│ ├── sequence-horizontal.css.meta
│ ├── timeline-horizontal.css.meta
│ ├── vertical-sequence.css.meta
│ ├── timeline-horizontal
│ │ └── navigation-img.tid
│ ├── sequence-horizontal.css
│ ├── sequence-vertical-colors.tid
│ ├── timeline-horizontal-colors.tid
│ ├── timeline-vertical-colors.css.tid
│ ├── sequence-horizontal-colors.tid
│ ├── vertical-sequence.css
│ ├── timeline-vertical.css
│ └── timeline-horizontal.css
│ ├── templates
│ ├── sequence-horizontal.tid
│ ├── timeline-horizontal.tid
│ ├── timeline-vertical.tid
│ └── sequence-vertical.tid
│ ├── readme.tid
│ ├── history.tid
│ ├── plugin.info
│ ├── procedures
│ ├── sequence-vertical.tid
│ ├── timeline-vertical.tid
│ ├── sequence-horizontal.tid
│ ├── timeline-horizontal-left-pos.tid
│ └── timeline-horizontal.tid
│ └── license.tid
├── README.md
├── LICENSE
├── packaged
└── timelines.tid
└── timelines.tid
/source/timelines/images/right-arrow.svg.meta:
--------------------------------------------------------------------------------
1 | title: $:/plugins/kookma/timelines/images/right-arrow
2 | type: image/svg+xml
--------------------------------------------------------------------------------
/source/timelines/styles/colors/dark.json.meta:
--------------------------------------------------------------------------------
1 | title: $:/plugins/kookma/timelines/styles/colors/dark
2 | type: application/json
--------------------------------------------------------------------------------
/source/timelines/styles/colors/info.json.meta:
--------------------------------------------------------------------------------
1 | title: $:/plugins/kookma/timelines/styles/colors/info
2 | type: application/json
--------------------------------------------------------------------------------
/source/timelines/styles/colors/light.json.meta:
--------------------------------------------------------------------------------
1 | title: $:/plugins/kookma/timelines/styles/colors/light
2 | type: application/json
--------------------------------------------------------------------------------
/source/timelines/styles/colors/danger.json.meta:
--------------------------------------------------------------------------------
1 | title: $:/plugins/kookma/timelines/styles/colors/danger
2 | type: application/json
--------------------------------------------------------------------------------
/source/timelines/styles/colors/primary.json.meta:
--------------------------------------------------------------------------------
1 | title: $:/plugins/kookma/timelines/styles/colors/primary
2 | type: application/json
--------------------------------------------------------------------------------
/source/timelines/styles/colors/success.json.meta:
--------------------------------------------------------------------------------
1 | title: $:/plugins/kookma/timelines/styles/colors/success
2 | type: application/json
--------------------------------------------------------------------------------
/source/timelines/styles/colors/warning.json.meta:
--------------------------------------------------------------------------------
1 | title: $:/plugins/kookma/timelines/styles/colors/warning
2 | type: application/json
--------------------------------------------------------------------------------
/source/timelines/styles/colors/secondary.json.meta:
--------------------------------------------------------------------------------
1 | title: $:/plugins/kookma/timelines/styles/colors/secondary
2 | type: application/json
--------------------------------------------------------------------------------
/source/timelines/styles/timeline-vertical.css.meta:
--------------------------------------------------------------------------------
1 | tags: $:/tags/Stylesheet
2 | title: $:/plugins/kookma/timelines/styles/timeline-vertical.css
3 | type: text/css
--------------------------------------------------------------------------------
/source/timelines/styles/sequence-horizontal.css.meta:
--------------------------------------------------------------------------------
1 | tags: $:/tags/Stylesheet
2 | title: $:/plugins/kookma/timelines/styles/sequence-horizontal.css
3 | type: text/css
--------------------------------------------------------------------------------
/source/timelines/styles/timeline-horizontal.css.meta:
--------------------------------------------------------------------------------
1 | tags: $:/tags/Stylesheet
2 | title: $:/plugins/kookma/timelines/styles/timeline-horizontal.css
3 | type: text/css
--------------------------------------------------------------------------------
/source/timelines/images/right-arrow.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/timelines/templates/sequence-horizontal.tid:
--------------------------------------------------------------------------------
1 | code-body: yes
2 | title: $:/plugins/kookma/timelines/templates/sequence-horizontal
3 | type: text/vnd.tiddlywiki
4 |
5 | <$transclude $mode=block/>
--------------------------------------------------------------------------------
/source/timelines/styles/vertical-sequence.css.meta:
--------------------------------------------------------------------------------
1 | tags: $:/tags/Stylesheet
2 | title: $:/plugins/kookma/timelines/styles/vertical-sequence.css
3 | type: text/css
4 | url: https://codepen.io/letsbleachthis/pen/YJgNpv
--------------------------------------------------------------------------------
/source/timelines/styles/colors/info.json:
--------------------------------------------------------------------------------
1 | {
2 | "class": "info",
3 | "color": "#0c5460",
4 | "background": "#d1ecf1",
5 | "border": "#bee5eb",
6 | "link":"#062c33",
7 | "light-background":"#ebf7f9"
8 | }
--------------------------------------------------------------------------------
/source/timelines/styles/colors/light.json:
--------------------------------------------------------------------------------
1 | {
2 | "class": "light",
3 | "color": "#818182",
4 | "background": "#fefefe",
5 | "border": "#818182",
6 | "link":"#686868",
7 | "light-background":"#ededed"
8 | }
--------------------------------------------------------------------------------
/source/timelines/styles/colors/danger.json:
--------------------------------------------------------------------------------
1 | {
2 | "class": "danger",
3 | "color": "#721c24",
4 | "background": "#f8d7da",
5 | "border": "#f5c6cb",
6 | "link":"#491217",
7 | "light-background":"#fdf4f5"
8 | }
--------------------------------------------------------------------------------
/source/timelines/styles/colors/dark.json:
--------------------------------------------------------------------------------
1 | {
2 | "class": "dark",
3 | "color": "#1b1e21",
4 | "background": "#d6d8d9",
5 | "border": "#c6c8ca",
6 | "link":"#040505",
7 | "light-background":"#f0f1f2"
8 | }
9 |
--------------------------------------------------------------------------------
/source/timelines/styles/colors/primary.json:
--------------------------------------------------------------------------------
1 | {
2 | "class": "primary",
3 | "color": "#004085",
4 | "background": "#cce5ff",
5 | "border": "#b8daff",
6 | "link": "#002752",
7 | "light-background":"#eef6ff"
8 | }
--------------------------------------------------------------------------------
/source/timelines/styles/colors/success.json:
--------------------------------------------------------------------------------
1 | {
2 | "class": "success",
3 | "color": "#155724",
4 | "background": "#d4edda",
5 | "border": "#c3e6cb",
6 | "link":"#0b2e13",
7 | "light-background":"#ecf7ef"
8 | }
--------------------------------------------------------------------------------
/source/timelines/styles/colors/warning.json:
--------------------------------------------------------------------------------
1 | {
2 | "class": "warning",
3 | "color": "#856404",
4 | "background": "#fff3cd",
5 | "border": "#ffeeba",
6 | "link":"#533f03",
7 | "light-background":"#fffbef"
8 | }
--------------------------------------------------------------------------------
/source/timelines/styles/colors/secondary.json:
--------------------------------------------------------------------------------
1 | {
2 | "class": "secondary",
3 | "color": "#383d41",
4 | "background": "#e2e3e5",
5 | "border": "#d6d8db",
6 | "link":"#202326",
7 | "light-background":"#f4f4f5"
8 | }
--------------------------------------------------------------------------------
/source/timelines/templates/timeline-horizontal.tid:
--------------------------------------------------------------------------------
1 | code-body: yes
2 | title: $:/plugins/kookma/timelines/templates/timeline-horizontal
3 | type: text/vnd.tiddlywiki
4 |
5 |
<$transclude $field="title"/>
6 | <$transclude mode="block"/>
--------------------------------------------------------------------------------
/source/timelines/templates/timeline-vertical.tid:
--------------------------------------------------------------------------------
1 | code-body: yes
2 | title: $:/plugins/kookma/timelines/templates/timeline-vertical
3 | type: text/vnd.tiddlywiki
4 |
5 | <$link class="item-link"><$text text=<>/>$link>
6 | <$transclude mode="block"/>
7 |
8 |
--------------------------------------------------------------------------------
/source/timelines/styles/timeline-horizontal/navigation-img.tid:
--------------------------------------------------------------------------------
1 | tags: $:/tags/Stylesheet
2 | title: $:/plugins/kookma/timelines/styles/timeline-horizontal/navigation-img
3 | type: text/vnd.tiddlywiki
4 |
5 | .kk-tl-timeline-horizontal .navigation::after {
6 | /*background: url(img/cd-arrow.svg) no-repeat 0 0*/
7 | background: url(<>) no-repeat 0 0;
8 | }
--------------------------------------------------------------------------------
/source/timelines/readme.tid:
--------------------------------------------------------------------------------
1 | tags:
2 | title: $:/plugins/kookma/timelines/readme
3 | type: text/vnd.tiddlywiki
4 |
5 | ; Timelines
6 | A chronological arrangement of events in the order of their occurrence.
7 |
8 | ;Code and demo
9 | For learning plugin features, syntax, tutorial and examples see the plugin demo and code pages
10 |
11 | * Demo: https://kookma.github.io/TW-Timelines/
12 | * Code: https://github.com/kookma/TW-Timelines
13 |
--------------------------------------------------------------------------------
/source/timelines/templates/sequence-vertical.tid:
--------------------------------------------------------------------------------
1 | code-body: yes
2 | title: $:/plugins/kookma/timelines/templates/sequence-vertical
3 | type: text/vnd.tiddlywiki
4 |
5 | <$link class="item-link"><$text text=<>/>$link>
6 | <$view field="modified" format="date" template={{$:/language/Tiddler/DateFormat}}/>
7 | <$transclude $mode="block"/>
8 |
--------------------------------------------------------------------------------
/source/timelines/history.tid:
--------------------------------------------------------------------------------
1 | tags:
2 | title: $:/plugins/kookma/timelines/history
3 | type: text/vnd.tiddlywiki
4 |
5 | Full change log https://kookma.github.io/TW-Timelines/#ChangeLog
6 |
7 | * ''1.5.0'' -- 2024.10.31 -- update to Tiddlywiki 5.3.5 and Gatha development studio
8 | * ''1.2.0'' -- 2022.11.12 -- update to Tiddlywiki 5.2.3
9 | * ''1.0.0'' -- 2020.08.09 -- stable release
10 | * ''0.6.0'' -- 2020.07.31 -- beta release
11 | * ''0.5.0'' -- 2019.07.28 -- first release
12 |
--------------------------------------------------------------------------------
/source/timelines/plugin.info:
--------------------------------------------------------------------------------
1 | {
2 | "title": "$:/plugins/kookma/timelines",
3 | "version": "1.5.0",
4 | "stability": "STABILITY_2_STABLE",
5 | "name": "Timelines",
6 | "description": "Graphical representation of a period of time",
7 | "author": "Mohammad Rahmani",
8 | "source": "https://github.com/kookma/TW-Timelines",
9 | "list": "readme license history",
10 | "plugin-priority": "",
11 | "parent-plugin": "",
12 | "dependents": "",
13 | "plugin-type": "plugin",
14 | "core-version": ">=5.3.5",
15 | "packaged-by": "Gatha on 31st October 2024, 21:41:09"
16 | }
17 |
--------------------------------------------------------------------------------
/source/timelines/styles/sequence-horizontal.css:
--------------------------------------------------------------------------------
1 | .kk-tl-horizontal-sequence{
2 | width:60%;
3 | margin: 10px auto;
4 | box-sizing:border-box;
5 | }
6 |
7 | .kk-tl-horizontal-sequence-content{
8 | padding:15px;
9 | min-height:140px;
10 | /* border-width:1px;
11 | border-style:dotted; */
12 | }
13 |
14 | .kk-tl-horizontal-sequence ul{
15 | padding:0;
16 | text-align:center;
17 | }
18 | .kk-tl-horizontal-sequence ul li {
19 | width: 2em;
20 | height: 2em;
21 | line-height: 2em;
22 | text-align: center;
23 | border-radius: 50%;
24 | display: inline-block;
25 | position: relative;
26 | margin: 8px 5px;
27 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # TW-Timelines
2 | create timeline and sequence in Tiddlywiki
3 |
4 | Timelines is a collection of four macros for creating vertical and horizontal timeline and sequence. The content or description and data of events are stored in individual tiddlers.
5 |
6 | Timelines contain two timeline macros and two sequence macros. A sequence macro shows event contents in sequence not necessarily in chronological order. The order can be determined by tag or list field or other methods.
7 |
8 | The date of events can be stored in a separate field or the modified field can be used.
9 |
10 | ## Demo
11 | A working demo can be found at https://kookma.github.io/TW-Timelines
12 |
--------------------------------------------------------------------------------
/source/timelines/procedures/sequence-vertical.tid:
--------------------------------------------------------------------------------
1 | tags: $:/tags/Global
2 | title: $:/plugins/kookma/timelines/procedures/sequence-vertical
3 | type: text/vnd.tiddlywiki
4 |
5 | \procedure sequence-vertical(filter, limit:10, date:"modified", footer:"footer", template:"", class:"primary" )
6 |
7 |
8 | <$list filter="[subfilter
limit]" emptyMessage="Timeline: no tiddler found or wrong filter is passed!" >
9 |
10 | <$transclude $tiddler={{{ [!is[blank]] :else[[$:/plugins/kookma/timelines/templates/sequence-vertical]] }}} $mode="block"/>
11 |
12 | $list>
13 |
14 |
15 | \end
--------------------------------------------------------------------------------
/source/timelines/styles/sequence-vertical-colors.tid:
--------------------------------------------------------------------------------
1 | tags: $:/tags/Stylesheet
2 | title: $:/plugins/kookma/timelines/styles/sequence-vertical-colors
3 | type: text/vnd.tiddlywiki
4 |
5 | <$list filter="[all[shadows+tiddlers]prefix[$:/plugins/kookma/timelines/styles/colors/]]" variable="type">
6 |
7 | <$vars
8 | selector={{{[getindex[class]addprefix[.kk-tl-vertical-sequence-]]}}}
9 | color={{{[getindex[color]]}}}
10 | background-color={{{[getindex[background]]}}}
11 | border-color={{{[getindex[border]]}}}
12 | link-color={{{[getindex[link]]}}}
13 | light-background={{{[getindex[light-background]]}}}
14 | >
15 |
16 | <> { color:<>;}
17 | $vars>
18 | $list>
19 |
--------------------------------------------------------------------------------
/source/timelines/styles/timeline-horizontal-colors.tid:
--------------------------------------------------------------------------------
1 | tags: $:/tags/Stylesheet
2 | title: $:/plugins/kookma/timelines/styles/timeline-horizontal-colors
3 | type: text/vnd.tiddlywiki
4 |
5 | <$list filter="[all[shadows+tiddlers]prefix[$:/plugins/kookma/timelines/styles/colors/]]" variable="type">
6 |
7 | <$vars
8 | selector={{{[getindex[class]addprefix[.kk-tl-timeline-horizontal-]]}}}
9 | color={{{[getindex[color]]}}}
10 | background-color={{{[getindex[background]]}}}
11 | border-color={{{[getindex[border]]}}}
12 | link-color={{{[getindex[link]]}}}
13 | light-background={{{[getindex[light-background]]}}}
14 | >
15 |
16 | <> { background:<>; color:<>;}
17 | <> {padding: 15px 10px; border-radius:2px;}
18 | $vars>
19 | $list>
20 |
--------------------------------------------------------------------------------
/source/timelines/styles/timeline-vertical-colors.css.tid:
--------------------------------------------------------------------------------
1 | tags: $:/tags/Stylesheet
2 | title: $:/plugins/kookma/timelines/styles/timeline-vertical-colors.css
3 | type: text/vnd.tiddlywiki
4 |
5 | <$list filter="[all[shadows+tiddlers]prefix[$:/plugins/kookma/timelines/styles/colors/]] -[]" variable="type">
6 |
7 | <$vars
8 | selector={{{[getindex[class]addprefix[.kk-tl-timeline-vertical-]]}}}
9 | color={{{[getindex[color]]}}}
10 | background-color={{{[getindex[background]]}}}
11 | border-color={{{[getindex[border]]}}}
12 | link-color={{{[getindex[link]]}}}
13 | >
14 |
15 | <> ul li{color:<>; background-color: <>; border-color: <>; }
16 | <> ul:before{border-color:<>;}
17 | <> ul li > span{border-color:<>;}
18 | <> ul li > span:before,
19 | <> ul li > span:after{background:<>; border-color:<>;}
20 | <> .item-timedate span{color:<>;}
21 | <> .item-link {color:<>;}
22 | $vars>
23 | $list>
24 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 Mohammad Rahmani
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/source/timelines/license.tid:
--------------------------------------------------------------------------------
1 | title: $:/plugins/kookma/timelines/license
2 | type: text/vnd.tiddlywiki
3 |
4 | Distributed under an MIT license.
5 |
6 | Copyright (c) 2019-2024 [[Mohammad Rahmani|https://github.com/kookma]]
7 |
8 | <<<
9 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
10 |
11 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
14 | <<<
--------------------------------------------------------------------------------
/source/timelines/styles/sequence-horizontal-colors.tid:
--------------------------------------------------------------------------------
1 | tags: $:/tags/Stylesheet
2 | title: $:/plugins/kookma/timelines/styles/sequence-horizontal-colors
3 | type: text/vnd.tiddlywiki
4 |
5 | <$list filter="[all[shadows+tiddlers]prefix[$:/plugins/kookma/timelines/styles/colors/]]" variable="type">
6 |
7 | <$vars
8 | selector={{{[getindex[class]addprefix[.kk-tl-horizontal-sequence-]]}}}
9 | color={{{[getindex[color]]}}}
10 | background-color={{{[getindex[background]]}}}
11 | border-color={{{[getindex[border]]}}}
12 | link-color={{{[getindex[link]]}}}
13 | light-background={{{[getindex[light-background]]}}}
14 | >
15 |
16 | <> .kk-tl-horizontal-sequence-content{ background:<>; color:<>;}
17 | <> li {color:<>;background:<>;}
18 | <> .kk-tl-horizontal-sequence-active {background:<>;}
19 | <> .kk-tl-horizontal-sequence-active~li {color:<>; background:<>;}
20 |
21 | $vars>
22 | $list>
23 |
24 | /*overwrite light theme for horizontal-sequence*/
25 | .kk-tl-horizontal-sequence-light li {background:#d7d8d8;}
26 | .kk-tl-horizontal-sequence-light .kk-tl-horizontal-sequence-active {background:#e8e9e9;}
--------------------------------------------------------------------------------
/source/timelines/procedures/timeline-vertical.tid:
--------------------------------------------------------------------------------
1 | tags: $:/tags/Global
2 | title: $:/plugins/kookma/timelines/procedures/timeline-vertical
3 | type: text/vnd.tiddlywiki
4 |
5 | \procedure timeline-vertical(filter, limit:10, date:"modified", footer:"footer", template:"", class:"", dateformat:"YYYY")
6 | \procedure tltimeline-vertical_ShowEventDate-year()
7 | <%if [search[YYYY]] %>
8 | <$view field=<> format=date template="YYYY"/>
9 | <%endif%>
10 | \end tltimeline-vertical_ShowEventDate-year
11 |
12 | \procedure tltimeline-vertical_ShowEventDate-month()
13 | <%if [search[mmm DDth]] %>
14 | <$view field=<> format=date template="mmm DDth"/>
15 | <%endif%>
16 | \end tltimeline-vertical_ShowEventDate-month
17 |
18 |
19 |
20 | <$set name=templateTiddler value=<> emptyValue="$:/plugins/kookma/timelines/templates/timeline-vertical" >
21 |
22 |
23 | <$list filter="[subfilter] :sort:date[get] :and[limit]" emptyMessage="Timeline: no tiddler found or wrong filter is passed!" >
24 |
25 |
26 |
27 | <$transclude $tiddler=<> $mode="block"/>
28 |
29 |
30 | <>
31 | <>
32 |
33 |
34 | $list>
35 |
36 |
37 | \end timeline-vertical
38 |
39 |
--------------------------------------------------------------------------------
/source/timelines/procedures/sequence-horizontal.tid:
--------------------------------------------------------------------------------
1 | tags: $:/tags/Global
2 | title: $:/plugins/kookma/timelines/procedures/sequence-horizontal
3 | type: text/vnd.tiddlywiki
4 |
5 | \procedure sequence-horizontal(filter, limit:10, date:"modified", footer:"footer", template:"", class:"promary", stateTiddler:"")
6 |
7 | \procedure tlhorizontal-sequence-changeit()
8 | <$action-setfield $tiddler=<> text=<>/>
9 | \end tlhorizontal-sequence-changeit
10 |
11 | <$let container =`${[][] :filter[!is[blank]] +[join[-]]}$`
12 | selected-item = {{{ [get[text]] :else[subfilterfirst[]] }}} >
13 |
14 |
15 |
16 |
17 |
18 | <$list filter="[get[text]] ~[]" template={{{ [!is[blank]] :else[[$:/plugins/kookma/timelines/templates/sequence-horizontal]] }}} />
19 |
20 |
21 |
22 |
23 |
24 | <$list filter="[subfilterlimit]" variable="entry">
25 | <$button class=`${ [[tc-btn-invisible]] [matchthen[kk-tl-horizontal-sequence-active]] :and[join[ ]] }$` actions=<> tag="li">
26 | <$count filter='[subfilterallbefore:include]'/>
27 | $button>
28 | $list>
29 |
30 |
31 |
32 | $let>
33 | \end sequence-horizontal
34 |
35 |
36 |
--------------------------------------------------------------------------------
/source/timelines/procedures/timeline-horizontal-left-pos.tid:
--------------------------------------------------------------------------------
1 | tags:
2 | title: $:/plugins/kookma/timelines/procedures/timeline-horizontal-left-pos
3 | type: text/vnd.tiddlywiki
4 |
5 | \procedure tltimeline-horizontal-ItemSpace() 120
6 | \procedure tltimeline-horizontal-EventLength()
7 |
8 | <%if [match[YYYY]] %>
9 | 16
10 | <%elseif [match[0DD mmm YYYY]] %>
11 | 32
12 | <%elseif [match[mmm DDth]]%>
13 | 20
14 | <%endif%>
15 | \end
16 |
17 |
18 | \procedure tltimeline-horizontal-LeftPosition()
19 |
20 | <$list filter="[listallbefore:includecount[]multiply]" variable="leftpos">
21 | left:<>px;
22 | $list>
23 | \end
24 |
25 | \procedure tltimeline-horizontal-LineLength()
26 |
27 |
28 |
29 | <$wikify name=txt-length text=<> >
30 |
31 | <$list filter="[listallbefore:includelimit[1]]">
32 | <$set name=length filter="[listallbefore:includecount[]multiply]">
33 | width: <>px;
34 | $set>
35 | $list>
36 |
37 |
38 | <$set name=last-item filter="[listlast[]]" >
39 | <$list filter="[subfilterallaftermatch]">
40 | <$set name=length filter="[[3]multiplyadd]">
41 | width: <>px;
42 | $set>
43 | $list>
44 | $set>
45 |
46 | $wikify>
47 | \end
--------------------------------------------------------------------------------
/source/timelines/styles/vertical-sequence.css:
--------------------------------------------------------------------------------
1 | /* Lauren Chilcote acknowledged for this stylesheet */
2 |
3 | .kk-tl-vertical-sequence {
4 | min-width: 160px;
5 | max-width: 480px;
6 | margin: auto;
7 | }
8 |
9 | .kk-tl-vertical-sequence .item {
10 | font-size: 1em;
11 | line-height: 1.75em;
12 | border-top: 3px solid;
13 | -o-border-image: linear-gradient(to right, #743ad5 0%, #d53a9d 100%);
14 | border-image: linear-gradient(to right, #743ad5 0%, #d53a9d 100%);
15 | border-image-slice: 1;
16 | border-width: 3px;
17 | margin: 0;
18 | padding: 40px;
19 | counter-increment: section;
20 | position: relative;
21 | /*color: #34435E;*/
22 | }
23 |
24 | .kk-tl-vertical-sequence .item:before {
25 | content: counter(section);
26 | position: absolute;
27 | border-radius: 50%;
28 | padding: 0;
29 | height: 2.25em;
30 | width: 2.25em;
31 | background-color: #34435E;
32 | text-align: center;
33 | line-height: 2.25em;
34 | color: #ffffff;
35 | font-size: 1.2rem;
36 | }
37 |
38 | .kk-tl-vertical-sequence .item:nth-child(odd) {
39 | border-right: 3px solid;
40 | padding-left: 0;
41 | }
42 | .kk-tl-vertical-sequence .item:nth-child(odd):before {
43 | left: 100%;
44 | margin-left: -20px;
45 | }
46 |
47 | .kk-tl-vertical-sequence .item:nth-child(even) {
48 | border-left: 3px solid;
49 | padding-right: 0;
50 | }
51 | .kk-tl-vertical-sequence .item:nth-child(even):before {
52 | right: 100%;
53 | margin-right: -20px;
54 | }
55 |
56 | .kk-tl-vertical-sequence .item:first-child {
57 | border-top: 0;
58 | border-top-right-radius: 0;
59 | border-top-left-radius: 0;
60 | }
61 |
62 | .kk-tl-vertical-sequence .item:last-child {
63 | border-bottom-right-radius: 0;
64 | border-bottom-left-radius: 0;
65 | }
66 |
67 | .kk-tl-vertical-sequence .item-footer{
68 | margin-top: 10px;
69 | font-style: italic;
70 | margin-right: 20px
71 | }
72 |
73 | .kk-tl-vertical-sequence .item:nth-child(even) .item-footer{
74 | text-align: left;
75 | }
76 | .kk-tl-vertical-sequence .item:nth-child(odd) .item-footer{
77 | text-align: right;
78 | }
79 |
--------------------------------------------------------------------------------
/source/timelines/styles/timeline-vertical.css:
--------------------------------------------------------------------------------
1 | /*The timeline-vertical main stylesheet*/
2 | .kk-tl-timeline-vertical{
3 | margin:0 10%;
4 | padding: 10px 0 40px 60px
5 | }
6 |
7 | .kk-tl-timeline-vertical > ul{
8 | list-style-type: none;
9 | margin: 0;
10 | padding: 0;
11 | position: relative;
12 | transition: all 0.5s linear;
13 | top:0
14 | }
15 |
16 | .kk-tl-timeline-vertical > ul:last-of-type{
17 | top:40px
18 | }
19 |
20 | .kk-tl-timeline-vertical > ul:before{
21 | content: "";
22 | display: block;
23 | width: 0;
24 | height: 100%;
25 | position: absolute;
26 | top:0;
27 | left:30px;
28 | border-width:1px;
29 | border-style:dashed;
30 | }
31 |
32 |
33 | .kk-tl-timeline-vertical > ul > li{
34 | margin: 20px 60px 60px;
35 | position: relative;
36 | padding: 10px 20px;
37 | border-radius: 10px;
38 | line-height: 20px;
39 | width: 65%
40 | }
41 |
42 |
43 | .kk-tl-timeline-vertical > ul > li > span{
44 | content: "";
45 | display: block;
46 | width: 0;
47 | height: 100%;
48 | position: absolute;
49 | top:0;
50 | left:-30px;
51 | border-width:1px;
52 | border-style:solid;
53 | }
54 |
55 |
56 | .kk-tl-timeline-vertical > ul > li > span:before,
57 | .kk-tl-timeline-vertical > ul > li > span:after{
58 | content: "";
59 | display: block;
60 | width: 16px;
61 | height: 16px;
62 | border-radius: 50%;
63 | position: absolute;
64 | left:-8.5px;
65 | border-width:2px;
66 | border-style:solid;
67 | }
68 |
69 |
70 | .kk-tl-timeline-vertical .item-title{
71 | text-transform: uppercase;
72 | font-weight: 700;
73 | margin-bottom: 5px
74 | }
75 |
76 |
77 | .kk-tl-timeline-vertical .item-body:first-letter{
78 | text-transform: capitalize;
79 | line-height: 1.7
80 | }
81 |
82 | .kk-tl-timeline-vertical .item-footer{
83 | margin-top: 10px;
84 | text-transform: capitalize;
85 | font-style: italic;
86 | text-align: right;
87 | margin-right: 20px
88 | }
89 |
90 |
91 | .kk-tl-timeline-vertical .item-timedate span{
92 | position: absolute;
93 | font-size:0.9rem;
94 | font-weight: bold;
95 | }
96 | /* */
97 |
98 | .kk-tl-timeline-vertical .item-link{
99 | font-weight:700;
100 | }
101 |
102 |
103 | /* date time */
104 | .kk-tl-timeline-vertical .item-timedate span:first-child {left:-6.5rem; top:-12px;}
105 | .kk-tl-timeline-vertical .item-timedate span:last-child {left:-4.6rem; bottom:-9px;}
106 |
107 | .kk-tl-timeline-vertical > ul > li > span:before{top:-10px}
108 | .kk-tl-timeline-vertical > ul > li > span:after{bottom:-10px;}
--------------------------------------------------------------------------------
/source/timelines/procedures/timeline-horizontal.tid:
--------------------------------------------------------------------------------
1 | tags: $:/tags/Global
2 | title: $:/plugins/kookma/timelines/procedures/timeline-horizontal
3 | type: text/vnd.tiddlywiki
4 |
5 | \procedure timeline-horizontal(filter, limit:10, date:"modified", footer:"footer", template:"", class:"primary", dateformat:"YYYY", stateTiddler:"", pageEntries:"3")
6 | \import [[$:/plugins/kookma/timelines/procedures/timeline-horizontal-left-pos]]
7 | \whitespace trim
8 |
9 | \procedure tltimeline-horizontal-changeit()
10 | <$action-setfield $tiddler=<> text=<>/>
11 | \end tltimeline-horizontal-changeit
12 |
13 | \procedure tltimeline-horizontal-PullPrevious()
14 |
15 | <%if [enlistallbefore:includelastcount[]compare:integer:gteq] %>
16 | <$action-listops $tiddler=<> $filter="[enlistallbefore:includelast] :else[enlistfirst]"/>
17 | <%else%>
18 | <$action-listops $tiddler=<> $filter="[enlistfirst]"/>
19 | <%endif%>
20 | <$action-setfield $tiddler=<> text={{{ [listfirst[1]] }}}/>
21 | \end tltimeline-horizontal-PullPrevious
22 |
23 | \procedure tltimeline-horizontal-PullNext()
24 | <%if [enlistallafter:includefirstcount[]compare:integer:gteq] %>
25 | <$action-listops $tiddler=<> $filter="[enlistallafter:includefirst] :else[enlistlast]"/>
26 | <%else%>
27 | <$action-listops $tiddler=<> $filter="[enlistlast]"/>
28 | <%endif%>
29 | <$action-setfield $tiddler=<> text={{{ [listfirst[1]] }}}/>
30 | \end tltimeline-horizontal-PullNext
31 |
32 | \procedure tltimeline-horizontal_ShowEventDate()
33 |
34 | <%if [match[YYYY]] %>
35 | <$view field=<> format=date template="YYYY" />
36 | <%elseif [match[0DD mmm YYYY]] %>
37 | <$view field=<> format=date template="0DD mmm YYYY" />
38 | <%elseif [match[mmm DDth]] %>
39 | <$view field=<> format=date template="mmm DDth" />
40 | <%endif%>
41 |
42 | \end tltimeline-horizontal_ShowEventDate
43 |
44 |
45 |
46 |
47 | <$set name=filter filter="[subfilter] :sort:date[get] :and[limit]">
48 | <$let item-per-page = <>
49 | container =`${[][] :filter[!is[blank]] +[join[-]]}$`
50 | selected-item = {{{ [get[text]] }}}
51 | first-item = {{{ [listfirst[1]] }}}
52 | last-item = {{{ [listlast[1]] }}}
53 | >
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 | <$list filter="[list]" variable="entry" emptyMessage="Press ''prev/next'' button to start the timeline">
62 |
63 | <$list filter="[enlistallbeforematch]">
64 | <$wikify name="stleft" text=<> >
65 |
66 | <$button class="tc-btn-invisible date date--older-event" style=<> actions=<> >
67 | <>
68 | $button>
69 |
70 | $wikify>
71 | $list>
72 |
73 | <$list filter="[match]">
74 | <$wikify name="stleft" text=<> >
75 |
76 | <$button class="tc-btn-invisible date date--selected" style=<> actions=<> >
77 | <>
78 | $button>
79 |
80 | $wikify>
81 | $list>
82 |
83 | <$list filter="[enlistallaftermatch]">
84 | <$wikify name="stleft" text=<> >
85 | <$button class="tc-btn-invisible date" style=<> >
86 | <><>
87 | $button>
88 | $wikify>
89 | $list>
90 |
91 | $list>
92 |
93 |
94 |
95 | <$wikify name="stlength" text=<
> >
96 | > aria-hidden="xtrue">
97 | $wikify>
98 |
99 |
100 |
101 |
102 |
103 | <$button class="tc-btn-invisible text-replace navigation navigation--prev" actions=<> tag="li">Prev$button>
104 | <$button class="tc-btn-invisible text-replace navigation navigation--next" actions=<> tag="li">Next$button>
105 |
106 |
107 |
108 |
109 | <$tiddler tiddler=<> >
110 | <$transclude $tiddler={{{ [!is[blank]] :else[[$:/plugins/kookma/timelines/templates/timeline-horizontal]] }}} $mode="block"/>
111 | $tiddler>
112 |
113 |
114 |
115 | $let>
116 | $set>
117 | \end
--------------------------------------------------------------------------------
/source/timelines/styles/timeline-horizontal.css:
--------------------------------------------------------------------------------
1 | /* Container */
2 | :root {
3 | --max-width-large: 800px;
4 | }
5 |
6 | .kk-tl-timeline-horizontal {
7 | position: relative;
8 | height: 100px;
9 | max-width: var(--max-width-large);
10 | }
11 |
12 | .kk-tl-timeline-horizontal-container {
13 | width: calc(100% - 1.25em);
14 | margin-left: auto;
15 | margin-right: auto
16 | }
17 |
18 | /* event content */
19 | .kk-tl-timeline-horizontal-content {
20 | max-width: var(--max-width-large);
21 | margin-left: auto;
22 | margin-right: auto
23 | }
24 |
25 | /*added later*/
26 | .cl.kk-tl-timeline-horizontal {
27 | background-color: hsl(0, 0%, 97%);
28 | }
29 | .kk-tl-timeline-horizontal *::before,
30 | .kk-tl-timeline-horizontal *::after,
31 | .kk-tl-timeline-horizontal *{
32 | box-sizing:border-box;
33 | }
34 |
35 | /* list ordered and unordered */
36 | .kk-tl-timeline-horizontal ul,
37 | .kk-tl-timeline-horizontal ol{
38 | list-type: none;
39 | }
40 | .kk-tl-timeline-horizontal ul{
41 | font-size:0.85em
42 | }
43 | .kk-tl-timeline-horizontal li{
44 | display:inline-block
45 | }
46 |
47 | /*line axis events placed on that*/
48 | .kk-tl-timeline-horizontal .line {
49 | position: absolute;
50 | z-index: 1;
51 | width:100%;
52 | left: 0;
53 | top: 49px;
54 | height: 2px;
55 | background-color: hsl(0, 0%, 87.3%);
56 | transition: transform 0.4s;
57 | }
58 |
59 | /* filling line */
60 | .kk-tl-timeline-horizontal .filling-line {
61 | position: absolute;
62 | z-index: 1;
63 | left: 0;
64 | top: 0;
65 | height: 100%;
66 | background-color: hsl(74, 93%, 32%);
67 | -webkit-transform-origin: left center;
68 | -ms-transform-origin: left center;
69 | transform-origin: left center;
70 | transition: -webkit-transform 0.3s;
71 | transition: transform 0.3s;
72 | transition: transform 0.3s, -webkit-transform 0.3s
73 | }
74 |
75 | /* dates */
76 | .kk-tl-timeline-horizontal .dates {
77 | position: relative;
78 | height: 100%;
79 | margin: 0 40px;
80 | overflow: hidden
81 | }
82 |
83 | .kk-tl-timeline-horizontal .dates::after,
84 | .kk-tl-timeline-horizontal .dates::before {
85 | content: '';
86 | position: absolute;
87 | z-index: 2;
88 | top: 0;
89 | height: 100%;
90 | width: 20px
91 | }
92 |
93 | .kk-tl-timeline-horizontal .dates::before {
94 | left: 0;
95 | background: linear-gradient(to right, hsl(0, 0%, 100%), hsla(0, 0%, 100%, 0));
96 | }
97 |
98 | .kk-tl-timeline-horizontal .dates::after {
99 | right: 0;
100 | background: linear-gradient(to left, hsl(0, 0%, 100%), hsla(0, 0%, 100%, 0));
101 | }
102 |
103 | /* date item */
104 | .kk-tl-timeline-horizontal .date {
105 | position: absolute;
106 | bottom: 0;
107 | z-index: 2;
108 | text-align: center;
109 | font-size: 0.8em;
110 | padding-bottom: 0.75em;
111 | color: hsl(0, 0%, 22%);
112 | user-select: none;
113 | text-decoration: none
114 | }
115 |
116 | .kk-tl-timeline-horizontal .date::after {
117 | content: '';
118 | position: absolute;
119 | /* left: 50%;
120 | -webkit-transform: translateX(-50%);
121 | -ms-transform: translateX(-50%);
122 | transform: translateX(-50%);*/
123 | bottom: -5px;
124 | height: 12px;
125 | width: 12px;
126 | border-radius: 50%;
127 | border-width: 2px;
128 | border-style: solid;
129 | border-color: hsl(0, 0%, 87.3%);
130 | background-color: hsl(0, 0%, 97%);
131 | transition: background-color 0.3s, border-color .3s
132 | }
133 |
134 | .kk-tl-timeline-horizontal .date:hover::after {
135 | background-color: hsl(74, 93%, 32%);
136 | border-color: hsl(74, 93%, 32%);
137 | }
138 |
139 | /* date older event */
140 | .kk-tl-timeline-horizontal .date--older-event::after {
141 | border-color: hsl(74, 93%, 32%);
142 | }
143 |
144 | /* date selected */
145 | .kk-tl-timeline-horizontal .date--selected {
146 | pointer-events: none
147 | }
148 |
149 | .kk-tl-timeline-horizontal .date--selected::after {
150 | background-color: hsl(74, 93%, 32%);
151 | border-color: hsl(74, 93%, 32%);
152 | }
153 |
154 | /* adjust the date position over bullet */
155 | .kk-tl-timeline-horizontal .date span.tl-date{
156 | position: absolute;
157 | left: -5px;
158 | bottom: 15px;
159 | }
160 |
161 | /* navigation buttons */
162 | .kk-tl-timeline-horizontal .navigation {
163 | position: absolute;
164 | z-index: 1;
165 | top: 50%;
166 | -webkit-transform: translateY(-50%);
167 | -ms-transform: translateY(-50%);
168 | transform: translateY(-50%);
169 | height: 34px;
170 | width: 34px;
171 | border-radius: 50%;
172 | border-width: 2px;
173 | border-style: solid;
174 | border-color: hsl(0, 0%, 87.3%);
175 | transition: border-color 0.3s
176 | }
177 |
178 | .kk-tl-timeline-horizontal .navigation::after {
179 | content: '';
180 | position: absolute;
181 | height: 16px;
182 | width: 16px;
183 | top: 50%;
184 | left: 50%;
185 | -webkit-transform: translateX(-50%) translateY(-50%);
186 | -ms-transform: translateX(-50%) translateY(-50%);
187 | transform: translateX(-50%) translateY(-50%);
188 | }
189 |
190 | .kk-tl-timeline-horizontal .navigation:hover {
191 | border-color: hsl(74, 93%, 32%)
192 | }
193 |
194 | .kk-tl-timeline-horizontal .navigation--prev {
195 | left: 0;
196 | -webkit-transform: translateY(-50%) rotate(180deg);
197 | -ms-transform: translateY(-50%) rotate(180deg);
198 | transform: translateY(-50%) rotate(180deg)
199 | }
200 |
201 |
202 | .kk-tl-timeline-horizontal .navigation--next {
203 | right: 0
204 | }
205 |
206 | /*text replace*/
207 | .kk-tl-timeline-horizontal .text-replace {
208 | overflow: hidden;
209 | color: transparent;
210 | text-indent: 100%;
211 | white-space: nowrap
212 | }
213 |
214 | /* remove blue border from buttons */
215 | .kk-tl-timeline-horizontal .tc-btn-invisible { outline:none; }
216 |
217 |
--------------------------------------------------------------------------------
/packaged/timelines.tid:
--------------------------------------------------------------------------------
1 | author: Mohammad Rahmani
2 | core-version: >=5.3.5
3 | description: Graphical representation of a period of time
4 | list: readme license history
5 | name: Timelines
6 | packaged-by: Gatha on 11th August 2025, 12:16:43
7 | plugin-type: plugin
8 | source: https://github.com/kookma/TW-Timelines
9 | stability: STABILITY_2_STABLE
10 | title: $:/plugins/kookma/timelines
11 | type: application/json
12 | version: 1.5.0
13 |
14 | {"tiddlers":{"$:/plugins/kookma/timelines/history":{"title":"$:/plugins/kookma/timelines/history","tags":"","type":"text/vnd.tiddlywiki","text":"Full change log https://kookma.github.io/TW-Timelines/#ChangeLog\n\n* ''1.5.0'' -- 2024.10.31 -- update to Tiddlywiki 5.3.5 and Gatha development studio\n* ''1.2.0'' -- 2022.11.12 -- update to Tiddlywiki 5.2.3\n* ''1.0.0'' -- 2020.08.09 -- stable release\n* ''0.6.0'' -- 2020.07.31 -- beta release\n* ''0.5.0'' -- 2019.07.28 -- first release\n"},"$:/plugins/kookma/timelines/images/right-arrow":{"title":"$:/plugins/kookma/timelines/images/right-arrow","text":"\n \n \n","type":"image/svg+xml"},"$:/plugins/kookma/timelines/license":{"title":"$:/plugins/kookma/timelines/license","type":"text/vnd.tiddlywiki","text":"Distributed under an MIT license.\n\nCopyright (c) 2019-2024 [[Mohammad Rahmani|https://github.com/kookma]]\n\n<<<\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n<<<"},"$:/plugins/kookma/timelines/plugin.info":{"title":"$:/plugins/kookma/timelines/plugin.info","type":"application/json","text":"{\n \"title\": \"$:/plugins/kookma/timelines\",\n \"version\": \"1.5.0\",\n \"stability\": \"STABILITY_2_STABLE\",\n \"name\": \"Timelines\",\n \"description\": \"Graphical representation of a period of time\",\n \"author\": \"Mohammad Rahmani\",\n \"source\": \"https://github.com/kookma/TW-Timelines\",\n \"list\": \"readme license history\",\n \"plugin-priority\": \"\",\n \"parent-plugin\": \"\",\n \"dependents\": \"\",\n \"plugin-type\": \"plugin\",\n \"core-version\": \">=5.3.5\",\n \"packaged-by\": \"Gatha on 31st October 2024, 21:41:09\"\n}"},"$:/plugins/kookma/timelines/procedures/sequence-horizontal":{"title":"$:/plugins/kookma/timelines/procedures/sequence-horizontal","tags":"$:/tags/Global","type":"text/vnd.tiddlywiki","text":"\\procedure sequence-horizontal(filter, limit:10, date:\"modified\", footer:\"footer\", template:\"\", class:\"promary\", stateTiddler:\"\")\n\n\t\\procedure tlhorizontal-sequence-changeit() \n\t<$action-setfield $tiddler=<> text=<>/>\n\t\\end tlhorizontal-sequence-changeit\n\n\t<$let container =`${[][] :filter[!is[blank]] +[join[-]]}$` \n\t selected-item = {{{ [get[text]] :else[subfilterfirst[]] }}} >\n\n\t\t\n\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\t<$list filter=\"[get[text]] ~[]\" template={{{ [!is[blank]] :else[[$:/plugins/kookma/timelines/templates/sequence-horizontal]] }}} />\n\t\t\t
\n\n\n\t\t\t\n\t\t\t
\n\t\t\t\t<$list filter=\"[subfilterlimit]\" variable=\"entry\">\n\t\t\t\t\t<$button class=`${ [[tc-btn-invisible]] [matchthen[kk-tl-horizontal-sequence-active]] :and[join[ ]] }$` actions=<> tag=\"li\">\n\t\t\t\t\t\t<$count filter='[subfilterallbefore:include]'/>\n\t\t\t\t\t$button>\n\t\t\t\t$list>\n\t\t\t \n\n\t\t
\n\t$let>\n\\end sequence-horizontal\n\n\n"},"$:/plugins/kookma/timelines/procedures/sequence-vertical":{"title":"$:/plugins/kookma/timelines/procedures/sequence-vertical","tags":"$:/tags/Global","type":"text/vnd.tiddlywiki","text":"\\procedure sequence-vertical(filter, limit:10, date:\"modified\", footer:\"footer\", template:\"\", class:\"primary\" )\n\n\n<$list filter=\"[subfilter
limit]\" emptyMessage=\"Timeline: no tiddler found or wrong filter is passed!\" >\n\t \n\t\t<$transclude $tiddler={{{ [!is[blank]] :else[[$:/plugins/kookma/timelines/templates/sequence-vertical]] }}} $mode=\"block\"/>\n\t
\n$list>\n\n \n\\end"},"$:/plugins/kookma/timelines/procedures/timeline-horizontal":{"title":"$:/plugins/kookma/timelines/procedures/timeline-horizontal","tags":"$:/tags/Global","type":"text/vnd.tiddlywiki","text":"\\procedure timeline-horizontal(filter, limit:10, date:\"modified\", footer:\"footer\", template:\"\", class:\"primary\", dateformat:\"YYYY\", stateTiddler:\"\", pageEntries:\"3\")\n\\import [[$:/plugins/kookma/timelines/procedures/timeline-horizontal-left-pos]]\n\\whitespace trim\n\n\\procedure tltimeline-horizontal-changeit()\n\t<$action-setfield $tiddler=<> text=<>/>\n\\end tltimeline-horizontal-changeit\n\n\\procedure tltimeline-horizontal-PullPrevious()\n\t\n\t<%if [enlistallbefore:includelastcount[]compare:integer:gteq] %>\n\t\t<$action-listops $tiddler=<> $filter=\"[enlistallbefore:includelast] :else[enlistfirst]\"/> \n\t<%else%>\n\t\t<$action-listops $tiddler=<> $filter=\"[enlistfirst]\"/> \n\t<%endif%>\n\t<$action-setfield $tiddler=<> text={{{ [listfirst[1]] }}}/>\n\\end tltimeline-horizontal-PullPrevious\n\n\\procedure tltimeline-horizontal-PullNext()\n\t<%if [enlistallafter:includefirstcount[]compare:integer:gteq] %>\n\t\t<$action-listops $tiddler=<> $filter=\"[enlistallafter:includefirst] :else[enlistlast]\"/> \n\t<%else%>\n\t\t<$action-listops $tiddler=<> $filter=\"[enlistlast]\"/> \n\t<%endif%>\n\t<$action-setfield $tiddler=<> text={{{ [listfirst[1]] }}}/>\n\\end tltimeline-horizontal-PullNext\n\n\\procedure tltimeline-horizontal_ShowEventDate()\n\t\n\t<%if [match[YYYY]] %>\n\t\t<$view field=<> format=date template=\"YYYY\" /> \n\t<%elseif [match[0DD mmm YYYY]] %>\n\t\t<$view field=<> format=date template=\"0DD mmm YYYY\" /> \n\t<%elseif [match[mmm DDth]] %>\n\t\t<$view field=<> format=date template=\"mmm DDth\" /> \n\t<%endif%>\n\t \n\\end tltimeline-horizontal_ShowEventDate\n\n\n\n\n<$set name=filter filter=\"[subfilter] :sort:date[get] :and[limit]\">\n<$let item-per-page = <>\n container =`${[][] :filter[!is[blank]] +[join[-]]}$` \n\t\t\tselected-item = {{{ [get[text]] }}}\n\t\t\tfirst-item = {{{ [listfirst[1]] }}}\n\t\t\tlast-item = {{{ [listlast[1]] }}}\t\t\n\t\t\t>\n\n\n
\n
\n\n
\n\n<$list filter=\"[list]\" variable=\"entry\" emptyMessage=\"Press ''prev/next'' button to start the timeline\"> \n\n<$list filter=\"[enlistallbeforematch]\">\n<$wikify name=\"stleft\" text=<> >\n\n<$button class=\"tc-btn-invisible date date--older-event\" style=<> actions=<> >\n<>\n$button>\n \n$wikify>\n$list>\n\n<$list filter=\"[match]\">\n<$wikify name=\"stleft\" text=<> >\n\n<$button class=\"tc-btn-invisible date date--selected\" style=<> actions=<> >\n<> \n$button>\n \n$wikify>\n$list>\n\n<$list filter=\"[enlistallaftermatch]\">\n<$wikify name=\"stleft\" text=<> >\n<$button class=\"tc-btn-invisible date\" style=<> >\n<><> \n$button>\n$wikify>\n$list>\n\n$list>\n\n \n\n<$wikify name=\"stlength\" text=<
> >\n> aria-hidden=\"xtrue\"> \n$wikify>\n\n \n
\n\n
\n<$button class=\"tc-btn-invisible text-replace navigation navigation--prev\" actions=<> tag=\"li\">Prev$button>\n<$button class=\"tc-btn-invisible text-replace navigation navigation--next\" actions=<> tag=\"li\">Next$button>\n \n
\n\n\n<$tiddler tiddler=<> >\n\t<$transclude $tiddler={{{ [!is[blank]] :else[[$:/plugins/kookma/timelines/templates/timeline-horizontal]] }}} $mode=\"block\"/>\n$tiddler>\n
\n\n\n$let>\n$set>\n\\end"},"$:/plugins/kookma/timelines/procedures/timeline-horizontal-left-pos":{"title":"$:/plugins/kookma/timelines/procedures/timeline-horizontal-left-pos","tags":"","type":"text/vnd.tiddlywiki","text":"\\procedure tltimeline-horizontal-ItemSpace() 120 \n\\procedure tltimeline-horizontal-EventLength()\n\n\t<%if [match[YYYY]] %>\n\t\t16\n\t<%elseif [match[0DD mmm YYYY]] %>\n\t\t32\n\t<%elseif [match[mmm DDth]]%>\n\t\t20\n\t<%endif%>\n\\end\n\n\n\\procedure tltimeline-horizontal-LeftPosition() \n\n<$list filter=\"[listallbefore:includecount[]multiply]\" variable=\"leftpos\">\nleft:<>px;\n$list>\n\\end\n\n\\procedure tltimeline-horizontal-LineLength() \n\n\n\n<$wikify name=txt-length text=<> >\n\n<$list filter=\"[listallbefore:includelimit[1]]\">\n<$set name=length filter=\"[listallbefore:includecount[]multiply]\">\nwidth: <>px;\n$set>\n$list>\n\n\n<$set name=last-item filter=\"[listlast[]]\" >\n<$list filter=\"[subfilterallaftermatch]\">\n<$set name=length filter=\"[[3]multiplyadd]\">\nwidth: <>px;\n$set>\n$list>\n$set>\n\n$wikify>\n\\end"},"$:/plugins/kookma/timelines/procedures/timeline-vertical":{"title":"$:/plugins/kookma/timelines/procedures/timeline-vertical","tags":"$:/tags/Global","type":"text/vnd.tiddlywiki","text":"\\procedure timeline-vertical(filter, limit:10, date:\"modified\", footer:\"footer\", template:\"\", class:\"\", dateformat:\"YYYY\")\n\t\\procedure tltimeline-vertical_ShowEventDate-year()\n\t<%if [search[YYYY]] %>\n\t\t<$view field=<> format=date template=\"YYYY\"/>\n\t<%endif%>\n\t\\end tltimeline-vertical_ShowEventDate-year\n\n\t\\procedure tltimeline-vertical_ShowEventDate-month()\n\t<%if [search[mmm DDth]] %>\n\t\t<$view field=<> format=date template=\"mmm DDth\"/>\n\t<%endif%>\n\t\\end tltimeline-vertical_ShowEventDate-month\n\n\n\t\n\t<$set name=templateTiddler value=<> emptyValue=\"$:/plugins/kookma/timelines/templates/timeline-vertical\" >\n\t\n\t
\n\t\t<$list filter=\"[subfilter] :sort:date[get] :and[limit]\" emptyMessage=\"Timeline: no tiddler found or wrong filter is passed!\" >\n\t\t\n\t\t\t \n\n\t\t\t<$transclude $tiddler=<> $mode=\"block\"/>\n\n\t\t\t\n\t\t\t\t<> \n\t\t\t\t<> \n\t\t\t
\n\t\t \n\t\t$list>\n\t \n\t
\n\\end timeline-vertical\n\n"},"$:/plugins/kookma/timelines/readme":{"title":"$:/plugins/kookma/timelines/readme","tags":"","type":"text/vnd.tiddlywiki","text":"; Timelines\nA chronological arrangement of events in the order of their occurrence.\n\n;Code and demo\nFor learning plugin features, syntax, tutorial and examples see the plugin demo and code pages\n\n* Demo: https://kookma.github.io/TW-Timelines/\n* Code: https://github.com/kookma/TW-Timelines\n"},"$:/plugins/kookma/timelines/styles/colors/danger":{"text":"{\n \"class\": \"danger\",\n \"color\": \"#721c24\",\n \"background\": \"#f8d7da\",\n \"border\": \"#f5c6cb\",\n \"link\":\"#491217\",\n \"light-background\":\"#fdf4f5\"\n}","type":"application/json","title":"$:/plugins/kookma/timelines/styles/colors/danger"},"$:/plugins/kookma/timelines/styles/colors/dark":{"text":"{\n \"class\": \"dark\",\n \"color\": \"#1b1e21\",\n \"background\": \"#d6d8d9\",\n \"border\": \"#c6c8ca\",\n \"link\":\"#040505\",\n \"light-background\":\"#f0f1f2\"\n}\n","type":"application/json","title":"$:/plugins/kookma/timelines/styles/colors/dark"},"$:/plugins/kookma/timelines/styles/colors/info":{"text":"{\n \"class\": \"info\",\n \"color\": \"#0c5460\",\n \"background\": \"#d1ecf1\",\n \"border\": \"#bee5eb\",\n \"link\":\"#062c33\",\n \"light-background\":\"#ebf7f9\"\n}","type":"application/json","title":"$:/plugins/kookma/timelines/styles/colors/info"},"$:/plugins/kookma/timelines/styles/colors/light":{"text":"{\n \"class\": \"light\",\n \"color\": \"#818182\",\n \"background\": \"#fefefe\",\n \"border\": \"#818182\",\n \"link\":\"#686868\",\n \"light-background\":\"#ededed\"\n}","type":"application/json","title":"$:/plugins/kookma/timelines/styles/colors/light"},"$:/plugins/kookma/timelines/styles/colors/primary":{"text":"{\n \"class\": \"primary\",\n \"color\": \"#004085\",\n \"background\": \"#cce5ff\",\n \"border\": \"#b8daff\",\n \"link\": \"#002752\",\n \"light-background\":\"#eef6ff\"\n}","type":"application/json","title":"$:/plugins/kookma/timelines/styles/colors/primary"},"$:/plugins/kookma/timelines/styles/colors/secondary":{"text":"{\n \"class\": \"secondary\",\n \"color\": \"#383d41\",\n \"background\": \"#e2e3e5\",\n \"border\": \"#d6d8db\",\n \"link\":\"#202326\",\n \"light-background\":\"#f4f4f5\"\n}","type":"application/json","title":"$:/plugins/kookma/timelines/styles/colors/secondary"},"$:/plugins/kookma/timelines/styles/colors/success":{"text":"{\n \"class\": \"success\",\n \"color\": \"#155724\",\n \"background\": \"#d4edda\",\n \"border\": \"#c3e6cb\",\n \"link\":\"#0b2e13\",\n \"light-background\":\"#ecf7ef\"\n}","type":"application/json","title":"$:/plugins/kookma/timelines/styles/colors/success"},"$:/plugins/kookma/timelines/styles/colors/warning":{"text":"{\n \"class\": \"warning\",\n \"color\": \"#856404\",\n \"background\": \"#fff3cd\",\n \"border\": \"#ffeeba\",\n \"link\":\"#533f03\",\n \"light-background\":\"#fffbef\"\n}","type":"application/json","title":"$:/plugins/kookma/timelines/styles/colors/warning"},"$:/plugins/kookma/timelines/styles/sequence-horizontal-colors":{"title":"$:/plugins/kookma/timelines/styles/sequence-horizontal-colors","tags":"$:/tags/Stylesheet","type":"text/vnd.tiddlywiki","text":"<$list filter=\"[all[shadows+tiddlers]prefix[$:/plugins/kookma/timelines/styles/colors/]]\" variable=\"type\">\n\n<$vars \n selector={{{[getindex[class]addprefix[.kk-tl-horizontal-sequence-]]}}} \n color={{{[getindex[color]]}}} \n background-color={{{[getindex[background]]}}} \n border-color={{{[getindex[border]]}}} \n link-color={{{[getindex[link]]}}} \n light-background={{{[getindex[light-background]]}}} \n >\n \n<> .kk-tl-horizontal-sequence-content{ background:<>; color:<>;}\n<> li {color:<>;background:<>;}\n<> .kk-tl-horizontal-sequence-active {background:<>;}\n<> .kk-tl-horizontal-sequence-active~li {color:<>; background:<>;}\n\n$vars>\n$list>\n\n/*overwrite light theme for horizontal-sequence*/\n.kk-tl-horizontal-sequence-light li {background:#d7d8d8;}\n.kk-tl-horizontal-sequence-light .kk-tl-horizontal-sequence-active {background:#e8e9e9;}"},"$:/plugins/kookma/timelines/styles/sequence-horizontal.css":{"title":"$:/plugins/kookma/timelines/styles/sequence-horizontal.css","text":".kk-tl-horizontal-sequence{\n\twidth:60%;\n\tmargin: 10px auto;\n\tbox-sizing:border-box;\n}\n\n.kk-tl-horizontal-sequence-content{\n\tpadding:15px;\n\tmin-height:140px;\n\t/* border-width:1px;\n\tborder-style:dotted; */\n}\n\n.kk-tl-horizontal-sequence ul{\n\tpadding:0;\n\ttext-align:center;\n}\n.kk-tl-horizontal-sequence ul li {\n\twidth: 2em;\n\theight: 2em;\n\tline-height: 2em;\n\ttext-align: center;\n\tborder-radius: 50%;\n\tdisplay: inline-block;\n\tposition: relative;\n\tmargin: 8px 5px;\n}","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/timelines/styles/sequence-vertical-colors":{"title":"$:/plugins/kookma/timelines/styles/sequence-vertical-colors","tags":"$:/tags/Stylesheet","type":"text/vnd.tiddlywiki","text":"<$list filter=\"[all[shadows+tiddlers]prefix[$:/plugins/kookma/timelines/styles/colors/]]\" variable=\"type\">\n\n<$vars \n selector={{{[getindex[class]addprefix[.kk-tl-vertical-sequence-]]}}} \n color={{{[getindex[color]]}}} \n background-color={{{[getindex[background]]}}} \n border-color={{{[getindex[border]]}}} \n link-color={{{[getindex[link]]}}} \n light-background={{{[getindex[light-background]]}}} \n >\n \n<> { color:<>;}\n$vars>\n$list>\n"},"$:/plugins/kookma/timelines/styles/timeline-horizontal-colors":{"title":"$:/plugins/kookma/timelines/styles/timeline-horizontal-colors","tags":"$:/tags/Stylesheet","type":"text/vnd.tiddlywiki","text":"<$list filter=\"[all[shadows+tiddlers]prefix[$:/plugins/kookma/timelines/styles/colors/]]\" variable=\"type\">\n\n<$vars \n selector={{{[getindex[class]addprefix[.kk-tl-timeline-horizontal-]]}}} \n color={{{[getindex[color]]}}} \n background-color={{{[getindex[background]]}}} \n border-color={{{[getindex[border]]}}} \n link-color={{{[getindex[link]]}}} \n light-background={{{[getindex[light-background]]}}} \n >\n \n<> { background:<>; color:<>;}\n<> {padding: 15px 10px; border-radius:2px;}\n$vars>\n$list>\n"},"$:/plugins/kookma/timelines/styles/timeline-horizontal.css":{"title":"$:/plugins/kookma/timelines/styles/timeline-horizontal.css","text":"/* Container */\n:root {\n --max-width-large: 800px;\n}\n\n.kk-tl-timeline-horizontal {\n position: relative;\n height: 100px;\n max-width: var(--max-width-large);\n}\n\n.kk-tl-timeline-horizontal-container {\n width: calc(100% - 1.25em);\n margin-left: auto;\n margin-right: auto\n}\n\n/* event content */\n.kk-tl-timeline-horizontal-content {\n max-width: var(--max-width-large);\n margin-left: auto;\n margin-right: auto\n}\n\n/*added later*/\n.cl.kk-tl-timeline-horizontal {\n background-color: hsl(0, 0%, 97%);\n}\n.kk-tl-timeline-horizontal *::before,\n.kk-tl-timeline-horizontal *::after,\n.kk-tl-timeline-horizontal *{\n box-sizing:border-box;\n}\n\n/* list ordered and unordered */\n.kk-tl-timeline-horizontal ul, \n.kk-tl-timeline-horizontal ol{\n list-type: none;\n}\n.kk-tl-timeline-horizontal ul{\n font-size:0.85em\n}\n.kk-tl-timeline-horizontal li{\ndisplay:inline-block\n}\n\n/*line axis events placed on that*/\n.kk-tl-timeline-horizontal .line {\n position: absolute;\n z-index: 1;\n width:100%;\n left: 0;\n top: 49px;\n height: 2px;\n background-color: hsl(0, 0%, 87.3%);\n transition: transform 0.4s;\n}\n\n/* filling line */\n.kk-tl-timeline-horizontal .filling-line {\n position: absolute;\n z-index: 1;\n left: 0;\n top: 0;\n height: 100%;\n background-color: hsl(74, 93%, 32%);\n -webkit-transform-origin: left center;\n -ms-transform-origin: left center;\n transform-origin: left center;\n transition: -webkit-transform 0.3s;\n transition: transform 0.3s;\n transition: transform 0.3s, -webkit-transform 0.3s\n}\n\n/* dates */\n.kk-tl-timeline-horizontal .dates {\n position: relative;\n height: 100%;\n margin: 0 40px;\n overflow: hidden\n}\n\n.kk-tl-timeline-horizontal .dates::after,\n.kk-tl-timeline-horizontal .dates::before {\n content: '';\n position: absolute;\n z-index: 2;\n top: 0;\n height: 100%;\n width: 20px\n}\n\n.kk-tl-timeline-horizontal .dates::before {\n left: 0;\n background: linear-gradient(to right, hsl(0, 0%, 100%), hsla(0, 0%, 100%, 0));\n}\n\n.kk-tl-timeline-horizontal .dates::after {\n right: 0;\n background: linear-gradient(to left, hsl(0, 0%, 100%), hsla(0, 0%, 100%, 0));\n}\n\n/* date item */\n.kk-tl-timeline-horizontal .date {\n position: absolute;\n bottom: 0; \n z-index: 2;\n text-align: center;\n font-size: 0.8em;\n padding-bottom: 0.75em;\n color: hsl(0, 0%, 22%);\n user-select: none;\n text-decoration: none\n}\n\n.kk-tl-timeline-horizontal .date::after {\n content: '';\n position: absolute;\n /* left: 50%;\n -webkit-transform: translateX(-50%);\n -ms-transform: translateX(-50%);\n transform: translateX(-50%);*/\n bottom: -5px;\n height: 12px;\n width: 12px;\n border-radius: 50%;\n border-width: 2px;\n border-style: solid;\n border-color: hsl(0, 0%, 87.3%);\n background-color: hsl(0, 0%, 97%);\n transition: background-color 0.3s, border-color .3s\n}\n\n.kk-tl-timeline-horizontal .date:hover::after {\n background-color: hsl(74, 93%, 32%);\n border-color: hsl(74, 93%, 32%);\n}\n\n/* date older event */\n.kk-tl-timeline-horizontal .date--older-event::after {\n border-color: hsl(74, 93%, 32%);\n}\n\n/* date selected */\n.kk-tl-timeline-horizontal .date--selected {\n pointer-events: none\n}\n\n.kk-tl-timeline-horizontal .date--selected::after {\n background-color: hsl(74, 93%, 32%);\n border-color: hsl(74, 93%, 32%);\n}\n\n/* adjust the date position over bullet */\n.kk-tl-timeline-horizontal .date span.tl-date{\n position: absolute;\n left: -5px; \n\tbottom: 15px;\n}\n\n/* navigation buttons */\n.kk-tl-timeline-horizontal .navigation {\n position: absolute;\n z-index: 1;\n top: 50%;\n -webkit-transform: translateY(-50%);\n -ms-transform: translateY(-50%);\n transform: translateY(-50%);\n height: 34px;\n width: 34px;\n border-radius: 50%;\n border-width: 2px;\n border-style: solid;\n border-color: hsl(0, 0%, 87.3%);\n transition: border-color 0.3s\n}\n\n.kk-tl-timeline-horizontal .navigation::after {\n content: '';\n position: absolute;\n height: 16px;\n width: 16px;\n top: 50%;\n left: 50%;\n -webkit-transform: translateX(-50%) translateY(-50%);\n -ms-transform: translateX(-50%) translateY(-50%);\n transform: translateX(-50%) translateY(-50%);\n}\n\n.kk-tl-timeline-horizontal .navigation:hover {\n border-color: hsl(74, 93%, 32%)\n}\n\n.kk-tl-timeline-horizontal .navigation--prev {\n left: 0;\n -webkit-transform: translateY(-50%) rotate(180deg);\n -ms-transform: translateY(-50%) rotate(180deg);\n transform: translateY(-50%) rotate(180deg)\n}\n\n\n.kk-tl-timeline-horizontal .navigation--next {\n right: 0\n}\n\n/*text replace*/\n.kk-tl-timeline-horizontal .text-replace {\n overflow: hidden;\n color: transparent;\n text-indent: 100%;\n white-space: nowrap\n}\n\n/* remove blue border from buttons */\n.kk-tl-timeline-horizontal .tc-btn-invisible { outline:none; }\n\n","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/timelines/styles/timeline-horizontal/navigation-img":{"title":"$:/plugins/kookma/timelines/styles/timeline-horizontal/navigation-img","tags":"$:/tags/Stylesheet","type":"text/vnd.tiddlywiki","text":".kk-tl-timeline-horizontal .navigation::after {\n/*background: url(img/cd-arrow.svg) no-repeat 0 0*/\nbackground: url(<>) no-repeat 0 0;\n}"},"$:/plugins/kookma/timelines/styles/timeline-vertical-colors.css":{"title":"$:/plugins/kookma/timelines/styles/timeline-vertical-colors.css","tags":"$:/tags/Stylesheet","type":"text/vnd.tiddlywiki","text":"<$list filter=\"[all[shadows+tiddlers]prefix[$:/plugins/kookma/timelines/styles/colors/]] -[]\" variable=\"type\">\n\n<$vars \n selector={{{[getindex[class]addprefix[.kk-tl-timeline-vertical-]]}}} \n color={{{[getindex[color]]}}} \n background-color={{{[getindex[background]]}}} \n border-color={{{[getindex[border]]}}} \n link-color={{{[getindex[link]]}}} \n >\n \n<> ul li{color:<>; background-color: <>; border-color: <>;\t}\t\t\n<> ul:before{border-color:<>;}\n<> ul li > span{border-color:<